Daniel Seiller
7e044f0114
- 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
36 lines
1.1 KiB
Markdown
36 lines
1.1 KiB
Markdown
## Features
|
|
|
|
- read and write memory
|
|
- change DirectX state
|
|
- Draw DirectX overlay (still need to make a useful overlay)
|
|
- Dump various data structures to the console
|
|
- Assemble and execute code on the fly
|
|
- Can be controlled via keyboard shortcuts (TODO: allow defining own shortcuts for commands)
|
|
|
|
## Prerequisites
|
|
|
|
- Visual Studio 2017/2019 (others might work)
|
|
- CMake
|
|
- Python 3.6 or newer
|
|
|
|
## Building
|
|
|
|
Open VS 32-bit command prompt (`vcvars32.bat`) and run the following two commands
|
|
|
|
```batch
|
|
cmake -G"NMake Makefiles" -B build
|
|
cmake --build build --target install
|
|
```
|
|
|
|
This will find the Games's installation folder, verify that the version you have is compatible with ScrapHacks and drop the compiled `.pyd` file into the correct folder to be imported
|
|
|
|
## Getting started
|
|
|
|
- open the ingame console (Ctrl+^)
|
|
- type `import ScrapHack`
|
|
- type `$help`
|
|
|
|
## Notes
|
|
|
|
(this has only been tested with a (cracked/unpacked/de-obfuscated) `Scrap.exe` v1.0 with a SHA1 checksum of `d2dde960e8eca69d60c2e39a439088b75f0c89fa` , other version will crash if the memory offsets don't match)
|
|
|