rizin/test/db/formats/le
2026-04-25 12:59:03 +08:00

563 lines
12 KiB
Text

NAME=Open LE cdogs.exe
FILE=bins/le/cdogs.exe
CMDS=<<EOF
iH
echo ---
ie:vaddr:quiet
echo ---
iS
echo ---
ir > $relocs
cat $relocs~?
cat $relocs~0x00010~?
cat $relocs~0x00011~?
cat $relocs~0x00012~?
cat $relocs~0x00013~?
cat $relocs~0x00014~?
cat $relocs~0x00015~?
cat $relocs~0x00016~?
cat $relocs~0x00017~?
cat $relocs~0x00018~?
cat $relocs~0x00019~?
cat $relocs~0x0001a~?
cat $relocs~0x0001b~?
cat $relocs~0x0001c~?
cat $relocs~0x0001d~?
cat $relocs~0x0001e~?
cat $relocs~0x0001f~?
cat $relocs~0x00020~?
cat $relocs~0x00021~?
cat $relocs~0x00022~?
cat $relocs~0x00023~?
cat $relocs~0x00024~?
cat $relocs~0x00025~?
cat $relocs~0x00026~?
cat $relocs~0x00027~?
cat $relocs~0x00028~?
cat $relocs~0x00029~?
cat $relocs~0x0002a~?
cat $relocs~0x0002b~?
cat $relocs~0x0002c~?
cat $relocs~0x0002d~?
cat $relocs~0x0002e~?
cat $relocs~0x0002f~?
cat $relocs~0x00030~?
cat $relocs~0x00031~?
cat $relocs~0x00032~?
cat $relocs~0x00033~?
cat $relocs~0x00034~?
cat $relocs~0x00035~?
cat $relocs~0x00036~?
cat $relocs~0x00037~?
cat $relocs~0x00038~?
cat $relocs~0x00039~?
cat $relocs~0x0003a~?
cat $relocs~0x0003b~?
cat $relocs~0x0003c~?
cat $relocs~0x0003d~?
cat $relocs~0x0003e~?
cat $relocs~0x0003f~?
cat $relocs~0x00040~?
cat $relocs~0x00041~?
cat $relocs~0x00042~?
cat $relocs~0x00043~?
cat $relocs~0x00044~?
cat $relocs~0x00045~?
cat $relocs~0x00046~?
cat $relocs~0x00047~?
cat $relocs~0x00048~?
cat $relocs~0x00049~?
cat $relocs~0x0004a~?
cat $relocs~0x0004b~?
cat $relocs~0x0004c~?
cat $relocs~0x0004d~?
cat $relocs~0x0004e~?
cat $relocs~0x0004f~?
echo ---
aac
# aaef
aflc
echo ---
s
echo ---
pi 1
EOF
EXPECT=<<EOF
le:
signature: "LE"
le_offset: 0x2d98
byte_order: "little endian"
word_order: "little endian"
format_level: 0
module_name: "cdogs"
type: "Program module (EXE)"
cpu: "80386"
os: "OS/2"
arch: "x86"
version: 0
mflags: 0x200
flags:
- "PMWINAPI"
- "EXE"
mpages: 61
initial_eip_obj: 1
initial_eip: 0x16058
initial_stack_obj: 2
initial_esp: 0x26030
page_size: 0x1000
last_page_size: 0xd8c
fixup_size: 0xa14a
fixup_checksum: 0x0
loader_size: 0xa278
loader_checksum: 0x0
obj_table: 0xc4
obj_count: 2
obj_page_map: 0xf4
obj_iter_data_map: 0x0
resource_table: 0x1e8
resource_count: 0
resident_name_table: 0x1e8
entry_table: 0x1f1
directives_table: 0x0
directives_count: 0
fixup_page_table: 0x1f2
fixup_record_table: 0x2ea
import_module_name_table: 0xa33b
import_module_name_count: 0
import_procedure_name_table: 0xa33b
per_page_checksum_table: 0x0
enumerated_data_pages: 0xd200
number_of_preload_pages: 0
non_resident_names_table: 0x0
size_non_resident_names: 0
checksum_non_resident_names: 0x0
autodata_obj: 2
debug_info: 0x0
debug_length: 0x0
preload_pages: 0
demand_pages: 0
heap_size: 0x0
stack_size: 0x0
---
0x00026058
---
paddr size vaddr vsize align perm name type flags
-------------------------------------------------------------------
0x0000d200 0x2d000 0x00010000 0x2d000 0x0 -r-x obj1_1
0x0003a200 0xfd8c 0x00040000 0x26030 0x0 -rw- obj2_1
---
5237
151
160
102
133
208
172
337
212
143
325
262
174
219
305
296
330
260
322
409
186
415
502
181
307
380
113
85
240
124
198
179
186
222
159
110
318
274
24
366
356
179
103
128
157
128
8
0
0
282
533
670
17
2
0
0
95
81
45
6
0
0
381
561
588
---
789
---
0x26058
---
jmp 0x260d0
EOF
RUN
NAME=Open LX GCC.EXE
FILE=bins/le/GCC.EXE
CMDS=<<EOF
iH
echo ---
ie:vaddr:quiet
echo ---
iS
echo ---
ir
echo ---
il
EOF
EXPECT=<<EOF
le:
signature: "LX"
le_offset: 0x600
byte_order: "little endian"
word_order: "little endian"
format_level: 0
module_name: "gcc"
type: "Program module (EXE)"
cpu: "80386"
os: "OS/2"
arch: "x86"
version: 0
mflags: 0x210
flags:
- "NOINTFIXUPS"
- "PMWINAPI"
- "EXE"
mpages: 16
initial_eip_obj: 1
initial_eip: 0x0
initial_stack_obj: 4
initial_esp: 0x800000
page_size: 0x1000
page_shift: 0xc
fixup_size: 0x9b
fixup_checksum: 0x0
loader_size: 0xe8
loader_checksum: 0x0
obj_table: 0xc4
obj_count: 4
obj_page_map: 0x124
obj_iter_data_map: 0x0
resource_table: 0x0
resource_count: 0
resident_name_table: 0x1a4
entry_table: 0x1ab
directives_table: 0x0
directives_count: 0
fixup_page_table: 0x1ac
fixup_record_table: 0x1f0
import_module_name_table: 0x239
import_module_name_count: 2
import_procedure_name_table: 0x246
per_page_checksum_table: 0x0
enumerated_data_pages: 0x1000
number_of_preload_pages: 0
non_resident_names_table: 0x0
size_non_resident_names: 0
checksum_non_resident_names: 0x0
autodata_obj: 2
debug_info: 0x0
debug_length: 0x0
preload_pages: 0
demand_pages: 1
heap_size: 0x0
stack_size: 0x0
---
0x00010000
---
paddr size vaddr vsize align perm name type flags
--------------------------------------------------------------------
0x00001000 0xf000 0x00010000 0xf000 0x0 -r-x obj1_1
0x00010000 0x1000 0x00020000 0x2804 0x0 -rw- obj2_1
0x00000000 0x0 0x00030000 0x2000000 0x0 -rw- obj3_1
0x00000000 0x0 0x02030000 0x800000 0x0 -rw- obj4_1
---
vaddr paddr target type name
-----------------------------------------------------
0x00010006 0x00001006 0x02832000 SET_32 emx_1
0x0001000d 0x0000100d 0x02832004 SET_32 emx_2
0x0001d210 0x0000e210 0x02832008 SET_32 doscalls_273
0x0001d234 0x0000e234 0x0283200c SET_32 doscalls_253
0x0001d266 0x0000e266 0x02832010 SET_32 doscalls_283
0x0001d282 0x0000e282 0x02832014 SET_32 doscalls_229
0x0001d2f2 0x0000e2f2 0x02832018 SET_32 doscalls_257
0x0001d389 0x0000e389 0x0283201c SET_32 doscalls_282
0x0001d39f 0x0000e39f 0x02832018 SET_32 doscalls_257
0x0001d3d9 0x0000e3d9 0x02832020 SET_32 doscalls_281
0x0001d3f4 0x0000e3f4 0x02832018 SET_32 doscalls_257
---
library
---------
emx
doscalls
EOF
RUN
NAME=Open LX GNUGREP.DLL
FILE=bins/le/GNUGREP.DLL
CMDS=<<EOF
iH
echo ---
ie:vaddr:quiet
echo ---
is
echo ---
iS
echo ---
il
echo ---
ir > $relocs
cat $relocs~?
cat $relocs~GNUREGEX~?
cat $relocs~EMXLIBC~?
cat $relocs~emx~?
EOF
EXPECT=<<EOF
le:
signature: "LX"
le_offset: 0x80
byte_order: "little endian"
word_order: "little endian"
format_level: 0
module_name: "GNUGREP"
type: "Library module (DLL)"
cpu: "80386"
os: "OS/2"
arch: "x86"
version: 131073
mflags: 0x8002
flags:
- "DLL"
mpages: 11
initial_eip_obj: 1
initial_eip: 0x0
initial_stack_obj: 0
initial_esp: 0x0
page_size: 0x1000
page_shift: 0x9
fixup_size: 0x10be
fixup_checksum: 0x0
loader_size: 0xcd
loader_checksum: 0x0
obj_table: 0xc4
obj_count: 4
obj_page_map: 0x124
obj_iter_data_map: 0x0
resource_table: 0x0
resource_count: 0
resident_name_table: 0x17c
entry_table: 0x187
directives_table: 0x0
directives_count: 0
fixup_page_table: 0x191
fixup_record_table: 0x1c1
import_module_name_table: 0x123a
import_module_name_count: 3
import_procedure_name_table: 0x124f
per_page_checksum_table: 0x0
enumerated_data_pages: 0x1400
number_of_preload_pages: 0
non_resident_names_table: 0x9800
size_non_resident_names: 38
checksum_non_resident_names: 0x0
autodata_obj: 4
debug_info: 0x0
debug_length: 0x0
preload_pages: 0
demand_pages: 1
heap_size: 0x0
stack_size: 0x0
---
0x00010000
0x00010ddc
---
nth paddr vaddr bind type size lib name
---------------------------------------------------------------
1 0x000023dc 0x00010ddc GLOBAL UNK 0 grepmain
2 0x00000000 0x00043000 GLOBAL UNK 0 imp.EMXLIBC_513
3 0x00000000 0x00043004 GLOBAL UNK 0 imp.emx_2
4 0x00000000 0x00043008 GLOBAL UNK 0 imp.EMXLIBC_770
5 0x00000000 0x0004300c GLOBAL UNK 0 imp.EMXLIBC_712
6 0x00000000 0x00043010 GLOBAL UNK 0 imp.EMXLIBC_521
7 0x00000000 0x00043014 GLOBAL UNK 0 imp.EMXLIBC_205
8 0x00000000 0x00043018 GLOBAL UNK 0 imp.EMXLIBC_402
9 0x00000000 0x0004301c GLOBAL UNK 0 imp.EMXLIBC_595
10 0x00000000 0x00043020 GLOBAL UNK 0 imp.EMXLIBC_403
11 0x00000000 0x00043024 GLOBAL UNK 0 imp.EMXLIBC_534
12 0x00000000 0x00043028 GLOBAL UNK 0 imp.EMXLIBC_214
13 0x00000000 0x0004302c GLOBAL UNK 0 imp.EMXLIBC_218
14 0x00000000 0x00043030 GLOBAL UNK 0 imp.EMXLIBC_219
15 0x00000000 0x00043034 GLOBAL UNK 0 imp.EMXLIBC_221
16 0x00000000 0x00043038 GLOBAL UNK 0 imp.EMXLIBC_545
17 0x00000000 0x0004303c GLOBAL UNK 0 imp.EMXLIBC_801
18 0x00000000 0x00043040 GLOBAL UNK 0 imp.EMXLIBC_546
19 0x00000000 0x00043044 GLOBAL UNK 0 imp.EMXLIBC_548
20 0x00000000 0x00043048 GLOBAL UNK 0 imp.EMXLIBC_228
21 0x00000000 0x0004304c GLOBAL UNK 0 imp.EMXLIBC_557
22 0x00000000 0x00043050 GLOBAL UNK 0 imp.EMXLIBC_817
23 0x00000000 0x00043054 GLOBAL UNK 0 imp.EMXLIBC_705
24 0x00000000 0x00043058 GLOBAL UNK 0 imp.EMXLIBC_520
25 0x00000000 0x0004305c GLOBAL UNK 0 imp.EMXLIBC_716
26 0x00000000 0x00043060 GLOBAL UNK 0 imp.EMXLIBC_525
27 0x00000000 0x00043064 GLOBAL UNK 0 imp.EMXLIBC_400
28 0x00000000 0x00043068 GLOBAL UNK 0 imp.EMXLIBC_215
29 0x00000000 0x0004306c GLOBAL UNK 0 imp.EMXLIBC_541
30 0x00000000 0x00043070 GLOBAL UNK 0 imp.EMXLIBC_223
31 0x00000000 0x00043074 GLOBAL UNK 0 imp.EMXLIBC_504
32 0x00000000 0x00043078 GLOBAL UNK 0 imp.EMXLIBC_700
33 0x00000000 0x0004307c GLOBAL UNK 0 imp.EMXLIBC_509
34 0x00000000 0x00043080 GLOBAL UNK 0 imp.EMXLIBC_761
35 0x00000000 0x00043084 GLOBAL UNK 0 imp.EMXLIBC_315
36 0x00000000 0x00043088 GLOBAL UNK 0 imp.EMXLIBC_401
37 0x00000000 0x0004308c GLOBAL UNK 0 imp.EMXLIBC_213
38 0x00000000 0x00043090 GLOBAL UNK 0 imp.GNUREGEX_4
39 0x00000000 0x00043094 GLOBAL UNK 0 imp.GNUREGEX_6
40 0x00000000 0x00043098 GLOBAL UNK 0 imp.GNUREGEX_9
41 0x00000000 0x0004309c GLOBAL UNK 0 imp.GNUREGEX_12
42 0x00000000 0x000430a0 GLOBAL UNK 0 imp.EMXLIBC_207
---
paddr size vaddr vsize align perm name type flags
-----------------------------------------------------------------
0x00001600 0x7e00 0x00010000 0x8000 0x0 -r-x obj1_1
0x00009400 0x200 0x00020000 0x1000 0x0 -r-x obj2_1
0x00009600 0x200 0x00030000 0x1000 0x0 -r-x obj3_1
0x00001400 0x200 0x00040000 0x1000 0x0 -rw- obj4_1
---
library
---------
GNUREGEX
EMXLIBC
emx
---
1168
8
183
184
EOF
RUN
NAME=DOSEXT.EXE open extender binary
FILE=bins/le/DOSEXT.EXE
BROKEN=1
CMDS=iH
EXPECT=<<EOF
le:
signature: "LE"
le_offset: 0x3803c
mz_offset: 0x352a4
byte_order: "little endian"
word_order: "little endian"
format_level: 0
module_name: "hello"
type: "Program module (EXE)"
cpu: "80386"
os: "OS/2"
arch: "x86"
version: 0
mflags: 0x200
flags:
- "PMWINAPI"
- "EXE"
mpages: 7
initial_eip_obj: 1
initial_eip: 0xc4
initial_stack_obj: 2
initial_esp: 0x1f30
page_size: 0x1000
last_page_size: 0x96e
fixup_size: 0xfbe
fixup_checksum: 0x0
loader_size: 0x56
loader_checksum: 0x0
obj_table: 0xc4
obj_count: 2
obj_page_map: 0xf4
obj_iter_data_map: 0x0
resource_table: 0x110
resource_count: 0
resident_name_table: 0x110
entry_table: 0x119
directives_table: 0x0
directives_count: 0
fixup_page_table: 0x11a
fixup_record_table: 0x13a
import_module_name_table: 0x10d7
import_module_name_count: 0
import_procedure_name_table: 0x10d7
per_page_checksum_table: 0x0
enumerated_data_pages: 0x4000
number_of_preload_pages: 0
non_resident_names_table: 0x0
size_non_resident_names: 0
checksum_non_resident_names: 0x0
autodata_obj: 2
debug_info: 0x0
debug_length: 0x0
preload_pages: 0
demand_pages: 0
heap_size: 0x0
stack_size: 0x1000
EOF
RUN
NAME=hellolx.dll unpack iterated page
FILE=bins/le/hellolx.dll
CMDS=p8 12 @ 0x20004
EXPECT=<<EOF
68656c6c6f206c7820646c6c
EOF
RUN
NAME=sdl.dll
FILE=bins/le/sdl.dll
CMDS=<<EOF
p8 8 @ 0x20000
echo ---
p8 6 @ 0x1000B
echo ---
p8 4 @ 0x202bd
echo ---
p8 4 @ 0x20b32
EOF
EXPECT=<<EOF
ccebfd9090909000
---
595005000200
---
3fad0500
---
69010600
EOF
RUN