Return-Oriented Programming (ROP)

As mentioned in Shellcoding and Memory Errors, in modern systems most binaries will be protected against execution. By default, the...

Core Dump

Coredumps can be useful in various ways, mainly in finding the causes for why a program misbehaved. One way to...

Memory Errors

In 1972, Dennis Ritchie created the C programming language. It was designed to ease the life of developers by making...

Two's Complement

Every computer uses the two's complement to represent integers. It is a great representation of simplified math. To get a...

Sandboxing - Chroot & Seccomp

Sandboxing refers the isolation between the processes on a system. In the earlier days (back in the 80's) there was...

Shellcoding

A shellcode is used to execute a shell within a system, either standalone or injected in an executable. A common...

Scripting Bitcoin Transactions

Bitcoin's scripting transaction language is called Script. It allows to get the "programmable money" and is used to lock and...

Fancy and Practical GDB Configs

Gdb is a great tool for reverse engineering as it comes for free on almost every Linux distro and has...