Category: 64 Bit Intel Assembly Guides

x64 ASM Fundamentals 0x04 – PEMDAS and such

Introduction This post is going to cover some basic mathematical operations within intel’s 64 bit Assembly language. We’ll cover – Multiplication Division Addition Subtraction (the title should really have been MDAS, but that sounded a bit mad so I clickbaited you. ASM doesn’t have parenthesis anyway 🤷‍♀️) Let’s get to it, budding ASMer. Addition ASM

x64 ASM Fundamentals 0x03 – The Stack (Push it Good!)

Introduction This post will cover another fundamental building block of the ASM language (almost all flavours of ASM, too) – the stack.At the end of this post, you’ll be in a position to understand even more reverse engineered applications. What’s the purpose of the stack? When reading the previous posts, you might have wondered to

x64 ASM Fundamentals 0x02 – MOVing on to the basics of ASM.

Introduction This post will be a short primer on some of the basic building blocks of the x64 assembly language (and also x32, because they share a lot of the same building blocks) The instructions covered in this post will genuinely cover 80-90% of the code which you’ll see in the vast majority of applications

x64 ASM Fundamentals 0x01 – Registers and CPU Flags

Introduction This post will be a quick whistle-stop tour of the following two concepts – Registers (variables!) CPU Flags What are registers? OK, but what ARE registers? On 64 bit intel CPUs, the (everyday, normal, non-scary-and-weird) registers can be seen in the table below. All of these registers are 64 bits (8 bytes) wide, which

x64 ASM Fundamentals 0x00 – Prerequisites

Introduction Any 64 Bit Linux Distribution I’m partial to Debian based distributions because they Just Work(tm). I’ll be using the most recent version of Ubuntu for this tutorial series, with the Terminator terminal and the solarized theme. Terminator because it makes split terminals easy, and solarized because it’s easy on my eyes and it looks