P01NT
tag

Assembly

0x2 InterruptsYour reference for understanding interrupts in operating systems: computer-system organization with controllers and drivers, an I/O operation up to the interrupt, the interrupt vector table, state save and restore, priority levels, and interrupt chaining on Intel processors.
0x1 x86 BasicsFrom assembly, disassembly, and decompilation to registers, MOV and LEA, operand classes, and the effective address — your first hands-on step inside IDA.
0x6 I/O SystemThe third essential part of a computer: the I/O system, device addressing via memory-mapped and port-mapped I/O, interfaces and I/O modules with their functions, and the three transfer techniques: Programmed I/O, interrupts (IRQ), and DMA.
0x3 Addressing ModesAddressing modes in processor architectures: immediate, direct, indirect, register, indexed, and base+offset — then instruction format: its fields and fixed (ARM) versus variable (x86) lengths.
0x2 Instruction Set ArchitectureAn introduction to the Instruction Set Architecture: machine instruction characteristics and their x86 formats and lengths, operand types, data types from Byte to QuadWord, and operation categories — arithmetic, logic, data transfer, and control flow.
0x1 Processor Structure & FunctionsInside the processor: the data path and control unit, bus organization from single-bus to multi-bus, register organization in x86, and the full five-stage instruction cycle.
0x0 Computer Architecture & OrganizationSeries opener: computer architecture vs organization, the four basic functions of a computer, the main components (CPU, memory, I/O), and the fetch–decode–execute instruction cycle.
0x18 The PreprocessorPreprocessor directives: macros, conditional compilation, and #pragma pack — and what each leaves behind in the binary.
0x17 Bit Fields, Unions, and EnumsBit fields, unions, and enums — three daily tools for reading binaries, each with clear patterns in assembly.
0x16 StructuresStructs, typedef, and the arrow operator, padding and alignment — and how a struct becomes an offset map during analysis.
0x14 Functions — Part TwoVariable scope, header files, static, and recursion — with a complete step-by-step trace of the stack frame.
0x13 Passing by Value vs by ReferenceValue vs reference passing fully traced in x86-64 assembly — the golden rule for telling mov apart from lea.
0x11 Virtual Memory: Stack vs HeapStack frames, registers, and calling conventions, plus heap chunks — the two primary battlegrounds of exploitation.
0x10 Bitwise OperatorsBitwise operators and increment/decrement — the shared language between C and assembly, including XOR decryption patterns.
0x08 FunctionsFunction types, the memory and I/O functions that matter to analysts, plus prologue/epilogue structure and calling conventions.
0x07 Arrays and StringsArrays and strings in memory, the dangerous string.h functions, and their direct relationship to buffer overflow vulnerabilities.
0x06 Loopswhile, do-while, for, and nested loops — and the fingerprint that gives a loop away in assembly: the backward jump.
0x05 Conditional Statementsif/else, switch, and the ternary operator — and how they become cmp instructions, conditional jumps, and jump tables in disassembly.
0x01 Program StructureThe basic anatomy of a C program: includes, main, comments, global variables, and functions — and what each part leaves in the binary.
0x00 The Stages Code Goes ThroughThe four stages that turn C code into an executable — preprocessor, compiler, assembler, linker — and how each one shapes the binary.
Flare-On 2015: Solving Challenge 2Solving the second Flare-On (2015) challenge: an extensionless PE file inspected with HxD, then static analysis with IDA Pro to crack a complex verification algorithm (XOR + rotate + rolling sum) and write an IDC script to recover the password.
Flare-On 2015: Solving Challenge 1Solving the first Flare-On (2015) challenge: an x86 Assembly file running as a DOS console app, static analysis with IDA Pro, and cracking a simple XOR-based password check.