A patcher for a text hard-coded into an executable of the Dwarf Fortress game.
What it does:
extract_strings.py
module)cross_references.py
)patchdf.py
)analyze_and_provide_fix.py
)mov
commands and tries to replace such code with a more simple code (specifically, with rep movsd
command) (moves_series.py
)search_charmap.py
, patch_charmap.py
)Includes:
peclasses.py
module). I tried to migrate to the pefile module, but it turned out that our implementation is faster and easier to use (e.g., IDE shows field names of PE Structures as you type code)edit_relocs.py
)disasm.py
module). It is planned to replace it with some fully functional engine (e.g., zydis-py), because it needs too much effort to develop.machine_code_builder.py
, machine_code_assembler.py
, and machine_code_utils.py
as a demonstration.ctypes_annotated_structure.py
module and usage examples in peclasses.py
.