Add various scripts and JSON plans for Ghidra project

- Introduced `seg043_boundary_repair.json` to manage function boundaries in segment 043.
- Created `read_file.py` for reading and printing file content size.
- Added `resolve_bb4f.py` to resolve specific function call targets.
- Implemented `resolve_top_targets.py` to find resolved NE targets for top-called wrapper functions.
- Added `script_contents.txt` to summarize NE relocation far calls.
- Updated `tier4_ghidra.txt`, `tier4_ghidra_check.txt`, `tier4_output.txt`, and `tier4_result.txt` with function call statistics.
- Created `tier5_errors.txt` for error logging and `tier5_output.txt` for additional function call statistics.
- Established `tools` directory with helper scripts for the Ghidra project, including CLI and common functionalities.
- Implemented command-line interface in `cli.py` for various project operations.
- Added `common.py` for shared functions and configurations across tools.
- Introduced `validate_fixups.py` to validate NE relocation fixups against known addresses.
This commit is contained in:
MaddoScientisto 2026-03-20 23:50:39 +01:00
commit 24d4416003
36 changed files with 145712 additions and 14 deletions

120
ne_reloc_far_imports.tsv Normal file
View file

@ -0,0 +1,120 @@
source_ghidra target source_seg source_off_in_seg
0003:761e PHAPI.DOSCREATEDSALIAS seg001 0x001e
0003:76b1 DOSCALLS.38 seg001 0x00b1
0003:76be DOSCALLS.38 seg001 0x00be
0003:7795 DOSCALLS.89 seg001 0x0195
0003:77ab DOSCALLS.89 seg001 0x01ab
0003:f46e DOSCALLS.39 seg001 0x7e6e
0003:f51d DOSCALLS.40 seg001 0x7f1d
0003:f539 DOSCALLS.41 seg001 0x7f39
0003:f561 DOSCALLS.40 seg001 0x7f61
0003:f59c DOSCALLS.42 seg001 0x7f9c
0003:f6c9 DOSCALLS.42 seg001 0x80c9
0003:f851 PHAPI.DOSMAPREALSEG seg001 0x8251
0003:f88d DOSCALLS.39 seg001 0x828d
0003:f896 DOSCALLS.39 seg001 0x8296
0003:f8b3 PHAPI.DOSMAPREALSEG seg001 0x82b3
0003:f943 DOSCALLS.127 seg001 0x8343
0004:17c6 ASYLUM.36 seg004 0x0dc6
0004:17dc ASYLUM.28 seg004 0x0ddc
0004:19cf ASYLUM.45 seg004 0x0fcf
0004:25a5 ASYLUM.24 seg005 0x07a5
0004:6f26 ASYLUM.36 seg011 0x0126
0004:6f2e ASYLUM.28 seg011 0x012e
0004:6f4d ASYLUM.37 seg011 0x014d
0004:6f57 ASYLUM.29 seg011 0x0157
0004:70a2 ASYLUM.37 seg011 0x02a2
0004:70ad ASYLUM.29 seg011 0x02ad
0004:7136 ASYLUM.36 seg011 0x0336
0004:713e ASYLUM.28 seg011 0x033e
0004:715d ASYLUM.37 seg011 0x035d
0004:7167 ASYLUM.29 seg011 0x0367
0004:72af ASYLUM.37 seg011 0x04af
0004:72ba ASYLUM.29 seg011 0x04ba
0006:eba2 ASYLUM.36 seg039 0x09a2
0006:ebb5 ASYLUM.37 seg039 0x09b5
0006:ebc0 ASYLUM.36 seg039 0x09c0
0006:ebd3 ASYLUM.37 seg039 0x09d3
0008:67ee PHAPI._DosRealFarCall seg058 0x03ee
0008:6a7f PHAPI.DOSALLOCREALSEG seg059 0x007f
0008:6aad PHAPI.DOSALLOCREALSEG seg059 0x00ad
0008:6ae8 PHAPI._DosRealIntr seg059 0x00e8
0008:6b2e PHAPI.DOSMAPREALSEG seg059 0x012e
0008:9797 PHAPI.BORISREALINTR seg059 0x2d97
0008:97ac PHAPI.BORISREALINTR seg059 0x2dac
0008:a06b PHAPI._DosRealFarCall seg059 0x366b
0008:ebb2 ASYLUM.34 seg064 0x01b2
0008:ebba ASYLUM.33 seg064 0x01ba
0008:ebff ASYLUM.31 seg064 0x01ff
0008:ec18 ASYLUM.30 seg064 0x0218
0008:ec3c ASYLUM.32 seg064 0x023c
0008:f208 PHAPI.DOSMAPLINSEG seg065 0x0208
0008:f233 PHAPI.DOSMAPLINSEG seg065 0x0233
0008:f2bf PHAPI.DOSMAPLINSEG seg065 0x02bf
0009:080f DOSCALLS.7 seg068 0x000f
0009:0867 PHAPI.DOSALLOCREALSEG seg068 0x0067
0009:0899 PHAPI.DOSALLOCREALSEG seg068 0x0099
0009:08eb PHAPI.DOSALLOCREALSEG seg068 0x00eb
0009:0bc2 DOSCALLS.39 seg068 0x03c2
0009:0bd4 DOSCALLS.7 seg068 0x03d4
0009:0d7a DOSCALLS.39 seg068 0x057a
0009:0d8c DOSCALLS.39 seg068 0x058c
0009:0df3 PHAPI.DOSSETPASSTOPROTVEC seg068 0x05f3
0009:0ea6 PHAPI.DOSSETREALPROTVEC seg068 0x06a6
0009:0f4f PHAPI.DOSSETPROTVEC seg068 0x074f
0009:b363 PHAPI.DOSALLOCREALSEG seg082 0x1163
0009:b389 PHAPI.DOSALLOCREALSEG seg082 0x1189
0009:b40b PHAPI.DOSALLOCLINMEM seg082 0x120b
0009:b47a PHAPI.DOSALLOCLINMEM seg082 0x127a
0009:b491 PHAPI.DOSFREELINMEM seg082 0x1291
0009:b4f6 PHAPI.DOSFREELINMEM seg082 0x12f6
0009:b577 PHAPI.DOSALLOCLINMEM seg082 0x1377
0009:b598 PHAPI.DOSALLOCLINMEM seg082 0x1398
0009:b662 PHAPI.DOSALLOCLINMEM seg082 0x1462
0009:b748 PHAPI.DOSALLOCLINMEM seg082 0x1548
0009:b7b3 PHAPI.DOSALLOCLINMEM seg082 0x15b3
0009:b7d1 PHAPI.DOSFREELINMEM seg082 0x15d1
0009:ba35 DOSCALLS.39 seg082 0x1835
0009:ba50 DOSCALLS.39 seg082 0x1850
0009:ba97 PHAPI.DOSFREELINMEM seg082 0x1897
0009:bb5f PHAPI.DOSGETBIOSSEG seg082 0x195f
0009:bb71 PHAPI.DOSMAPREALSEG seg082 0x1971
0009:bb96 PHAPI.DOSMAPREALSEG seg082 0x1996
0009:bbdc PHAPI.DOSMAPLINSEG seg082 0x19dc
0009:bc32 PHAPI.DOSMAPLINSEG seg082 0x1a32
0009:bc57 PHAPI.DOSMAPLINSEG seg082 0x1a57
0009:bcb1 DOSCALLS.7 seg082 0x1ab1
0009:bdee DOSCALLS.7 seg082 0x1bee
0009:c542 PHAPI.DOSMAPLINSEG seg083 0x0142
000a:5746 ASYLUM.56 seg093 0x0146
000a:57de ASYLUM.58 seg093 0x01de
000a:57ea ASYLUM.37 seg093 0x01ea
000a:57f4 ASYLUM.29 seg093 0x01f4
000a:5801 ASYLUM.49 seg093 0x0201
000a:5810 ASYLUM.47 seg093 0x0210
000a:5817 ASYLUM.46 seg093 0x0217
000a:583e ASYLUM.57 seg093 0x023e
000a:5ed0 ASYLUM.25 seg094 0x00d0
000a:5fde ASYLUM.27 seg094 0x01de
000a:6022 ASYLUM.27 seg094 0x0222
000a:60cd ASYLUM.27 seg094 0x02cd
000a:6113 ASYLUM.25 seg094 0x0313
000a:61fe ASYLUM.25 seg094 0x03fe
000a:62f6 ASYLUM.25 seg094 0x04f6
000a:636f ASYLUM.23 seg094 0x056f
000c:11fd ASYLUM.28 seg122 0x0ffd
000c:120e ASYLUM.36 seg122 0x100e
000c:1521 ASYLUM.45 seg122 0x1321
000c:158d ASYLUM.45 seg122 0x138d
000c:25c1 ASYLUM.47 seg122 0x23c1
000c:25c8 ASYLUM.46 seg122 0x23c8
000c:2621 ASYLUM.29 seg122 0x2421
000c:2671 ASYLUM.29 seg122 0x2471
000c:26b8 ASYLUM.37 seg122 0x24b8
000c:2708 ASYLUM.37 seg122 0x2508
000d:9b3a ASYLUM.25 seg138 0x093a
000d:b1cc ASYLUM.27 seg138 0x1fcc
000e:090c ASYLUM.18 seg142 0x210c
000e:0960 ASYLUM.27 seg142 0x2160
000e:2592 ASYLUM.25 seg142 0x3d92
000e:259c ASYLUM.19 seg142 0x3d9c
1 source_ghidra target source_seg source_off_in_seg
2 0003:761e PHAPI.DOSCREATEDSALIAS seg001 0x001e
3 0003:76b1 DOSCALLS.38 seg001 0x00b1
4 0003:76be DOSCALLS.38 seg001 0x00be
5 0003:7795 DOSCALLS.89 seg001 0x0195
6 0003:77ab DOSCALLS.89 seg001 0x01ab
7 0003:f46e DOSCALLS.39 seg001 0x7e6e
8 0003:f51d DOSCALLS.40 seg001 0x7f1d
9 0003:f539 DOSCALLS.41 seg001 0x7f39
10 0003:f561 DOSCALLS.40 seg001 0x7f61
11 0003:f59c DOSCALLS.42 seg001 0x7f9c
12 0003:f6c9 DOSCALLS.42 seg001 0x80c9
13 0003:f851 PHAPI.DOSMAPREALSEG seg001 0x8251
14 0003:f88d DOSCALLS.39 seg001 0x828d
15 0003:f896 DOSCALLS.39 seg001 0x8296
16 0003:f8b3 PHAPI.DOSMAPREALSEG seg001 0x82b3
17 0003:f943 DOSCALLS.127 seg001 0x8343
18 0004:17c6 ASYLUM.36 seg004 0x0dc6
19 0004:17dc ASYLUM.28 seg004 0x0ddc
20 0004:19cf ASYLUM.45 seg004 0x0fcf
21 0004:25a5 ASYLUM.24 seg005 0x07a5
22 0004:6f26 ASYLUM.36 seg011 0x0126
23 0004:6f2e ASYLUM.28 seg011 0x012e
24 0004:6f4d ASYLUM.37 seg011 0x014d
25 0004:6f57 ASYLUM.29 seg011 0x0157
26 0004:70a2 ASYLUM.37 seg011 0x02a2
27 0004:70ad ASYLUM.29 seg011 0x02ad
28 0004:7136 ASYLUM.36 seg011 0x0336
29 0004:713e ASYLUM.28 seg011 0x033e
30 0004:715d ASYLUM.37 seg011 0x035d
31 0004:7167 ASYLUM.29 seg011 0x0367
32 0004:72af ASYLUM.37 seg011 0x04af
33 0004:72ba ASYLUM.29 seg011 0x04ba
34 0006:eba2 ASYLUM.36 seg039 0x09a2
35 0006:ebb5 ASYLUM.37 seg039 0x09b5
36 0006:ebc0 ASYLUM.36 seg039 0x09c0
37 0006:ebd3 ASYLUM.37 seg039 0x09d3
38 0008:67ee PHAPI._DosRealFarCall seg058 0x03ee
39 0008:6a7f PHAPI.DOSALLOCREALSEG seg059 0x007f
40 0008:6aad PHAPI.DOSALLOCREALSEG seg059 0x00ad
41 0008:6ae8 PHAPI._DosRealIntr seg059 0x00e8
42 0008:6b2e PHAPI.DOSMAPREALSEG seg059 0x012e
43 0008:9797 PHAPI.BORISREALINTR seg059 0x2d97
44 0008:97ac PHAPI.BORISREALINTR seg059 0x2dac
45 0008:a06b PHAPI._DosRealFarCall seg059 0x366b
46 0008:ebb2 ASYLUM.34 seg064 0x01b2
47 0008:ebba ASYLUM.33 seg064 0x01ba
48 0008:ebff ASYLUM.31 seg064 0x01ff
49 0008:ec18 ASYLUM.30 seg064 0x0218
50 0008:ec3c ASYLUM.32 seg064 0x023c
51 0008:f208 PHAPI.DOSMAPLINSEG seg065 0x0208
52 0008:f233 PHAPI.DOSMAPLINSEG seg065 0x0233
53 0008:f2bf PHAPI.DOSMAPLINSEG seg065 0x02bf
54 0009:080f DOSCALLS.7 seg068 0x000f
55 0009:0867 PHAPI.DOSALLOCREALSEG seg068 0x0067
56 0009:0899 PHAPI.DOSALLOCREALSEG seg068 0x0099
57 0009:08eb PHAPI.DOSALLOCREALSEG seg068 0x00eb
58 0009:0bc2 DOSCALLS.39 seg068 0x03c2
59 0009:0bd4 DOSCALLS.7 seg068 0x03d4
60 0009:0d7a DOSCALLS.39 seg068 0x057a
61 0009:0d8c DOSCALLS.39 seg068 0x058c
62 0009:0df3 PHAPI.DOSSETPASSTOPROTVEC seg068 0x05f3
63 0009:0ea6 PHAPI.DOSSETREALPROTVEC seg068 0x06a6
64 0009:0f4f PHAPI.DOSSETPROTVEC seg068 0x074f
65 0009:b363 PHAPI.DOSALLOCREALSEG seg082 0x1163
66 0009:b389 PHAPI.DOSALLOCREALSEG seg082 0x1189
67 0009:b40b PHAPI.DOSALLOCLINMEM seg082 0x120b
68 0009:b47a PHAPI.DOSALLOCLINMEM seg082 0x127a
69 0009:b491 PHAPI.DOSFREELINMEM seg082 0x1291
70 0009:b4f6 PHAPI.DOSFREELINMEM seg082 0x12f6
71 0009:b577 PHAPI.DOSALLOCLINMEM seg082 0x1377
72 0009:b598 PHAPI.DOSALLOCLINMEM seg082 0x1398
73 0009:b662 PHAPI.DOSALLOCLINMEM seg082 0x1462
74 0009:b748 PHAPI.DOSALLOCLINMEM seg082 0x1548
75 0009:b7b3 PHAPI.DOSALLOCLINMEM seg082 0x15b3
76 0009:b7d1 PHAPI.DOSFREELINMEM seg082 0x15d1
77 0009:ba35 DOSCALLS.39 seg082 0x1835
78 0009:ba50 DOSCALLS.39 seg082 0x1850
79 0009:ba97 PHAPI.DOSFREELINMEM seg082 0x1897
80 0009:bb5f PHAPI.DOSGETBIOSSEG seg082 0x195f
81 0009:bb71 PHAPI.DOSMAPREALSEG seg082 0x1971
82 0009:bb96 PHAPI.DOSMAPREALSEG seg082 0x1996
83 0009:bbdc PHAPI.DOSMAPLINSEG seg082 0x19dc
84 0009:bc32 PHAPI.DOSMAPLINSEG seg082 0x1a32
85 0009:bc57 PHAPI.DOSMAPLINSEG seg082 0x1a57
86 0009:bcb1 DOSCALLS.7 seg082 0x1ab1
87 0009:bdee DOSCALLS.7 seg082 0x1bee
88 0009:c542 PHAPI.DOSMAPLINSEG seg083 0x0142
89 000a:5746 ASYLUM.56 seg093 0x0146
90 000a:57de ASYLUM.58 seg093 0x01de
91 000a:57ea ASYLUM.37 seg093 0x01ea
92 000a:57f4 ASYLUM.29 seg093 0x01f4
93 000a:5801 ASYLUM.49 seg093 0x0201
94 000a:5810 ASYLUM.47 seg093 0x0210
95 000a:5817 ASYLUM.46 seg093 0x0217
96 000a:583e ASYLUM.57 seg093 0x023e
97 000a:5ed0 ASYLUM.25 seg094 0x00d0
98 000a:5fde ASYLUM.27 seg094 0x01de
99 000a:6022 ASYLUM.27 seg094 0x0222
100 000a:60cd ASYLUM.27 seg094 0x02cd
101 000a:6113 ASYLUM.25 seg094 0x0313
102 000a:61fe ASYLUM.25 seg094 0x03fe
103 000a:62f6 ASYLUM.25 seg094 0x04f6
104 000a:636f ASYLUM.23 seg094 0x056f
105 000c:11fd ASYLUM.28 seg122 0x0ffd
106 000c:120e ASYLUM.36 seg122 0x100e
107 000c:1521 ASYLUM.45 seg122 0x1321
108 000c:158d ASYLUM.45 seg122 0x138d
109 000c:25c1 ASYLUM.47 seg122 0x23c1
110 000c:25c8 ASYLUM.46 seg122 0x23c8
111 000c:2621 ASYLUM.29 seg122 0x2421
112 000c:2671 ASYLUM.29 seg122 0x2471
113 000c:26b8 ASYLUM.37 seg122 0x24b8
114 000c:2708 ASYLUM.37 seg122 0x2508
115 000d:9b3a ASYLUM.25 seg138 0x093a
116 000d:b1cc ASYLUM.27 seg138 0x1fcc
117 000e:090c ASYLUM.18 seg142 0x210c
118 000e:0960 ASYLUM.27 seg142 0x2160
119 000e:2592 ASYLUM.25 seg142 0x3d92
120 000e:259c ASYLUM.19 seg142 0x3d9c