urt-rs / docs /research /qvm /cgame.json
nmarshall's picture
Start QVM and native binary reverse engineering with reproducible analysis
fd99160
Raw History Blame Contribute Delete
4.23 kB
{
"call_class_counts": {
"adjacent_constant_syscall_candidate": 2039,
"adjacent_constant_target_candidate": 4525,
"unresolved_indirect": 231
},
"constant_string_reference_candidates": 1534,
"constant_syscall_candidates": {
"0": 9,
"1": 4,
"10": 10,
"100": 88,
"101": 45,
"102": 2,
"103": 265,
"104": 238,
"105": 4,
"106": 126,
"11": 4,
"12": 3,
"13": 10,
"14": 41,
"15": 54,
"16": 24,
"17": 1,
"18": 1,
"19": 1,
"2": 2,
"20": 3,
"22": 1,
"23": 19,
"24": 1,
"25": 27,
"26": 1,
"27": 1,
"28": 89,
"29": 34,
"3": 12,
"30": 3,
"31": 2,
"32": 2,
"33": 1,
"34": 118,
"36": 1,
"37": 66,
"38": 44,
"39": 85,
"4": 2,
"40": 3,
"41": 56,
"42": 11,
"43": 7,
"44": 2,
"45": 123,
"46": 83,
"47": 7,
"48": 2,
"49": 1,
"5": 71,
"50": 2,
"51": 1,
"52": 1,
"53": 1,
"54": 3,
"55": 5,
"56": 1,
"57": 96,
"6": 18,
"60": 4,
"61": 3,
"62": 4,
"63": 4,
"65": 5,
"66": 4,
"67": 35,
"68": 2,
"69": 1,
"7": 2,
"70": 3,
"71": 1,
"73": 4,
"74": 1,
"75": 1,
"76": 1,
"77": 1,
"78": 1,
"79": 1,
"8": 8,
"80": 3,
"81": 8,
"9": 4
},
"entry_instruction": {
"code_offset": 0,
"file_offset": 32,
"index": 0,
"opcode": "ENTER",
"operand": 36
},
"function_entry_candidates": 1133,
"header": {
"bss_length": 37935304,
"code_length": 759988,
"code_offset": 32,
"data_length": 62940,
"data_offset": 760020,
"declared_memory_bytes": 38055548,
"decoded_code_bytes": 759987,
"instruction_count": 258563,
"jump_target_bytes": 0,
"jump_targets": [],
"literal_length": 57304,
"magic": "0x12721444",
"upstream_power_of_two_memory_bytes": 67108864,
"zero_code_padding_bytes": 1
},
"limitations": "Adjacent constants are local patterns, not whole-program dataflow; ENTER ranges are linear partitions, not proven functions. Computed calls/jumps remain unresolved.",
"module": "cgame",
"opcode_counts": {
"ADD": 14409,
"ADDF": 2519,
"ARG": 15208,
"BAND": 1227,
"BLOCK_COPY": 405,
"BOR": 253,
"BXOR": 19,
"CALL": 6795,
"CONST": 55515,
"CVFI": 411,
"CVIF": 1444,
"DIVF": 220,
"DIVI": 251,
"ENTER": 1133,
"EQ": 2415,
"EQF": 142,
"GEF": 272,
"GEI": 306,
"GTF": 59,
"GTI": 205,
"GTU": 4,
"JUMP": 3942,
"LEAVE": 2094,
"LEF": 178,
"LEI": 380,
"LEU": 11,
"LOAD1": 841,
"LOAD2": 64,
"LOAD4": 51490,
"LOCAL": 55295,
"LSH": 1517,
"LTF": 148,
"LTI": 683,
"LTU": 10,
"MODI": 205,
"MULF": 5574,
"MULI": 1638,
"MULU": 3,
"NE": 2227,
"NEF": 72,
"NEGF": 460,
"NEGI": 20,
"POP": 3460,
"PUSH": 1133,
"RSHI": 99,
"RSHU": 20,
"SEX16": 76,
"SEX8": 546,
"STORE1": 483,
"STORE2": 14,
"STORE4": 20589,
"SUB": 729,
"SUBF": 1350
},
"schema_version": 1,
"sha256": "afb9f76b720b103232e39e0250a2af7977bd084de607ad3073db6de00a171583",
"source": {
"archive": "zUrT43_qvm.pk3",
"archive_sha256": "b59bf0c5bedf11d50e0edd220da7eade96de40601e98ae14c54c819047df0796",
"member": {
"bytes": 880264,
"comment_hex": "",
"compressed_bytes": 221234,
"compression": 8,
"crc32": "1289db6b",
"create_system": 0,
"create_version": 63,
"date_time": [
2018,
6,
18,
22,
11,
48
],
"directory": false,
"entry_index": 1,
"external_attr": 32,
"extra_hex": "0a00200000000000010018006d56d3954007d401359ce9932f1fd201359ce9932f1fd201",
"extract_version": 20,
"flags": 0,
"header_offset": 33,
"internal_attr": 0,
"occurrence": 0,
"output": "assets/extracted/zUrT43_qvm.pk3/members/000001/vm/cgame.qvm",
"path": "vm/cgame.qvm",
"sha256": "afb9f76b720b103232e39e0250a2af7977bd084de607ad3073db6de00a171583",
"type": "member",
"volume": 0
}
},
"string_count": 2538
}