Skip to content

Commit

Permalink
Add support for the XTAC file format ##bin
Browse files Browse the repository at this point in the history
  • Loading branch information
kohnakagawa committed Feb 15, 2023
1 parent df15299 commit 6c3e3d4
Show file tree
Hide file tree
Showing 7 changed files with 129 additions and 1 deletion.
1 change: 1 addition & 0 deletions dist/plugins-cfg/plugins.def.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ bin.xcoff64
bin.xnu_kernelcache
bin.z64
bin.zimg
bin.xtac
bin_ldr.ldr_linux
bin_xtr.xtr_dyldcache
bin_xtr.xtr_fatmach0
Expand Down
1 change: 1 addition & 0 deletions libr/bin/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ r_bin_sources = [
'p/bin_xtr_xalz.c',
'p/bin_z64.c',
'p/bin_zimg.c',
'p/bin_xtac.c',
# implementation
'format/bflt/bflt.c',
'format/coff/coff.c',
Expand Down
1 change: 1 addition & 0 deletions libr/bin/p/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ FORMATS+=dex.mk fs.mk ningb.mk coff.mk xcoff64.mk ningba.mk xbe.mk zimg.mk
FORMATS+=omf.mk cgc.mk dol.mk rel.mk nes.mk mbn.mk psxexe.mk
FORMATS+=vsf.mk nin3ds.mk bflt.mk wasm.mk sfc.mk
FORMATS+=mdmp.mk z64.mk qnx.mk prg.mk dmp64.mk
FORMATS+=xtac.mk

FORMATS+=xtr_dyldcache.mk
FORMATS+=xtr_fatmach0.mk
Expand Down
1 change: 1 addition & 0 deletions libr/include/r_bin.h
Original file line number Diff line number Diff line change
Expand Up @@ -906,6 +906,7 @@ extern RBinPlugin r_bin_plugin_lua;
extern RBinPlugin r_bin_plugin_hunk;
extern RBinPlugin r_bin_plugin_xalz;
extern RBinPlugin r_bin_plugin_lua;
extern RBinPlugin r_bin_plugin_xtac;

#ifdef __cplusplus
}
Expand Down
3 changes: 2 additions & 1 deletion libr/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,8 @@ bin_plugins += [
'xcoff64',
'xnu_kernelcache',
'z64',
'zimg'
'zimg',
'xtac'
]

