* Improve detection of various bin info. * Add support of securitycookie from image_load_config_directory * Add support for PAC * Add support for Apple Enhanced Memory Tagging Extension (EMTE)
206 lines
7.2 KiB
Text
206 lines
7.2 KiB
Text
NAME=RL78 caesar_nostrip info
|
|
FILE=bins/rl78/caesar_nostrip
|
|
ARGS=
|
|
CMDS=<<EOF
|
|
pd 4 @ entry0
|
|
iI
|
|
EOF
|
|
EXPECT=<<EOF
|
|
;-- entry0:
|
|
;-- _start:
|
|
0x0000077c movw spl, #0xfedc
|
|
0x00000780 mov es, #0x0
|
|
0x00000782 movw bc, #loc.__romdatacopysize
|
|
0x00000785 clrw ax
|
|
arch rl78
|
|
cpu N/A
|
|
features N/A
|
|
baddr 0x00000000
|
|
binsz 0x00008360
|
|
bintype elf
|
|
bits 32
|
|
class ELF32
|
|
compiler Linker: LLD 10.0.0 clang version LLVM for Renesas RL78 10.0.0.202306
|
|
dbg_file N/A
|
|
endian LE
|
|
hdr.csum N/A
|
|
guid N/A
|
|
intrp N/A
|
|
laddr 0x00000000
|
|
lang c
|
|
machine Renesas RL78 family
|
|
maxopsz 5
|
|
minopsz 1
|
|
os linux
|
|
cc N/A
|
|
pcalign 1
|
|
rpath NONE
|
|
subsys linux
|
|
stripped false
|
|
havecode true
|
|
va true
|
|
static true
|
|
linenum true
|
|
lsyms true
|
|
canary false
|
|
pie false
|
|
relrocs true
|
|
nx true
|
|
EOF
|
|
RUN
|
|
|
|
NAME=RL78 caesar_nostrip function bodies
|
|
FILE=bins/rl78/caesar_nostrip
|
|
ARGS=
|
|
CMDS=<<EOF
|
|
aaa
|
|
pdf @ sym._decrypt
|
|
pdf @ sym._make_uppercase
|
|
pdf @ sym._hash
|
|
pdf @ sym._main
|
|
EOF
|
|
EXPECT=<<EOF
|
|
;-- section..text:
|
|
;-- segment.LOAD4:
|
|
;-- _decrypt:
|
|
/ int decrypt(char *decrypted, const char *encrypted, size_t n)
|
|
| ; arg char *decrypted @ ...
|
|
| ; arg const char *encrypted @ ...
|
|
| ; arg size_t n @ ...
|
|
| 0x00000552 subw sp, #0x12 ; caesar.c:15 ; [06] -r-x section size 4316 named .text
|
|
| 0x00000554 movw [sp+0x0], ax
|
|
| 0x00000556 movw ax, bc
|
|
| 0x00000557 movw [sp+0x2], ax
|
|
| 0x00000559 movw ax, de
|
|
| 0x0000055a movw [sp+0x4], ax
|
|
| 0x0000055c clrw ax
|
|
| 0x0000055d movw [sp+0x6], ax ; caesar.c:16
|
|
\ @-> 0x0000055f br $0x0
|
|
;-- _make_uppercase:
|
|
/ void make_uppercase(char *buf, size_t n)
|
|
| ; arg char *buf @ ...
|
|
| ; arg size_t n @ ...
|
|
| 0x000005a3 subw sp, #0x18 ; caesar.c:24
|
|
| 0x000005a5 movw [sp+0x0], ax
|
|
| 0x000005a7 movw ax, bc
|
|
| 0x000005a8 movw [sp+0x2], ax
|
|
| 0x000005aa clrw ax
|
|
| 0x000005ab movw [sp+0x4], ax ; caesar.c:25
|
|
\ @-> 0x000005ad br $0x0
|
|
; CALL XREFS from sym._main @ +0x8f, +0x9d
|
|
;-- _hash:
|
|
/ int hash(const char *buf, size_t n)
|
|
| ; arg const char *buf @ ...
|
|
| ; arg size_t n @ ...
|
|
| ; var int sum @ ...
|
|
| 0x00000634 subw sp, #0x1e ; caesar.c:33
|
|
| 0x00000636 movw [sp+0x4], ax
|
|
| 0x00000638 movw ax, bc
|
|
| 0x00000639 movw [sp+0x6], ax
|
|
| 0x0000063b clrw ax
|
|
| 0x0000063c movw [sp+0xc], ax ; caesar.c:34
|
|
| 0x0000063e movw [sp+0x8], ax
|
|
| 0x00000640 movw ax, [sp+0xc] ; caesar.c:35
|
|
| 0x00000642 movw [sp+0xa], ax
|
|
\ @-> 0x00000644 br $0x0
|
|
; CALL XREF from entry0 @ 0x7f8
|
|
;-- _main:
|
|
/ int main(int argc, char **argv)
|
|
| ; arg int argc @ ...
|
|
| ; arg char **argv @ ...
|
|
| ; var const struct operations ops @ ...
|
|
| ; var size_t len @ ...
|
|
| ; var char *decrypted @ ...
|
|
| ; var char *uppercase @ ...
|
|
| ; var const char *pw @ ...
|
|
| ; var size_t pwlen @ ...
|
|
| 0x000006b3 subw sp, #0x26 ; caesar.c:43
|
|
| 0x000006b5 movw de, #0x0
|
|
| 0x000006b8 movw [sp+0x14], ax
|
|
| 0x000006ba movw ax, de
|
|
| 0x000006bb movw [sp+0x0], ax
|
|
| 0x000006bd movw ax, [sp+0x14]
|
|
| 0x000006bf movw [sp+0x2], ax
|
|
| 0x000006c1 movw ax, bc
|
|
| 0x000006c2 movw [sp+0x4], ax
|
|
| 0x000006c4 movw ax, !0x3004 ; caesar.c:44
|
|
| 0x000006c7 movw [sp+0x8], ax
|
|
| 0x000006c9 movw ax, !obj.L___const.main.ops
|
|
| 0x000006cc movw [sp+0x6], ax
|
|
| 0x000006ce movw ax, !0x5700 ; caesar.c:49
|
|
| 0x000006d1 call !sym._strlen ; size_t strlen(const char *s)
|
|
| 0x000006d4 movw [sp+0xa], ax
|
|
| 0x000006d6 movw ax, [sp+0xa] ; caesar.c:50
|
|
| 0x000006d8 cmpw ax, #0x41
|
|
| ,=< 0x000006db bc $0x8
|
|
| @=-> 0x000006dd br $0x0
|
|
..
|
|
| |`-> 0x000006e3 dec c
|
|
| | 0x000006e4 nop
|
|
| | 0x000006e5 movw ax, [sp+0xa] ; caesar.c:54
|
|
| | 0x000006e7 call !sym._malloc ; void *malloc(size_t size)
|
|
| | 0x000006ea movw [sp+0xc], ax
|
|
| | 0x000006ec movw ax, [sp+0x6] ; caesar.c:55
|
|
| | 0x000006ee movw [sp+0x16], ax
|
|
| | 0x000006f0 movw ax, [sp+0xc]
|
|
| | 0x000006f2 movw bc, !0x5700
|
|
| | 0x000006f5 movw [sp+0x18], ax
|
|
| | 0x000006f7 movw ax, [sp+0xa]
|
|
| | 0x000006f9 movw de, ax
|
|
| | 0x000006fa movw ax, [sp+0x18]
|
|
| | 0x000006fc xchw ax, hl
|
|
| | 0x000006fd movw ax, [sp+0x16]
|
|
| | 0x000006ff xchw ax, hl
|
|
| | 0x00000700 call hl
|
|
| | 0x00000702 cmpw ax, #0x0
|
|
| |,=< 0x00000705 bnz $0xc
|
|
| @==-> 0x00000707 br $0x0
|
|
..
|
|
| ,=`-> 0x00000711 br $0x64
|
|
..
|
|
| || @ ; CODE XREF from dbg.main @ 0x711
|
|
| || @ ; CODE XREF from sym._main @ +0xb3
|
|
\ ``-@-> 0x00000775 br $0x0
|
|
EOF
|
|
RUN
|
|
|
|
NAME=RL78 caesar_nostrip function list
|
|
FILE=bins/rl78/caesar_nostrip
|
|
ARGS=
|
|
CMDS=<<EOF
|
|
aaa
|
|
afl
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x00000552 2 15 dbg.decrypt
|
|
0x000005a3 2 12 dbg.make_uppercase
|
|
0x00000634 2 18 dbg.hash
|
|
0x000006b3 6 196 -> 86 dbg.main
|
|
0x0000077c 60 1024 -> 464 entry0
|
|
0x00000800 1 11 sym._rl78_run_preinit_array
|
|
0x0000080b 1 11 sym._rl78_run_init_array
|
|
0x00000816 7 39 sym._rl78_run_fini_array
|
|
0x0000083e 1 8 sym._memcpy
|
|
0x0000084e 2 11 sym._strlen
|
|
0x0000086e 5 25 loc.__COM_lshl
|
|
0x00000896 1 8 loc.__COM_slrem
|
|
0x000008de 2 11 sym.___do_init
|
|
0x0000093a 8 81 -> 83 sym.___do_fini
|
|
0x000009ab 3 26 sym._exit
|
|
0x000009c5 1 24 sym.___call_exitprocs
|
|
0x00000b16 8 345 -> 80 sym.__exit
|
|
0x00000b18 1 7 sym._malloc
|
|
0x00000b1f 1 7 sym._free
|
|
0x00000b26 1 11 sym.__free_r
|
|
0x00000d9e 3 49 sym.__malloc_trim_r
|
|
0x00000e5e 1 20 sym.__malloc_r
|
|
0x000013d7 7 90 -> 91 sym._malloc_extend_top
|
|
0x000015bd 1 1 sym.___malloc_lock
|
|
0x000015be 1 1 sym.___malloc_unlock
|
|
0x000015bf 4 34 sym.__sbrk_r
|
|
0x000015e1 3 26 -> 28 sym._sbrk
|
|
0x000015fb 1 7 sym._strdup
|
|
0x00001602 3 44 sym.__strdup_r
|
|
0x0000162e 1 13 loc.__rl78_init
|
|
EOF
|
|
RUN
|