Reverse Engineering

Hello World Payload

Linux X86 Assembly – How to Make Our Hello World Usable as an Exploit Payload

Overview In the last two tutorials, we built a Hello World program in NASM and GAS for x86 assembly.  While this can help us learn x86 assembly, it isn’t viable as a payload for use in exploits in its current form.  Today’s blog will look into what those issues are, how they impact the code’s …

Linux X86 Assembly – How to Make Our Hello World Usable as an Exploit Payload Read More »

Linux X86 Assembly - How to Build a Hello World Program in NASM

Linux X86 Assembly – How to Build a Hello World Program in NASM

Overview A processor understands bytecode instructions specific to that architecture.  We as humans use mnemonics to make building these instructions easier than remembering a bunch of binary codes.  These mnemonics are known as assembly instructions.  This is one of the lowest levels of programming that can be done.  This programming is a bit of a …

Linux X86 Assembly – How to Build a Hello World Program in NASM Read More »

A Hacker’s Tour of the X86 CPU Architecture

A Hacker’s Tour of the X86 CPU Architecture

Overview The Intel x86 CPU architecture is one of the most prolific CPU architectures for desktops, laptops, and servers.  While other architectures exist and are even taking some market share with mobile devices such as smartphones and even Apple begin including its ARM M1 chip in newer Macbooks and Mac Mini, this one still stands …

A Hacker’s Tour of the X86 CPU Architecture Read More »

Solving the November 13th Detective Nevil Mystery Challenge

Solving the November 13th Detective Nevil Mystery Challenge

Overview Each week on Friday, we post a social media challenge known as “Detective Nevil Mystery Challenge”.  On November 13th of 2020, we released a challenge that contained a payload and it was only solved by one person on twitter.  That challenge is as follows: I decided it might be a good idea to do …

Solving the November 13th Detective Nevil Mystery Challenge Read More »

LD_PRELOAD: Not-So-Random

Not-So-Random: Using LD_PRELOAD to Hijack the rand() Function

    Today I wanted to continue the series on using LD_PRELOAD.  In today’s post we are going to use LD_PRELOAD to hijack the rand() function in a simple random number guessing game to control the generation of random numbers and effectively be able to cheat in this simple game by making it extremely predictable.  The code …

Not-So-Random: Using LD_PRELOAD to Hijack the rand() Function Read More »

LD_PRELOAD – Introduction

    Today I wanted to start what I plan to be a small series of blog posts about LD_PRELOAD. LD_PRELOAD is related to Linux based systems and revolves around the loader system and how shared object libraries resolve linker symbols when loading a dynamically linked ELF binary and is loaded before any other shared object libraries. …

LD_PRELOAD – Introduction Read More »

Scroll to Top