reversing dwarf fortress for !!fun!! and ruby

Presented at REcon 2012, June 16, 2012, 10 a.m. (30 minutes)

Last year I gave a talk on Memory Eye, a memory analysis tool, which was used tolook at the memory of the Dwarf Fortress game (http://bay12games.com/dwarves/).This year I'd like to cover what has been done since then, including one guythat wrote a graphic tool in lisp to analyse the heap of the game and spit outan XML description of the data structures ; a perl script that reads the XMLand outputs c or c++ headers ; a binary hook to allow loading 'dfhack' insidethe memory space of the game ; and finally my own contribution, loading a rubyinterpreter in the game address space using dfhack, with access to all thegame internal structures thanks to generated bindings from the XML.

The talk would include technical info, eg on how to allocate and initializec++ objects manually, how we hook the game to initialize malloc()ed spaceto some marker and use that to match patterns in the c++ standard objects(std::string or std::vector), and how we reuse that to track changes inthe data structures between one game version and the next ; but it wouldalso show how a loose team of hacker from all around the world cooperateon this project.


Presenters:

Links:

Similar Presentations: