ScrapHacks/config.yml
Daniel Seiller 7afdfb5869 Lots of changes, expand to read
- 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
2021-01-20 23:53:14 +01:00

441 lines
No EOL
12 KiB
YAML

notes: |
0x7faa4c: temp storage?
0x4039b0: fcn.handle_cli_opts?
0x668007: ?
comments:
0x6113f9: Check if Window exists
flags:
0x7fbfa0: P_HT_SaveVars
0x7fbe50: P_HT_Eng_Vars
0x8c8d60: P_Addr_master
0x8c8d50: P_Addr_client
0x7fa748: P_Socket
0x8045dc: P_Socket_Server
0x7FE944: P_World
0x792618: P_Eng3d_ver
0x853a24: P_gWorld
0x7FBE4C: P_Vars
0x79C698: Py_Mods
0x852914: P_D3D8_Dev
0x850258: P_D3D8_ZBuffer
0x850408: P_D3D8_BackBuffer
0x7FCC00: N_Paks_opened
0x7fcbec: Hash_Index_Size
0x7fcbf0: P_Hash_Index
0x7fcc08: Lst_File
0x7fcc04: Pak_Locked
0x7fc1b0: Pak_Index
0x84cb64: P_ConHandler
0x801e10: num_arrows
0x7fac84: P_Callbacks
0x80b2cc: P_ActClassList
0x807a20: P_Scorer
0x80a398: P_SoundSys
0x84cb58: H_RichEd
0x84cb4c: P_HWND_Console
0x80cb40: Console_Win_Buffer
0x84d400: Lib_preloaded
0x7fac1c: Activate_Viewer
0x8b18f0: P_Models
0x8b18f4: P_Scenes
0x8b18f8: P_ActiveModels
0x803bc0: net_is_server
0x8045e4: net_is_master
0x8038a8: net_is_client
0x7fadd8: is_python
0x7fc084: pak_lock
0x7fbe7c: current_language
0x7d2094: refcnt_Py_None
0x7fa830: P_Window
0x7fadd0: P_PyExecute
0x84d3ec: Py_Initialized
0x8c8f10: Py_Debug
0x84d3e8: Py_Verbose
0x84db38: Py_Optimize
0x84dd60: Py_interpr
0x7fae38: Debug_Level
0x7fae40: Console_Out_Buffer_132_23
0x7fbe20: Console_Curr_Line
0x84db30: Py_Dummy
0x8ca2c4: cmdline
0x8c6350: module_filename
0x8c6140: P_module_filename
0x853954: P_D3DApp
0x853091: N_Uniones
0x7faa4c: server_state
0x8039a8: client_data
0x8038a0: client_ship
# 0x7fbe24:
# 0x7fa778:
# 0x8c8d78:
VMTs:
0x78d4d8: Py_entity
0x78cc6c: World
0x78b680: FilePak_1
0x78b6a4: FilePak_2
0x78b638: AbstractFile
0x78b4d8: App
0x78b480: Window
0x78b5c0: File
0x78b65c: FileMem
0x78b6d0: IDevice_1
0x78b6f4: IDevice_2
0x78b6fc: IDevice_Kb
0x78b720: IDevice_Mouse
0x78b74c: IDevice_Joy
0x7933ac: 3d_Gfx
0x7933a0: NodeFX
classes:
World:
types:
- "struct PyMethodDef { char* ml_name; void* ml_meth; int ml_flags; char* ml_doc;};"
- "struct GameVar { struct GameVar* next; const char* name; const char* desc; uint64_t d_type; void* value; void* def_value; };"
- "struct HT_Entry { void* data; const char* key; struct HT_Entry* next;};"
- "struct PakEntry { unsigned char* filename; bool locked; void* data; uint32_t seek;};"
- "struct HashIndexEntry { uint32_t offset; uint32_t size; uint32_t status; const char* name; struct HashIndexEntry* next; };"
- "struct HashIndex { uint32_t size; struct HashIndexEntry** data; };"
- "struct HashTableEntry { void* data; const char* key; struct HashTableEntry* next; };"
- "struct HashTable { uint32_t size; struct HashTableEntry** data; };"
- "struct va_list { unsigned int gp_offset; unsigned int fp_offset; void *overflow_arg_area; void *reg_save_area; };"
functions:
0x5dadc0:
name: read_MAT_block
0x5daf10:
name: read_MAP_block
0x60d710:
name: read_INI_block
0x6155b0:
name: read_DUM_block
0x628760:
name: read_EMI_block
0x62c070:
name: read_AMC_block
0x62c580:
name: read_SUEL_block
0x631570:
name: read_CMSH_block
0x631940:
name: read_QUAD_block
0x64d380:
name: read_LUZ_block
0x650f80:
name: read_SCN_block
0x652480:
name: read_LFVF_block
0x658770:
name: read_CAM_block
0x6665a0:
name: read_CM3_block
0x666900:
name: read_SM3_block
0x6715e0:
name: read_PORT_block
0x675c90:
name: read_MD3D_block
0x6776d0:
name: read_NAM_block
0x6787a0:
name: read_ANI_block
0x6869b0:
name: read_SPR3_block
0x6875d0:
name: read_EVA_block
0x6283a0:
name: load_emi
0x4fa9f0:
name: send_pkt
0x5ca9e0:
signature: void* PyFrame_New(void* thread_state, void* code_object,void* globals, void* locals)
name: PyFrame_New
0x5bcae0:
signature: void PyErr_SetString(void* obj, const char* err_msg);
name: PyErr_SetString
0x5cb040:
signature: void* eval_code2(void* dict, const char* key, void* item);
name: eval_code2
0x5e3c50:
convention: cdecl-thiscall-ms
name: read_int
0x5e3b50:
convention: cdecl-thiscall-ms
name: read_block_header
0x5c66d0:
signature: void initerrors(void* dict);
name: initerrors
0x5bb370:
signature: int PyDict_SetItemString(void* dict, const char* key, void* item);
name: PyDict_SetItemString
0x5b9960:
signature: void* PyObject_NEW(void* type, void* typeobj);
name: PyObject_NEW
0x4145e0:
convention: cdecl-thiscall-ms
signature: bool get_config_var(char* name);
name: get_config_var
0x413470:
signature: void init_logging();
name: init_logging
0x5a8040:
signature: void Py_Initialize();
name: Py_Initialize
0x5bb4e0:
name: PyModule_GetDict
signature: void* PyModule_GetDict(void*);
0x5c6610:
name: _PyBuiltin_Init_1
signature: void* _PyBuiltin_Init_1();
0x5b5db0:
name: PyString_FromString
signature: void* PyString_FromString(const char*);
0x5ba3a0:
name: PyDict_New
signature: void* PyDict_New();
0x5c7bd0:
name: PyThreadState_Swap
signature: void* PyThreadState_Swap(void* new);
0x5c7870:
name: PyInterpreterState_New
signature: void* PyInterpreterState_New();
0x5c79b0:
name: PyThreadState_New
signature: void* PyThreadState_New(void* interp);
0x6ad1e9:
name: getenv
signature: char* getenv(char* var);
0x401180:
name: create_window
0x401240:
name: create_main_window
0x4016f0:
name: reg_get_val
signature: int reg_get_val(const char* value);
0x401770:
name: init
0x402190:
name: handle_console_input
signature: int handle_console_input(const char* input);
0x402510:
name: deinit_world
0x4026d0:
name: init_py
0x403370:
name: init_engine
0x4037e0:
name: init_debug
0x404280:
name: cPyFunction_set_func
0x404420:
name: clear_functions
0x404460:
name: register_c_callback
signature: int register_c_callback(const char* name,void* func);
0x404a50:
name: find_entity
0x404bb0:
name: ht_hash_ent
signature: int ht_hash_ent(const char* str);
0x405850:
name: check_is_python
0x405b40:
name: init_py_sub
0x405ca0:
name: close_py_subsys
0x4134c0:
signature: int write_log(unsigned int color, const char* msg);
name: write_log
0x4137e0:
signature: void write_html_log(const char* fmt,...);
name: write_html_log
0x413c10:
name: sprintf
0x413ee0:
name: dbg_log
signature: int dbg_log(const char* fmt,...);
0x414070:
name: throw_assertion_2
signature: void throw_assertion_2(const char* check,const char* file,const char* date, unsigned int line);
0x414280:
name: prepare_html_log
signature: int prepare_html_log(const char* filename);
0x414570:
name: setup_game_vars
0x414680:
name: load_config
0x414810:
name: save_config
0x417470:
name: load_game
0x417df0:
name: snprintf_1
0x417d80:
name: snprintf_2
0x418220:
name: get_version_info
0x419950:
name: fopen_2
signature: int fopen_2(const char* filename);
0x41ab50:
name: open_pak
signature: int open_pak(const char* filename, int unk_1,void* unk_ptr);
0x41c5a0:
name: has_lst_file
signature: int has_lst_file(void* unk_ptr);
0x474f80:
name: ent_list_get_set
signature: bool ent_list_get_set(const char* name);
0x479870:
name: make_world
0x479b20:
name: close_world
0x479b40:
name: init_world
0x47bf90:
convention: cdecl-thiscall-ms
name: create_ent_list
signature: bool create_ent_list(const char* name);
0x47c1e0:
name: ht_hash_ent_list
signature: int ht_hash_ent_list(const char* str);
0x4f42a0:
name: close_server_socket
0x4f48e0:
name: close_client
0x4f4a10:
name: is_client
0x4f4d10:
name: close_server
0x4f4fb0:
name: is_server
0x4fac50:
name: is_master
0x50b6a0:
name: get_scorer
0x50b9b0:
name: init_scorer
0x50bcb0:
name: close_scorer
0x50ea20:
name: scorer_parse_type
0x526520:
name: shutdown_sound_sys
0x5268d0:
name: try_init_sound_sys
0x526910:
name: close_sound_sys
0x528910:
name: init_sound_sys
0x582e10:
name: init_action_class_list
0x582e70:
name: close_action_class
0x5a7320:
name: close_window
0x5a73a0:
name: show_console
0x5a7440:
name: create_console_window
0x5a7f20:
name: get_console_wnd
0x5a8390:
name: PyRun_SimpleString
signature: int PyRun_SimpleString(const char* command);
0x5a8e90:
name: Py_FatalError
signature: void Py_FatalError(const char* msg);
0x5a8fb0:
name: Py_InitModule
signature: void* Py_InitModule(const char* name,void* methods);
0x5a90f0:
name: Py_BuildValue
signature: void* Py_BuildValue(const char* format, ...);
0x5a9890:
name: PyImport_GetModuleDict
signature: void* PyImport_GetModuleDict();
0x5aa140:
name: preload_lib
0x5b9e70:
name: PyObject_GetAttrString
signature: void* PyObject_GetAttrString(void* obj, const char* attr);
0x5bb9d0:
name: PyArg_ParseTuple
signature: int PyArg_ParseTuple(void* PyObj, char* format, ...);
0x5bc140:
name: convertsimple1
signature: static char* convertsimple1(void* arg, char** p_format, void* va_list);
0x5bc0f0:
name: convertsimple
signature: static char* convertsimple(void* arg, char** p_format, char* msgbuf);
0x5bbf60:
name: converttuple
signature: static char* converttuple(void* arg, char** p_format, void* va_list, int* levels, char* msgbuf, int toplevel);
0x5bbee0:
name: convertitem
signature: static char* convertitem(void* arg, char** p_format, void* va_list, int* levels, char* msgbuf);
0x5c7bb0:
name: PyThreadState_Get
signature: void* PyThreadState_Get();
0x5dd510:
name: init_engine_3d
0x5dd700:
name: close_3d_engine
0x5dff20:
name: set_exception_handler
0x5e3250:
name: read_stream
0x5e3500:
name: fopen
0x5e3800:
name: fopen_from_pak
signature: int fopen_from_pak(const char* filename,const char* mode);
0x5e3bb0:
name: read_stream_wrapper
0x5f7000:
name: read_ini
0x5f75e0:
name: init_d3d
0x5f9520:
name: handle_render_console_input
0x5fbc50:
name: throw_assertion_1
signature: void throw_assertion_1(const char* check,const char* file, unsigned int line);
0x5fc0a0:
name: engine_debug_log
0x5fc930:
name: printf
0x602a70:
name: render_frame
0x6114e0:
name: setup_window
0x636580:
name: list_models
0x63a2f0:
name: gdi_draw_line
0x6597d0:
name: read_ini_entry
signature: bool read_ini_entry(void* dest,const char* key, const char* section);
0x666c60:
name: read_m3d
0x6b1c70:
name: strcmp
signature: bool strcmp(const char* s1,const char* s2);
0x6b738c:
name: handle_exception
script: |
e asm.cmt.right = true
e scr.utf8 = true
e asm.describe = false
e graph.cmtright = true
e cfg.sandbox = false
e cfg.newtab = true
e cfg.fortunes.type = tips,fun,creepy,nsfw
e dbg.status = true
e pdb.autoload = true
e emu.str = true
e asm.flags.offset = true