Modifying Compiled Programs: A Practical Guide to Binary Hacking

Added:

Program Basics
ELF Exploration
Assembly Intro
Memory Protection
Mprotect Fix
LD Preload
Debugger Hack
File Redirection

Program Basics

0:00
Playing Section
  • 1

    Explains programs as recipes with ordered instructions.

  • 2

    Introduces machine code as the final executable form.

  • 3

    Notes CPU interprets instructions sequentially for this video.

Basic Assembly Language (x86_64): Familiarity with CPU registers, instruction sets, and how functions are executed at the machine level.
Linux OS Internals & Memory Management: Understanding virtual memory space, memory permissions (Read, Write, Execute), and the ELF (Executable and Linkable Format) file structure.
Intermediate Rust Programming: Comfort with systems-level programming concepts, raw pointers, FFI (Foreign Function Interface), and using 'unsafe' Rust.
Basic Debugging and Disassembly: Experience using fundamental tools like GDB, objdump, or strace to inspect running processes.
Dynamic Binary Instrumentation (DBI): Learning how to use frameworks like Frida or Intel PIN to monitor and modify binary behavior dynamically.
Advanced Reverse Engineering: Mastering static and dynamic analysis of complex, closed-source binaries using professional tools like Ghidra or IDA Pro.
Exploit Development & Binary Mitigations: Studying software vulnerabilities (e.g., buffer overflows) and learning how to bypass security protections like ASLR, DEP/NX, and stack canaries.
Anti-Analysis and Obfuscation: Exploring how developers (and malware authors) protect binaries from being analyzed or modified, and how to defeat those protections.
23.3K views1.4Klikes26:16@fasterthanlimeOriginal Release: 2022-01-10

Programs can be modified at the binary level by understanding their machine code structure, including how to bypass memory protection, inject code through dynamic libraries, and patch function return values to change program behavior without modifying source code.