| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A practical handbook on reverse engineering — covering embedded firmware (ARM Cortex-M, Xtensa/ESP32, RISC-V, 8051), Linux userland (Cortex-A daemons, stripped binaries, packers, malware patterns), Linux kernel modules + device trees (DTB/DTS), MIPS-based router firmware, hardware attacks (fault injection, side-channel analysis, debug-port discovery, OTP/flash gotchas), and active techniques (USB / CAN / BLE protocol RE, fuzzing embedded targets).
The book uses radare2 as its primary running example because it is the only fully free, fully open, fully scriptable disassembler with first-class coverage of every architecture covered. Other tools (Ghidra, IDA, Binary Ninja, binwalk, Frida, Capstone/Keystone/ Unicorn, Qiling, esptool, OpenOCD, probe-rs, flashrom, YARA, BinDiff, LLM assistants) are surveyed in the toolkit chapter (Chapter 26) and called out where each shines.
The PDF is built from Markdown sources with Pandoc and the Eisvogel LaTeX template, producing a Packt/O'Reilly-style typeset book.
You need a small toolchain. On macOS with Homebrew:
brew install pandoc tectonic
On Linux:
# pandoc from your package manager (>= 3.0) sudo apt install pandoc # tectonic from https://tectonic-typesetting.github.io cargo install --locked tectonic # or: sudo apt install texlive-xetex texlive-fonts-extra # (then edit build.sh to pass --pdf-engine=xelatex)
Then:
./build.sh # or: make
The output lands at build/r3vbook.pdf.
The build uses the system fonts Charter (serif body), Helvetica Neue (sans), and Menlo (monospace). On non-macOS systems substitute via metadata.yaml — any serif body, sans-serif heading, and monospace code font will do; the layout was designed around oldstyle-figures Charter but is robust to substitution.
src/
front/ preface
part1/ 6 ch foundations (landscape, install, command grammar,
loading, analysis, visual mode)
part2/ 5 ch static analysis toolkit
part3/ 7 ch architectures
part4/ 6 ch firmware workflows: raw images, bootloaders,
dynamic analysis, patching, pinout discovery,
Linux userland
part5/ 6 ch automation, broader toolkit, generic RE techniques,
LLM-assisted RE, playbook, caveats
part6/ 3 ch hardware attacks: fault injection / glitching,
side-channel analysis, hardware tricks and pitfalls
part7/ 4 ch protocols and fuzzing: USB protocol RE, CAN +
automotive ECU RE, Bluetooth / BLE, fuzzing
embedded targets
appendix/ 4 ch command cheatsheet, arch reference,
file formats, further reading
template/ Eisvogel LaTeX template + Lua filter for callouts
metadata.yaml book-level Pandoc/LaTeX configuration
build.sh one-shot build
Makefile convenience targets (build, clean)
CHANGELOG.md version history
LICENSE CC BY-SA 4.0
Each chapter is one markdown file under src/<part>/. Chapter order is determined by the file's leading number (12-arm-cortex-m.md). Inside a chapter:
::: note This is a note. ::: ::: tip This is a tip. ::: ::: warning This is a warning. ::: ::: caution This is a caution. :::
Semantic versioning (see CHANGELOG.md):
Pull requests welcome. Useful kinds of contribution:
Open an issue first for anything larger than a typo fix so we can align on scope before you write.
The book text is licensed under Creative Commons Attribution-ShareAlike 4.0 International. The build scripts, LaTeX template, Lua filter, and example code embedded in the prose are additionally available under the MIT License at the reader's option. See LICENSE for full terms.
The radare2 ecosystem exists because of a long line of contributors who chose to publish hard, niche, often thankless tooling for free. If this book has any value, that value is theirs first.
| Back | FazBrowse Home | New Git URL |