
Unlock the inner workings of software by exploring hardware fundamentals, program structure, and assembly language with tools like Ghidra, AIDA Pro, and GDB to safely analyze Linux and Windows programs.
Describe the three core computer subsystems—central processing unit, memory, and input/output—and how they exchange data over data, address, and control buses, with hands-on tasks and a simple programming environment.
See how the cpu fetches instructions from memory using buses to execute programs. Compare Python and C, and prepare a Linux development environment with gcc and Visual Studio Code.
Explore computers as billions of two-state switches managed by a control unit. Learn how these switches encode and store data as bits and bytes, using binary, ASCII, and hex representations.
Explore how decimal addition mirrors binary arithmetic inside computers, using digit-by-digit addition, carries, and the roles of carry and overflow flags in unsigned and signed arithmetic.
Explore unsigned integers in binary by mastering four-bit addition, carry bits, and the carry flag, and understand how overflow and underflow are handled at the hardware level.
Learn the step-by-step decimal borrowing in subtraction and see how the same logic applies to binary subtraction in computers, including signed vs unsigned representations, flags, and two's complement.
Explore binary subtraction in unsigned integers, illustrating borrowing and the carry flag across a four-bit example of subtracting 14 from 4. See how assembly subs update flags to signal borrow.
Explore binary subtraction with signed integers using two's complement and why sign magnitude fails. See four-bit examples illustrate positive, negative numbers, and the arithmetic efficiency of two's complement.
Explore the origins and foundations of boolean algebra, binary values, and core boolean operators including and, or, not, and their role in digital logic, truth tables, and circuit design.
Explore how transistors serve as solid-state switches to implement logic gates, and learn key electronics concepts like current, voltage, DC/AC, and how these ideas drive hardware design.
Explore how resistance, capacitance, and inductance create impedance and timing, and how resistors, capacitors, inductors, and switches form series and parallel networks under Ohm's law and Kirchhoff's voltage law.
Capacitors store energy in an electric field between plates and charge gradually, trading voltage with the resistor. The RC time constant governs exponential charging and smoothing in circuits.
Inductors store energy in a magnetic field and resist changes in current, filtering and smoothing motherboard power to CPUs. Their exponential response and time constant stabilize voltage and prevent surges.
Explore how power consumption in circuits arises from resistance, capacitance, and inductance, and how transistors enable fast, energy-efficient digital logic with mosfet and cmos technologies.
Learn about the mOSFET, the most widely used transistor, and how n-channel and p-channel configurations enable channel conduction controlled by gate voltage.
Explore how CMOS uses complementary PMOS and NMOS transistors to create a power-efficient inverter. See how three CMOS stages realize an and gate.
Explore how computers use logic circuits, focusing on combinational versus sequential circuits with memory, voltage representations of binary digits, and active high and active low signaling.
Explore how to add two n-bit binary numbers using half adders and full adders, computing sum and carry with truth tables and XOR-based equations.
Learn how nand and nor gates serve as universal gates, flipping logic with transistors, and how De Morgan's laws let you build not, and, or, and xor from them.
Learn assembly to speak to the machine, optimize code, and unlock careers in ethical hacking, digital forensics, and malware analysis, where open source tools empower defense.
Explore the evolution of programming languages from first-generation binary code to second-generation assembly and third-generation languages like Python, C, Sharp, and Java, highlighting mnemonics, assemblers, and compilers.
Explore how disassembly converts machine language to assembly and how decompilers strive to recover high-level code from binaries, noting compilation challenges and security implications for malware analysis.
Explore preprocessing with gcc, managing multiple source files, macros with #define, and header includes, producing pure C before compilation.
Translate pre-processed code into assembly during the compilation phase, with gcc optimization levels from 0 to 3 shaping disassembly. Emit assembly via -S and -masm=intel, preserving symbolic names for analysis.
Generate Elf 64-bit LSB relocatable object files from assembly inputs, encapsulating machine instructions and enabling linking into a binary executable.
Merge object files into a single executable at the linking phase, resolving relocation symbols and symbolic references, with link time optimization. Learn how static and dynamic libraries shape final binary.
Explore elf fields like e_type (et_rel, et_exec, et_dyn), e_machine (x86_64), and e_entry, and identify how program and section header offsets are file offsets, not virtual addresses.
Explore the Elf program header table and how segments guide the loader, detailing p_type, p_flags, p_offset, p_vaddr, p_paddr, p_filesz, p_memsz, and p_align.
Explore the fundamentals of the Windows portable executable format, compare it with ELF, and analyze the MS-DOS header, the lfanew offset, and the PE header.
Discover how symbolic information maps high level code to binary addresses using readelf. Learn how function symbols guide disassembly and how stripped binaries complicate reverse engineering in practice.
Disassemble an object file and the main binary with objdump to compare contents, and explain how read-only data stores constants like hello world and how the linker resolves relocations.
Disassemble a complete binary and compare object files with symbols against stripped binaries, noting how symbols guide navigation and how sections like init, plt, and text differ using objdump.
Discover how a Linux ELF binary loads and executes: the interpreter maps libraries, performs relocations, and enables lazy binding before transferring control to the binary’s entry point.
Explore Ghidra's open source, free decompiler and broad architecture support, with a project-based, collaborative workflow for large firmware analysis, plus step-by-step download, install, and file structure basics.
Install the Java development kit on Linux with a straightforward process using sudo apt-get install default-jdk, then verify the installation with java -version to confirm OpenJDK 17.0.6 is installed.
Install the Java development kit using Amazon Corretto on Windows or macOS to run Ghidra, leveraging a no-cost, production-ready OpenJDK with long-term support and security updates.
Install and configure Sasm on Linux to enable syntax highlighting, graphical debugging, and customizable settings for assembly programming, including fonts, colors, and registers view.
Master the Art of seeing what is hidden. Most programmers treat compiled binaries as a "black box"-a mystery they can never solve. This course changes that. In this comprehensive bootcamp, you will learn to peel back the layers of software to understand the working principles of any executable, regardless of whether you have the source code.
The Full Stack of Deconstruction
We don't start with tools; we start with the physics of computing. Before you touch a decompiler, you will understand:
Hardware Foundations: From MOSFETs and Logic Gates to how a CPU actually executes an instruction.
Low-Level Arithmetic: Mastery of Binary, Hexadecimal, and Boolean Algebra for reverse engineers.
The Assembly Layer: Deep-dive into x86-64 Assembly language, focusing on registers, stack frames, and memory addressing.
Tooling and Methodology
You will gain hands-on experience with industry-standard tools and forensic techniques:
Static Analysis with Ghidra: Master the NSA’s premier open-source reverse engineering suite. Learn to navigate function graphs, use the decompiler effectively, and perform data type recovery.
Dynamic Analysis & Debugging: Use GDB (GNU Debugger) and DDD to monitor program execution in real-time, manipulate memory, and bypass software protections.
File Format Anatomy: Gain a surgical understanding of the Linux ELF and Windows PE formats. Learn how headers, sections, and symbols drive the execution process.
Real-World Applications
This isn't a theory-only course. You will apply your skills to:
Malware Analysis: Learn the 5 critical steps to identifying and neutralizing malicious software.
Vulnerability Research: Understand how to find buffer overflows and logic errors by analyzing raw machine code.
Software Hardening: See how stripped binaries work and how to recover symbolic information.
Whether you are looking to enter the world of Exploit Development, Cybersecurity Research, or simply want to become a 1% developer who understands the "atoms" of their code, this course provides the manual you’ve been looking for.
Stop guessing what the code does. Start knowing. Join the bootcamp today.