American McGee's Scrapland reversing and modding
Find a file
Daniel Seiller 7e044f0114 Lots of changes (expand to read more)
- Update NOTES with new findings
- Add Cutter link to README
- Add ASMJIT, ASMTK and Zydis to CMake
- Make DX8 setting cofigurable via ScrapHacks REPL
- Add scaffolding for build hook trampolines using asmjit
- Add on the fly assembling of code to REPL
- Clean up command structure
- Add memory RWX to REPL
- Add stack dumping to REPL
- Add Gamevar dumping to REPL
- Add hook check to overlay commands (don't work if DX8 not hooked)
- Allow nested command definitions for cleaner REPL
- AllocConsole() as early as possible
- shuffle some code around for cleanup
- Add GameVar, PakEntry and HashIndex structures
2020-01-03 03:22:09 +01:00
.vscode Lots of changes (expand to read more) 2020-01-03 03:22:09 +01:00
lib Lots of changes (expand to read more) 2020-01-03 03:22:09 +01:00
ScrapHacks Lots of changes (expand to read more) 2020-01-03 03:22:09 +01:00
.gitignore Update .gitignore and NOTES.md 2019-12-04 00:28:36 +01:00
helplib.txt Auto format everything 2019-09-02 21:44:17 +02:00
LICENSE Add LICENSE 2018-12-22 17:21:50 +00:00
NOTES.md Lots of changes (expand to read more) 2020-01-03 03:22:09 +01:00
parse_save.py Lots of changes (expand to read more) 2020-01-03 03:22:09 +01:00
r2_analyze.py Lots of changes (expand to read more) 2020-01-03 03:22:09 +01:00
README.md Lots of changes (expand to read more) 2020-01-03 03:22:09 +01:00
scrapper.py Auto format everything 2019-09-02 21:44:17 +02:00

Scrapland Reverse Engineering noted and tools

Scripts:

  • parse_save.py: Dumps information extracted from Save file
  • scrapper.py: Extractor and Repacker for *.packed files, needs the construct and tqdm python modules and python 3.x
  • Run scrapper.py -h for help
  • r2_analyze.py: uses radare2 to parse and label a lot of interesting stuff in the Scrap.exe binary
  • lib/dbg.py: general Script for poking around inside the game's scripting system
  • Run import dbg inside the Game's Console, this will load all builtin modules and enable godmode
  • The dbg module also enables writing to the ingame console using print <var> and defines two global functions s_write() and e_write() for writing to the Ingame Console's Stdout and Stderr Stream
  • dbg.menu() Displays the Game's built in Debug Menu (doesn't work properly)
  • dbg.enable_all_conv() allows you to "overwrite" any character, even if they are protected/invulnerable
  • dbg.become(name) allows you to transform into any character
  • dbg.helplib() generates a file helplib.txt in the Game's folder containing all available Documentation for all available classes and functions
  • dbg.settrace() Logs all Python function calls together with their arguments into a dbg.txt file inside the Game's folder

ScrapHacks

WIP Memory hacking library

Notes

Tools used: