Skip to main content

ELF file format and a pratical study of the execution view

In the post about pratical approach to binary exploitation I talked of how an executable is a memory archive describing a (future) running process. In this post I want to study how this memory archive is loaded in memory in a Linux system, in particular my interest will be directed upon the most used format in *nix system, i.e. the Executable and linkage format (ELF); for other systems, different formats are used: for example the Mac OS X uses the Mach format and the Windows OS uses the PE format. It's reasonable to say that each platform has its own format, and it's the main reason of compatibility issue in running binaries between different operating systems.

Read more…

From zero to hero

A couple of years ago a friend of mine asked me to take a look at a pico projector that he had bricked during an update. He hadn't tried anything fancy or dangerous, he had simply used the internal functionality of the device. At that point in time the device was stuck in a bootloop with the Samsung logo as the only output from the projector.

Read more…

Integer arithmetic from a computer point of view

A thing that is often overlooked is the way arithmetic operations work in a computer and specifically in the processing unit: not having a clear idea of how the operations are performed and their limitations can cause very important bugs to happen and also help in case you want to reverse unknown code.

In this I will explore how operation on integers (floating point will be treated in a specific, future, post).

Read more…