Daniel Seiller
8d92f25b8c
- Started implementing new parser for chunked data - Started documenting data formats - Started dissector for network protocol - Added AI-Graph renderer (converts .pth files to python data you can import into Blender) - Added Script to convert savefile to JSON - Added (old) parser for chunked data format - Added basic parser for LFVF data section (Vertex Data) - Added script to analyze and filter read trace generated with frida script - Added various Frida scripts |
||
---|---|---|
.. | ||
.vscode | ||
src | ||
utils | ||
.gitattributes | ||
build.bat | ||
CMakeLists.txt | ||
README.md |
Features
- read and write memory
- disassemble memory (using zydis)
- 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 (using asmtk)
- 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
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
Config file keys
- patches.asm: map of address->list of assembly instructions
- patches.hex: map of address->hex bytes
Example:
{
"patches": {
"hex": {
"0xDEADBEEF": "BADFOODDEADFEED"
},
"asm": {
"0xBADF00D": [
"pushad",
"call 0xf00dbabe",
"popad",
"mov eax, 0x42",
"ret"
]
},
}
}
Third-Party components used
- Zydis disassembler
- asmJIT/asmTK assembler
- nlohmann/json JSON-parser