forked from ReScrap/ScrapHacks
Daniel Seiller
7afdfb5869
- Add notes folder with MDBook documentation (the NOTES.md file was getting kind of large) - Add rz_analyze.py, does the same a r2_analyze.py just with Rizin instead of radare2 so the project can be loaded in Cutter (*and* it's faster) - Add Scrap.rzdb, Rizin database for the Scrap.exe executable - Add Scrapper_rs, Rust version of .packed extractor and repacker - replace helplib.txt with helplib.md - add Py_Docs folder which contains generated documentation for the binary python modules built into Scrap.exe
21 lines
634 B
Python
21 lines
634 B
Python
import sys
|
|
from construct import *
|
|
from pprint import pprint
|
|
|
|
ScrapSaveVar = Struct(
|
|
"name" / PascalString(Int32ul, encoding="utf-8"),
|
|
"data" / PascalString(Int32ul, encoding="utf-8"),
|
|
)
|
|
ScrapSave = "ScarpSaveGame" / Struct(
|
|
"title" / PascalString(Int32ul, encoding="utf-8"),
|
|
"id" / PascalString(Int32ul, encoding="utf-8"),
|
|
"data" / PrefixedArray(Int32ul, ScrapSaveVar),
|
|
Terminated,
|
|
)
|
|
with open(sys.argv[1], "rb") as sav_file:
|
|
save = ScrapSave.parse_stream(sav_file)
|
|
print("ID:", save.id)
|
|
print("Title:", save.title)
|
|
for var in save.data:
|
|
print(" {}: {}".format(var.name, var.data))
|
|
|