~/talk

The (Long) Journey to a Multi-Architecture Disassembler

Talkat NorthSec 2019 · 2019-05-14..05-15· [compilers-and-language-design, security]
links:none on file
slides:none on file

JEB implements a multi‑architecture disassembler that converts native instructions to a unified IL, simulates IL forward to resolve indirect branches and function pointers, and uses type libraries to mark non‑returning APIs. It models delay slots and shared basic blocks with mutable “skeleton” blocks, supports switching instruction sets (ARM/Thumb) by trying alternatives and keeping the best CFG, and identifies statically linked libraries via strict assembly hashes and call‑name features. It logs heuristic failures and falls back to conservative mode for safety, enabling JEB IL simulation and compiler-specific heuristics plus signature-based library ID.

AI-written summary · about

  1. 0:00Introduction
  2. 1:21Disassembler
  3. 4:38Agenda
  4. 4:51Toy Example
  5. 9:50Intuitive Strategy
  6. 12:46Instructions
  7. 13:16NonReturning Calls
  8. 14:43NonReturning APIs
  9. 15:49Type Libraries
  10. 18:06Basic Block Visual Definition
  11. 18:49Basic Block Skeletons
  12. 19:16Branch Delay Slot
  13. 27:52JAB
  14. 32:01Code vs Data
  15. 35:58Instruction Set
  16. 38:31All code matters
  17. 39:02Identifying library routines
  18. 41:43Conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.