Top 10 List of Week 04

  1. Buffer Overflow
    When taking external input, an application needs to allocate memory to store that input. High-level programming languages will handle this with no problem. But some low-level languages like C/C++ allow direct memory allocation using malloc. A buffer overflow occur when the application tries to store more data than the allocated memory. This can be exploited by a hacker to get the program to execute malicious code. This is how it is done and how to mitigate it.

  2. Cheat Engine
    If you’ve used cheat engine you might be wondering how it is able to manipulate memory of another process. Now that you know about process isolation and maybe the concept of virtual memory it should not be possible to even access memory not belong to the respective process. The answer turned out to be simple because it is there are windows functions called ReadProcessMemory and WriteProcessMemory.You may also call Cheat Engine as program debugger with unconventional interface.

  3. Gameshark
    Its not unsurprising how easy it is to cheat games in old systems. Now even with modern systems with increased security and more improved anti-cheats, People still able to find exploits. If you are curious how was it done check this out.

  4. Still need SWAP?
    We know that swap use secondary storage as a mean of storing memory when physical RAM runs out. Now that RAMs are getting cheaper and its becoming more common for a machine to have at least 4GB of RAM do we still need swap? The answer is yes. You never know when you will run out of memory.

  5. Accessing Kernel Memory
    Accessing kernel memory can potentially cause meltdown. Meltdown is a hardware vulnerability that allows rogue process to read all memory. Meltdown is a bigger threat for cloud than home machine.

  6. Contigousness
    Contiguous memory allocation assigns the consecutive blocks of memory to a process requesting for memory. Noncontiguous memory allocation assigns the separate memory blocks at a different location in memory space. Noncontiguous allocation has slower performance because of more overheads.

  7. Buffer Overflow Tutorial
    This video gives a simple example of buffer overflow with kali linux. This is a practical video meaning you don’t have to watch a long explanation video. Check this out.

  8. C struct in assembly
    This is how struct in C programming language converted into assembly language. I know you probably get a PTSD hearing the word assembly. It’s okay if this is too much for you to handle don’t click this link.

  9. Endianness
    Most modern systems use big-endian in their architecture. Some of the known little-endian architectures is AVR. Ok please don’t hate me for mentioning AVR. This thread answers why there are 2 endians that it gave you troubles in Computer Organization exam.

  10. c-pointer
    If you are new to C then pointer must be new to you. Pointers are similiar to reference in Java language except pointers point directly to memory addresses. Pointers can be useful in C programming as C has limited functions and features. Though pointer can be dangerous it is essential to master C programming.