Code Archaeology: Becoming Indiana Jones
summary
A practical recipe for reversing unknown PHP projects: claim is that you can get an app running and safe to change by mapping entry points (index.php/bootstrap), triggering errors to find code paths, and proving behavior with tests. Uses plain debugging (echo/die, debug_backtrace), interactive tools like xdebug, profilers like xhprof, and history analysis with git pickaxe and cmat. Real numbers: 2,200 commits from 106 authors, only three files changed in the last three months; examples find a wrong-password string and a missing commit for the stolen mechanism.
AI-written summary · about
chapters (21)
- 0:00Start
- 2:48FLYING NOISES
- 5:02INVENTORY THE CODE
- 5:43DEPENDENCIES
- 5:59BUILD THE PROJECT
- 7:00INCORRECT PASSWORD
- 8:27NAVIGATION
- 9:04DRAW A MAP
- 9:53READ THE CODE
- 13:00NAMING THINGS
- 14:19FIND PATTERNS
- 17:07DIE DRIVEN DEBUGGING
- 18:48XDEBUG SCREAM
- 20:41OBSERVER EFFECT
- 21:57PROJECT HISTORY
- 23:51TEMPORAL COUPLING
- 25:06COMMON CAUSES
- 26:07CODE MAAT
- 29:51LEAVING A LEGACY
- 30:26ROSETTA STONE
- 31:54BUILD A KNOWLEDGE MAP
related talks
51mGetting yourself out of trouble with anti-patterns
31mGetting Unstuck
38mFrom the Exorcist to Hercule Poirot
42mContemporary Automatic Program Analysis
49mTreat Your Code as a Crime Scene
46mYour Code Base as a Crime Scene
42mEverything That I Really Needed to Know, I Learned in Rabbinical School
58mUnderstanding Large and Unfamiliar Codebases
