Tag: reverse engineering

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