Security and working on the heap: To what extent are buffer overflows a problem here? Buffer overflows on the stack point to the next frame So local buffers inside functions are a bigger problem Heap: Kinda more random Depends where the buffer points! Generally, later allocations have higher addresses Sometimes, there's extra space Remember, virtual address != real address Why isn't there a whole bunch of extra space? Might not work on all architectures What if the attacker has a lot of tries? In some ways, little endian makes this easier Let's set up something kinda like heartbleed Heartbleed was an accident - this won't be What do we get with a: vector linked list tree Interpretation can be difficult here Totally possible though DRM, analog loophole, and memory reading (digital loophole?) Read the right memory... Could it help to run it in a debugger? What if we write an operating system kernel plugin? How about a device driver that gives us a copy? This is why streaming companies have limited trust of Linux or FreeBSD Spotify takes the risk How about actually changing something? Simple: Can we hack the program from inside the program? More complicated: Can we overflow a buffer to overwrite something?