bin_ldr_plugins += [
Expand Down
1 change: 1 addition & 0 deletions test/db/anal/v850
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@ EXPECT=<<EOF
0x0011078e 6 152 fcn.0011078e
0x001112e6 1 18 sym.__strtod_r
0x0010fe46 27 548 sym.__strtod_l
0x0010fda0 9 68 sym._strncmp
0x001112f8 1 24 sym._strtod_l
0x00111310 1 28 sym._strtod
0x0011132c 10 222 sym._strtof_l
Expand Down
122 changes: 122 additions & 0 deletions test/db/formats/xtac
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
NAME=xtac test
FILE=bins/xta/user32.xta.jc
CMDS=<<EOF
ie
?e --
iS
?e --
is
EOF
EXPECT=<<EOF
[Entrypoints]

0 entrypoints
--
[Sections]

nth paddr size vaddr vsize perm type name
------------------------------------------------------
0 0x00000000 0x0 0x00000000 0x50 -r-- ---- header
1 0x00000060 0x0 0x00000060 0xa4b8 -r-x ---- blck_code_0
2 0x0000a518 0x0 0x0000a518 0x1518 -r-x ---- trans_code_0

--
[Symbols]

nth paddr vaddr bind type size lib name
-------------------------------------------------
0 0x0000a518 0x0000a518 NONE FUNC 0 x86.000011df
1 0x0000a550 0x0000a550 NONE FUNC 0 x86.0000130f
2 0x0000a588 0x0000a588 NONE FUNC 0 x86.0000131f
3 0x0000a5c0 0x0000a5c0 NONE FUNC 0 x86.0000183f
4 0x0000a5f8 0x0000a5f8 NONE FUNC 0 x86.00001c7f
5 0x0000a630 0x0000a630 NONE FUNC 0 x86.000021ef
6 0x0000a668 0x0000a668 NONE FUNC 0 x86.000022ef
7 0x0000a6a0 0x0000a6a0 NONE FUNC 0 x86.000024af
8 0x0000a6d8 0x0000a6d8 NONE FUNC 0 x86.0000256f
9 0x0000a710 0x0000a710 NONE FUNC 0 x86.0000257f
10 0x0000a748 0x0000a748 NONE FUNC 0 x86.0000259f
11 0x0000a780 0x0000a780 NONE FUNC 0 x86.000025bf
12 0x0000a7b8 0x0000a7b8 NONE FUNC 0 x86.000026df
13 0x0000a7f0 0x0000a7f0 NONE FUNC 0 x86.000026ef
14 0x0000a828 0x0000a828 NONE FUNC 0 x86.0000281f
15 0x0000a860 0x0000a860 NONE FUNC 0 x86.0000285f
16 0x0000a898 0x0000a898 NONE FUNC 0 x86.0000287f
17 0x0000a8d0 0x0000a8d0 NONE FUNC 0 x86.0000292f
18 0x0000a908 0x0000a908 NONE FUNC 0 x86.000029cf
19 0x0000a940 0x0000a940 NONE FUNC 0 x86.00002a0f
20 0x0000a978 0x0000a978 NONE FUNC 0 x86.00002e7f
21 0x0000a9b0 0x0000a9b0 NONE FUNC 0 x86.00002e8f
22 0x0000a9e8 0x0000a9e8 NONE FUNC 0 x86.00002ebf
23 0x0000aa20 0x0000aa20 NONE FUNC 0 x86.00002ecf
24 0x0000aa58 0x0000aa58 NONE FUNC 0 x86.0000304f
25 0x0000aa90 0x0000aa90 NONE FUNC 0 x86.0000305f
26 0x0000aac8 0x0000aac8 NONE FUNC 0 x86.0000309f
27 0x0000ab00 0x0000ab00 NONE FUNC 0 x86.000030cf
28 0x0000ab38 0x0000ab38 NONE FUNC 0 x86.0000317f
29 0x0000ab70 0x0000ab70 NONE FUNC 0 x86.000031af
30 0x0000aba8 0x0000aba8 NONE FUNC 0 x86.000031bf
31 0x0000abe0 0x0000abe0 NONE FUNC 0 x86.000031cf
32 0x0000ac18 0x0000ac18 NONE FUNC 0 x86.0000325f
33 0x0000ac50 0x0000ac50 NONE FUNC 0 x86.0000327f
34 0x0000ac88 0x0000ac88 NONE FUNC 0 x86.000032ef
35 0x0000acc0 0x0000acc0 NONE FUNC 0 x86.0000330f
36 0x0000acf8 0x0000acf8 NONE FUNC 0 x86.0000336f
37 0x0000ad30 0x0000ad30 NONE FUNC 0 x86.000034af
38 0x0000ad68 0x0000ad68 NONE FUNC 0 x86.000034bf
39 0x0000ada0 0x0000ada0 NONE FUNC 0 x86.000034ff
40 0x0000add8 0x0000add8 NONE FUNC 0 x86.000036cf
41 0x0000ae10 0x0000ae10 NONE FUNC 0 x86.0000380f
42 0x0000ae48 0x0000ae48 NONE FUNC 0 x86.0000382f
43 0x0000ae80 0x0000ae80 NONE FUNC 0 x86.0000388f
44 0x0000aeb8 0x0000aeb8 NONE FUNC 0 x86.000038af
45 0x0000aef0 0x0000aef0 NONE FUNC 0 x86.000038cf
46 0x0000af28 0x0000af28 NONE FUNC 0 x86.000038ff
47 0x0000af60 0x0000af60 NONE FUNC 0 x86.0000392f
48 0x0000af98 0x0000af98 NONE FUNC 0 x86.0000395f
49 0x0000afd0 0x0000afd0 NONE FUNC 0 x86.0000399f
50 0x0000b008 0x0000b008 NONE FUNC 0 x86.000039ff
51 0x0000b040 0x0000b040 NONE FUNC 0 x86.00003a0f
52 0x0000b078 0x0000b078 NONE FUNC 0 x86.00003a2f
53 0x0000b0b0 0x0000b0b0 NONE FUNC 0 x86.00003a4f
54 0x0000b0e8 0x0000b0e8 NONE FUNC 0 x86.00003a5f
55 0x0000b120 0x0000b120 NONE FUNC 0 x86.00003aef
56 0x0000b158 0x0000b158 NONE FUNC 0 x86.00003b0f
57 0x0000b190 0x0000b190 NONE FUNC 0 x86.00003d5f
58 0x0000b1c8 0x0000b1c8 NONE FUNC 0 x86.00003daf
59 0x0000b200 0x0000b200 NONE FUNC 0 x86.00003ecf
60 0x0000b238 0x0000b238 NONE FUNC 0 x86.00003f2f
61 0x0000b270 0x0000b270 NONE FUNC 0 x86.0000401f
62 0x0000b2a8 0x0000b2a8 NONE FUNC 0 x86.0000413f
63 0x0000b2e0 0x0000b2e0 NONE FUNC 0 x86.0000432f
64 0x0000b318 0x0000b318 NONE FUNC 0 x86.000043af
65 0x0000b350 0x0000b350 NONE FUNC 0 x86.000043bf
66 0x0000b388 0x0000b388 NONE FUNC 0 x86.000045cf
67 0x0000b3c0 0x0000b3c0 NONE FUNC 0 x86.000045ef
68 0x0000b3f8 0x0000b3f8 NONE FUNC 0 x86.0000464f
69 0x0000b430 0x0000b430 NONE FUNC 0 x86.000046cf
70 0x0000b468 0x0000b468 NONE FUNC 0 x86.000047cf
71 0x0000b4a0 0x0000b4a0 NONE FUNC 0 x86.000047ef
72 0x0000b4d8 0x0000b4d8 NONE FUNC 0 x86.000047ff
73 0x0000b510 0x0000b510 NONE FUNC 0 x86.0000495f
74 0x0000b548 0x0000b548 NONE FUNC 0 x86.00004b2f
75 0x0000b580 0x0000b580 NONE FUNC 0 x86.00004dbf
76 0x0000b5b8 0x0000b5b8 NONE FUNC 0 x86.00004dcf
77 0x0000b5f0 0x0000b5f0 NONE FUNC 0 x86.00004f0f
78 0x0000b628 0x0000b628 NONE FUNC 0 x86.00004f4f
79 0x0000b660 0x0000b660 NONE FUNC 0 x86.00004f7f
80 0x0000b698 0x0000b698 NONE FUNC 0 x86.00004fdf
81 0x0000b6d0 0x0000b6d0 NONE FUNC 0 x86.00004fff
82 0x0000b708 0x0000b708 NONE FUNC 0 x86.0000525f
83 0x0000b740 0x0000b740 NONE FUNC 0 x86.000053bf
84 0x0000b778 0x0000b778 NONE FUNC 0 x86.0000543f
85 0x0000b7b0 0x0000b7b0 NONE FUNC 0 x86.0000556f
86 0x0000b7e8 0x0000b7e8 NONE FUNC 0 x86.00135fff
87 0x0000b898 0x0000b898 NONE FUNC 0 x86.00136028
88 0x0000b8d0 0x0000b8d0 NONE FUNC 0 x86.0013602a
89 0x0000b978 0x0000b978 NONE FUNC 0 x86.001362df
90 0x0000b9a8 0x0000b9a8 NONE FUNC 0 x86.0013635f
91 0x0000b9e8 0x0000b9e8 NONE FUNC 0 x86.0013636b
92 0x0000ba18 0x0000ba18 NONE FUNC 0 x86.0013663f
EOF
RUN

0 comments on commit 6c3e3d4

Please sign in to comment.