Fetch and verify the four MAME indy_4610 PROM dumps, wrap the newest dump in an ELF32 BE MIPS image for Ghidra/REA, and record the resulting structural map: image layout, exception vector table, boot flow, function anchors and firmware feature clusters.
495 lines
9.8 KiB
JSON
495 lines
9.8 KiB
JSON
{
|
|
"source": {
|
|
"bytes": 524288,
|
|
"sha1": "ac663a4db68528e400487e98cbf901f620fb30ce",
|
|
"sha256": "333a0b2e39bb828a28a758b6f633ae7290030129dc747297a1be68dc317b86ae",
|
|
"version_string": "SGI Version 5.3 Rev B10 R4X00/R5000 IP24 Feb 12, 1996",
|
|
"last_non_ff_offset": 522751,
|
|
"last_non_ff_address": "0x1fc7f9ff"
|
|
},
|
|
"image": {
|
|
"base": "0x1fc00000",
|
|
"end": "0x1fc80000",
|
|
"page_size": 4096
|
|
},
|
|
"code": {
|
|
"start": "0x1fc00000",
|
|
"last_function": "0x1fc4a7e0",
|
|
"count": 1074
|
|
},
|
|
"strings": {
|
|
"start": "0x1fc01b7c",
|
|
"end": "0x1fc7c16b",
|
|
"count": 1418
|
|
},
|
|
"page_kinds": {
|
|
"exception-vectors": 1,
|
|
"code": 74,
|
|
"strings": 17,
|
|
"binary-data": 31,
|
|
"zero-data": 5
|
|
},
|
|
"regions": [
|
|
{
|
|
"kind": "exception-vectors",
|
|
"start": "0x1fc00000",
|
|
"end": "0x1fc01000",
|
|
"procedures": 10,
|
|
"strings": 0
|
|
},
|
|
{
|
|
"kind": "code",
|
|
"start": "0x1fc01000",
|
|
"end": "0x1fc4b000",
|
|
"procedures": 1064,
|
|
"strings": 103
|
|
},
|
|
{
|
|
"kind": "strings",
|
|
"start": "0x1fc4b000",
|
|
"end": "0x1fc56000",
|
|
"procedures": 0,
|
|
"strings": 1272
|
|
},
|
|
{
|
|
"kind": "binary-data",
|
|
"start": "0x1fc56000",
|
|
"end": "0x1fc6d000",
|
|
"procedures": 0,
|
|
"strings": 0
|
|
},
|
|
{
|
|
"kind": "strings",
|
|
"start": "0x1fc6d000",
|
|
"end": "0x1fc6f000",
|
|
"procedures": 0,
|
|
"strings": 30
|
|
},
|
|
{
|
|
"kind": "zero-data",
|
|
"start": "0x1fc6f000",
|
|
"end": "0x1fc71000",
|
|
"procedures": 0,
|
|
"strings": 0
|
|
},
|
|
{
|
|
"kind": "binary-data",
|
|
"start": "0x1fc71000",
|
|
"end": "0x1fc72000",
|
|
"procedures": 0,
|
|
"strings": 0
|
|
},
|
|
{
|
|
"kind": "strings",
|
|
"start": "0x1fc72000",
|
|
"end": "0x1fc74000",
|
|
"procedures": 0,
|
|
"strings": 2
|
|
},
|
|
{
|
|
"kind": "zero-data",
|
|
"start": "0x1fc74000",
|
|
"end": "0x1fc76000",
|
|
"procedures": 0,
|
|
"strings": 0
|
|
},
|
|
{
|
|
"kind": "binary-data",
|
|
"start": "0x1fc76000",
|
|
"end": "0x1fc78000",
|
|
"procedures": 0,
|
|
"strings": 0
|
|
},
|
|
{
|
|
"kind": "zero-data",
|
|
"start": "0x1fc78000",
|
|
"end": "0x1fc79000",
|
|
"procedures": 0,
|
|
"strings": 0
|
|
},
|
|
{
|
|
"kind": "binary-data",
|
|
"start": "0x1fc79000",
|
|
"end": "0x1fc7b000",
|
|
"procedures": 0,
|
|
"strings": 0
|
|
},
|
|
{
|
|
"kind": "strings",
|
|
"start": "0x1fc7b000",
|
|
"end": "0x1fc7d000",
|
|
"procedures": 0,
|
|
"strings": 11
|
|
},
|
|
{
|
|
"kind": "binary-data",
|
|
"start": "0x1fc7d000",
|
|
"end": "0x1fc80000",
|
|
"procedures": 0,
|
|
"strings": 0
|
|
}
|
|
],
|
|
"exception_vectors": [
|
|
{
|
|
"offset": 0,
|
|
"address": "0x1fc00000",
|
|
"word": "0x0bf000f0",
|
|
"target": "0x1fc003c0"
|
|
},
|
|
{
|
|
"offset": 16,
|
|
"address": "0x1fc00010",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 32,
|
|
"address": "0x1fc00020",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 48,
|
|
"address": "0x1fc00030",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 64,
|
|
"address": "0x1fc00040",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 80,
|
|
"address": "0x1fc00050",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 96,
|
|
"address": "0x1fc00060",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 112,
|
|
"address": "0x1fc00070",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 128,
|
|
"address": "0x1fc00080",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 144,
|
|
"address": "0x1fc00090",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 160,
|
|
"address": "0x1fc000a0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 176,
|
|
"address": "0x1fc000b0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 192,
|
|
"address": "0x1fc000c0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 208,
|
|
"address": "0x1fc000d0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 224,
|
|
"address": "0x1fc000e0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 240,
|
|
"address": "0x1fc000f0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 256,
|
|
"address": "0x1fc00100",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 272,
|
|
"address": "0x1fc00110",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 288,
|
|
"address": "0x1fc00120",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 304,
|
|
"address": "0x1fc00130",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 320,
|
|
"address": "0x1fc00140",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 336,
|
|
"address": "0x1fc00150",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 352,
|
|
"address": "0x1fc00160",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 368,
|
|
"address": "0x1fc00170",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 384,
|
|
"address": "0x1fc00180",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 400,
|
|
"address": "0x1fc00190",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 416,
|
|
"address": "0x1fc001a0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 432,
|
|
"address": "0x1fc001b0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 448,
|
|
"address": "0x1fc001c0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 464,
|
|
"address": "0x1fc001d0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 480,
|
|
"address": "0x1fc001e0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 496,
|
|
"address": "0x1fc001f0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 512,
|
|
"address": "0x1fc00200",
|
|
"word": "0x0bf003c8",
|
|
"target": "0x1fc00f20"
|
|
},
|
|
{
|
|
"offset": 528,
|
|
"address": "0x1fc00210",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 544,
|
|
"address": "0x1fc00220",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 560,
|
|
"address": "0x1fc00230",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 576,
|
|
"address": "0x1fc00240",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 592,
|
|
"address": "0x1fc00250",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 608,
|
|
"address": "0x1fc00260",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 624,
|
|
"address": "0x1fc00270",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 640,
|
|
"address": "0x1fc00280",
|
|
"word": "0x0bf003ca",
|
|
"target": "0x1fc00f28"
|
|
},
|
|
{
|
|
"offset": 656,
|
|
"address": "0x1fc00290",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 672,
|
|
"address": "0x1fc002a0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 688,
|
|
"address": "0x1fc002b0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 704,
|
|
"address": "0x1fc002c0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 720,
|
|
"address": "0x1fc002d0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 736,
|
|
"address": "0x1fc002e0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 752,
|
|
"address": "0x1fc002f0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 768,
|
|
"address": "0x1fc00300",
|
|
"word": "0x0bf003c6",
|
|
"target": "0x1fc00f18"
|
|
},
|
|
{
|
|
"offset": 784,
|
|
"address": "0x1fc00310",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 800,
|
|
"address": "0x1fc00320",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 816,
|
|
"address": "0x1fc00330",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 832,
|
|
"address": "0x1fc00340",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 848,
|
|
"address": "0x1fc00350",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 864,
|
|
"address": "0x1fc00360",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 880,
|
|
"address": "0x1fc00370",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 896,
|
|
"address": "0x1fc00380",
|
|
"word": "0x0bf00390",
|
|
"target": "0x1fc00e40"
|
|
},
|
|
{
|
|
"offset": 912,
|
|
"address": "0x1fc00390",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 928,
|
|
"address": "0x1fc003a0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
},
|
|
{
|
|
"offset": 944,
|
|
"address": "0x1fc003b0",
|
|
"word": "0x0bf001f1",
|
|
"target": "0x1fc007c4"
|
|
}
|
|
]
|
|
}
|