640 lines
20 KiB
Text
640 lines
20 KiB
Text
NAME=ac
|
|
FILE==
|
|
CMDS=<<EOF
|
|
ac Flatline
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[Flatline]
|
|
Flatline=c
|
|
-
|
|
EOF
|
|
RUN
|
|
|
|
NAME=acm
|
|
FILE==
|
|
CMDS=<<EOF
|
|
ac Flatline
|
|
acm Flatline PlayerPosition 0x1337 0x42
|
|
acil Flatline
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
fl @F:classes
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[Flatline]
|
|
nth addr vt_offset type name
|
|
--------------------------------------------------
|
|
1 0x00001337 0x00000042 DEFAULT PlayerPosition
|
|
|
|
Flatline=c
|
|
-
|
|
attr.Flatline.method=PlayerPosition
|
|
attr.Flatline.method.PlayerPosition=4919,66,0,PlayerPosition
|
|
attrtypes.Flatline=method
|
|
0x00001337 0 method.Flatline.PlayerPosition
|
|
EOF
|
|
RUN
|
|
|
|
NAME=acm-
|
|
FILE==
|
|
CMDS=<<EOF
|
|
ac Flatline
|
|
acm Flatline PlayerPosition 0x1337 0x42
|
|
acm Flatline RemainIndoors 0xdeadbeef
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
fl @F:classes
|
|
echo --
|
|
acm- Flatline PlayerPosition
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
fl @F:classes
|
|
echo --
|
|
acm- Flatline RemainIndoors
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
fl @F:classes
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[Flatline]
|
|
nth addr vt_offset type name
|
|
--------------------------------------------------
|
|
1 0x00001337 0x00000042 DEFAULT PlayerPosition
|
|
2 0xdeadbeef ---------- DEFAULT RemainIndoors
|
|
|
|
Flatline=c
|
|
-
|
|
attr.Flatline.method=PlayerPosition,RemainIndoors
|
|
attr.Flatline.method.PlayerPosition=4919,66,0,PlayerPosition
|
|
attr.Flatline.method.RemainIndoors=3735928559,-1,0,RemainIndoors
|
|
attrtypes.Flatline=method
|
|
0x00001337 0 method.Flatline.PlayerPosition
|
|
0xdeadbeef 0 method.Flatline.RemainIndoors
|
|
--
|
|
[Flatline]
|
|
nth addr vt_offset type name
|
|
-------------------------------------------------
|
|
1 0xdeadbeef ---------- DEFAULT RemainIndoors
|
|
|
|
Flatline=c
|
|
-
|
|
attr.Flatline.method=RemainIndoors
|
|
attr.Flatline.method.RemainIndoors=3735928559,-1,0,RemainIndoors
|
|
attrtypes.Flatline=method
|
|
0xdeadbeef 0 method.Flatline.RemainIndoors
|
|
--
|
|
[Flatline]
|
|
Flatline=c
|
|
-
|
|
EOF
|
|
RUN
|
|
|
|
NAME=acmn
|
|
FILE==
|
|
CMDS=<<EOF
|
|
ac Flatline
|
|
acm Flatline PlayerPosition 0x1337 0x42
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
fl @F:classes
|
|
echo --
|
|
acmn Flatline PlayerPosition Marigold
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
fl @F:classes
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[Flatline]
|
|
nth addr vt_offset type name
|
|
--------------------------------------------------
|
|
1 0x00001337 0x00000042 DEFAULT PlayerPosition
|
|
|
|
Flatline=c
|
|
-
|
|
attr.Flatline.method=PlayerPosition
|
|
attr.Flatline.method.PlayerPosition=4919,66,0,PlayerPosition
|
|
attrtypes.Flatline=method
|
|
0x00001337 0 method.Flatline.PlayerPosition
|
|
--
|
|
[Flatline]
|
|
nth addr vt_offset type name
|
|
--------------------------------------------
|
|
1 0x00001337 0x00000042 DEFAULT Marigold
|
|
|
|
Flatline=c
|
|
-
|
|
attr.Flatline.method=Marigold
|
|
attr.Flatline.method.Marigold=4919,66,0,Marigold
|
|
attrtypes.Flatline=method
|
|
0x00001337 0 method.Flatline.Marigold
|
|
EOF
|
|
RUN
|
|
|
|
NAME=ac-
|
|
FILE==
|
|
CMDS=<<EOF
|
|
ac Album
|
|
ac PeripheryAlbum
|
|
acb PeripheryAlbum Album
|
|
ac Flatline
|
|
acb Flatline PeripheryAlbum
|
|
acm Flatline PlayerPosition 0x1337 0x42
|
|
acv Flatline 0x1337
|
|
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
fl @F:classes
|
|
|
|
echo --
|
|
ac- Album
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
fl @F:classes
|
|
|
|
echo --
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
fl @F:classes
|
|
echo --
|
|
ac- Flatline
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
fl @F:classes
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[Album]
|
|
[Flatline: PeripheryAlbum]
|
|
(vtable at 0x1337)
|
|
nth addr vt_offset type name
|
|
--------------------------------------------------
|
|
1 0x00001337 0x00000042 DEFAULT PlayerPosition
|
|
|
|
[PeripheryAlbum: Album]
|
|
Album=c
|
|
Flatline=c
|
|
PeripheryAlbum=c
|
|
-
|
|
attr.Flatline.base=0
|
|
attr.Flatline.base.0=PeripheryAlbum,0
|
|
attr.Flatline.method=PlayerPosition
|
|
attr.Flatline.method.PlayerPosition=4919,66,0,PlayerPosition
|
|
attr.Flatline.vtable=0
|
|
attr.Flatline.vtable.0=0x1337,0,0
|
|
attr.PeripheryAlbum.base=0
|
|
attr.PeripheryAlbum.base.0=Album,0
|
|
attrtypes.Flatline=base,method,vtable
|
|
attrtypes.PeripheryAlbum=base
|
|
0x00001337 0 method.Flatline.PlayerPosition
|
|
0x00001337 0 vtable.Flatline.0
|
|
--
|
|
[Flatline: PeripheryAlbum]
|
|
(vtable at 0x1337)
|
|
nth addr vt_offset type name
|
|
--------------------------------------------------
|
|
1 0x00001337 0x00000042 DEFAULT PlayerPosition
|
|
|
|
[PeripheryAlbum]
|
|
Flatline=c
|
|
PeripheryAlbum=c
|
|
-
|
|
attr.Flatline.base=0
|
|
attr.Flatline.base.0=PeripheryAlbum,0
|
|
attr.Flatline.method=PlayerPosition
|
|
attr.Flatline.method.PlayerPosition=4919,66,0,PlayerPosition
|
|
attr.Flatline.vtable=0
|
|
attr.Flatline.vtable.0=0x1337,0,0
|
|
attrtypes.Flatline=base,method,vtable
|
|
0x00001337 0 method.Flatline.PlayerPosition
|
|
0x00001337 0 vtable.Flatline.0
|
|
--
|
|
[Flatline: PeripheryAlbum]
|
|
(vtable at 0x1337)
|
|
nth addr vt_offset type name
|
|
--------------------------------------------------
|
|
1 0x00001337 0x00000042 DEFAULT PlayerPosition
|
|
|
|
[PeripheryAlbum]
|
|
Flatline=c
|
|
PeripheryAlbum=c
|
|
-
|
|
attr.Flatline.base=0
|
|
attr.Flatline.base.0=PeripheryAlbum,0
|
|
attr.Flatline.method=PlayerPosition
|
|
attr.Flatline.method.PlayerPosition=4919,66,0,PlayerPosition
|
|
attr.Flatline.vtable=0
|
|
attr.Flatline.vtable.0=0x1337,0,0
|
|
attrtypes.Flatline=base,method,vtable
|
|
0x00001337 0 method.Flatline.PlayerPosition
|
|
0x00001337 0 vtable.Flatline.0
|
|
--
|
|
[PeripheryAlbum]
|
|
PeripheryAlbum=c
|
|
-
|
|
EOF
|
|
RUN
|
|
|
|
NAME=acb
|
|
FILE==
|
|
CMDS=<<EOF
|
|
ac PeripherySong
|
|
ac NiceSong
|
|
ac Flatline
|
|
acb Flatline PeripherySong
|
|
acb Flatline NiceSong 0x42
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
acbl Flatline
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[Flatline: PeripherySong, NiceSong]
|
|
[NiceSong]
|
|
[PeripherySong]
|
|
Flatline=c
|
|
NiceSong=c
|
|
PeripherySong=c
|
|
-
|
|
attr.Flatline.base=0,1
|
|
attr.Flatline.base.0=PeripherySong,0
|
|
attr.Flatline.base.1=NiceSong,66
|
|
attrtypes.Flatline=base
|
|
Flatline:
|
|
0 PeripherySong @ +0x0
|
|
1 NiceSong @ +0x42
|
|
EOF
|
|
RUN
|
|
|
|
NAME=acb-
|
|
FILE==
|
|
CMDS=<<EOF
|
|
ac PeripherySong
|
|
ac NiceSong
|
|
ac Flatline
|
|
acb Flatline PeripherySong
|
|
acb Flatline NiceSong 0x42
|
|
acbl Flatline
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
echo --
|
|
acb- Flatline 0
|
|
acbl Flatline
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Flatline:
|
|
0 PeripherySong @ +0x0
|
|
1 NiceSong @ +0x42
|
|
Flatline=c
|
|
NiceSong=c
|
|
PeripherySong=c
|
|
-
|
|
attr.Flatline.base=0,1
|
|
attr.Flatline.base.0=PeripherySong,0
|
|
attr.Flatline.base.1=NiceSong,66
|
|
attrtypes.Flatline=base
|
|
--
|
|
Flatline:
|
|
1 NiceSong @ +0x42
|
|
Flatline=c
|
|
NiceSong=c
|
|
PeripherySong=c
|
|
-
|
|
attr.Flatline.base=1
|
|
attr.Flatline.base.1=NiceSong,66
|
|
attrtypes.Flatline=base
|
|
EOF
|
|
RUN
|
|
|
|
NAME=acv
|
|
FILE==
|
|
CMDS=<<EOF
|
|
ac Deadwing
|
|
acv Deadwing 0x1337
|
|
acv Deadwing 0xdeadbeef 0x42
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
fl @F:classes
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[Deadwing]
|
|
(vtable at 0x1337)
|
|
(vtable at 0xdeadbeef in class at +0x42)
|
|
Deadwing=c
|
|
-
|
|
attr.Deadwing.vtable=0,1
|
|
attr.Deadwing.vtable.0=0x1337,0,0
|
|
attr.Deadwing.vtable.1=0xdeadbeef,66,0
|
|
attrtypes.Deadwing=vtable
|
|
0x00001337 0 vtable.Deadwing.0
|
|
0xdeadbeef 0 vtable.Deadwing.1
|
|
EOF
|
|
|
|
RUN
|
|
|
|
NAME=acv-
|
|
FILE==
|
|
CMDS=<<EOF
|
|
ac Deadwing
|
|
acv Deadwing 0x1337
|
|
acv Deadwing 0xdeadbeef 0x42
|
|
acv Deadwing 0xefefef 0x42 0x20
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
fl @F:classes
|
|
echo --
|
|
acv- Deadwing 0
|
|
acll
|
|
fl @F:classes
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[Deadwing]
|
|
(vtable at 0x1337)
|
|
(vtable at 0xdeadbeef in class at +0x42)
|
|
(vtable at 0xefefef in class at +0x42)
|
|
Deadwing=c
|
|
-
|
|
attr.Deadwing.vtable=0,1,2
|
|
attr.Deadwing.vtable.0=0x1337,0,0
|
|
attr.Deadwing.vtable.1=0xdeadbeef,66,0
|
|
attr.Deadwing.vtable.2=0xefefef,66,32
|
|
attrtypes.Deadwing=vtable
|
|
0x00001337 0 vtable.Deadwing.0
|
|
0x00efefef 32 vtable.Deadwing.2
|
|
0xdeadbeef 0 vtable.Deadwing.1
|
|
--
|
|
[Deadwing]
|
|
(vtable at 0xdeadbeef in class at +0x42)
|
|
(vtable at 0xefefef in class at +0x42)
|
|
0x00efefef 32 vtable.Deadwing.2
|
|
0xdeadbeef 0 vtable.Deadwing.1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=acn
|
|
FILE==
|
|
CMDS=<<EOF
|
|
ac Album
|
|
ac PorcupineTreeAlbum
|
|
acb PorcupineTreeAlbum Album
|
|
ac Deadwing
|
|
acb Deadwing PorcupineTreeAlbum 0x8
|
|
acv PorcupineTreeAlbum 0x1337 0x42
|
|
acm PorcupineTreeAlbum Listen 0xdeadbeef
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
fl @F:classes
|
|
echo --
|
|
acn PorcupineTreeAlbum Masterpiece
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
fl @F:classes
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[Album]
|
|
[Deadwing: PorcupineTreeAlbum]
|
|
[PorcupineTreeAlbum: Album]
|
|
(vtable at 0x1337 in class at +0x42)
|
|
nth addr vt_offset type name
|
|
------------------------------------------
|
|
1 0xdeadbeef ---------- DEFAULT Listen
|
|
|
|
Album=c
|
|
Deadwing=c
|
|
PorcupineTreeAlbum=c
|
|
-
|
|
attr.Deadwing.base=0
|
|
attr.Deadwing.base.0=PorcupineTreeAlbum,8
|
|
attr.PorcupineTreeAlbum.base=0
|
|
attr.PorcupineTreeAlbum.base.0=Album,0
|
|
attr.PorcupineTreeAlbum.method=Listen
|
|
attr.PorcupineTreeAlbum.method.Listen=3735928559,-1,0,Listen
|
|
attr.PorcupineTreeAlbum.vtable=0
|
|
attr.PorcupineTreeAlbum.vtable.0=0x1337,66,0
|
|
attrtypes.Deadwing=base
|
|
attrtypes.PorcupineTreeAlbum=base,vtable,method
|
|
0x00001337 0 vtable.PorcupineTreeAlbum.0
|
|
0xdeadbeef 0 method.PorcupineTreeAlbum.Listen
|
|
--
|
|
[Album]
|
|
[Deadwing: Masterpiece]
|
|
[Masterpiece: Album]
|
|
(vtable at 0x1337 in class at +0x42)
|
|
nth addr vt_offset type name
|
|
------------------------------------------
|
|
1 0xdeadbeef ---------- DEFAULT Listen
|
|
|
|
Album=c
|
|
Deadwing=c
|
|
Masterpiece=c
|
|
-
|
|
attr.Deadwing.base=0
|
|
attr.Deadwing.base.0=Masterpiece,8
|
|
attr.Masterpiece.base=0
|
|
attr.Masterpiece.base.0=Album,0
|
|
attr.Masterpiece.method=Listen
|
|
attr.Masterpiece.method.Listen=3735928559,-1,0,Listen
|
|
attr.Masterpiece.vtable=0
|
|
attr.Masterpiece.vtable.0=0x1337,66,0
|
|
attrtypes.Deadwing=base
|
|
attrtypes.Masterpiece=base,vtable,method
|
|
0x00001337 0 vtable.Masterpiece.0
|
|
0xdeadbeef 0 method.Masterpiece.Listen
|
|
EOF
|
|
RUN
|
|
|
|
NAME=acl*
|
|
FILE==
|
|
CMDS=<<EOF
|
|
ac Album
|
|
ac PorcupineTreeAlbum
|
|
acb PorcupineTreeAlbum Album
|
|
ac Deadwing
|
|
acb Deadwing PorcupineTreeAlbum 0x8
|
|
acv PorcupineTreeAlbum 0x1337 0x42
|
|
acm PorcupineTreeAlbum Listen 0xdeadbeef
|
|
acl*
|
|
EOF
|
|
EXPECT=<<EOF
|
|
ac Deadwing
|
|
ac PorcupineTreeAlbum
|
|
ac Album
|
|
acb Deadwing PorcupineTreeAlbum 8
|
|
acb PorcupineTreeAlbum Album 0
|
|
acv PorcupineTreeAlbum 0x1337 66
|
|
acm PorcupineTreeAlbum Listen 0xdeadbeef -1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=aclj
|
|
FILE==
|
|
CMDS=<<EOF
|
|
ac PorcupineTreeAlbum
|
|
ac Deadwing
|
|
acb Deadwing PorcupineTreeAlbum 0x8
|
|
acv PorcupineTreeAlbum 0x1337 0x42
|
|
acm PorcupineTreeAlbum Listen 0xdeadbeef
|
|
aclj
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[{"name":"PorcupineTreeAlbum","bases":[],"vtables":[{"id":"0","addr":4919,"offset":66}],"methods":[{"name":"Listen","addr":3735928559,"type":"DEFAULT"}]},{"name":"Deadwing","bases":[{"id":"0","name":"PorcupineTreeAlbum","offset":8}],"vtables":[],"methods":[]}]
|
|
EOF
|
|
RUN
|
|
|
|
NAME=acvf
|
|
FILE=bins/elf/analysis/elf-virtualtable
|
|
CMDS=<<EOF
|
|
ac A
|
|
ac B
|
|
ac C
|
|
acv A 0x00400d28 0x0 0x10
|
|
acv B 0x00400d08 0x0 0x10
|
|
acv C 0x00400ce8 0x0 0x10
|
|
acll
|
|
acvf 0x0 A
|
|
acvf 0x8 B
|
|
acvf 0x16 C dasdass
|
|
acvf 0x0
|
|
acvf -50
|
|
acvf 0x0 000ASDASdjpsadoaspdjasdaspodasDDD
|
|
acv A 0x00400d28 0x0
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[A]
|
|
(vtable at 0x400d28)
|
|
[B]
|
|
(vtable at 0x400d08)
|
|
[C]
|
|
(vtable at 0x400ce8)
|
|
Function address: 0x00400ac8, in A vtable 0
|
|
Function address: 0x00400b82, in B vtable 0
|
|
Function address: 0x00400ac8, in A vtable 0
|
|
Function address: 0x00400ac8, in B vtable 0
|
|
Function address: 0x00400ac8, in C vtable 0
|
|
EOF
|
|
RUN
|
|
|
|
NAME=aclj2
|
|
FILE=bins/elf/analysis/elf-virtualtable
|
|
CMDS=<<EOF
|
|
aaa
|
|
aclj
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[{"name":"B","bases":[{"id":"0","name":"A","offset":0}],"vtables":[{"id":"0","addr":4197640,"offset":0}],"methods":[{"name":"B","addr":4197198,"type":"CONSTRUCTOR"},{"name":"printValue","addr":4197250,"type":"VIRTUAL","vtable_offset":8},{"name":"method.A.greet","addr":4197064,"type":"VIRTUAL","vtable_offset":0}]},{"name":"std::ios_base::Init","bases":[],"vtables":[],"methods":[{"name":"Init","addr":4196432,"type":"DEFAULT"},{"name":"~Init","addr":4196480,"type":"DEFAULT"}]},{"name":"std","bases":[],"vtables":[],"methods":[]},{"name":"std::ostream","bases":[],"vtables":[],"methods":[{"name":"operator<<","addr":4196400,"type":"DEFAULT"},{"name":"operator<<","addr":4196512,"type":"DEFAULT"}]},{"name":"std::basic_ostream_char__std::char_traits_char_____std","bases":[],"vtables":[],"methods":[{"name":"operator<< <std::char_traits<char> >","addr":4196496,"type":"DEFAULT"},{"name":"endl<char, std::char_traits<char> >","addr":4196528,"type":"DEFAULT"}]},{"name":"A","bases":[],"vtables":[{"id":"0","addr":4197672,"offset":0}],"methods":[{"name":"greet","addr":4197064,"type":"VIRTUAL","vtable_offset":0},{"name":"printValue","addr":4197108,"type":"VIRTUAL","vtable_offset":8},{"name":"A","addr":4197174,"type":"CONSTRUCTOR"}]},{"name":"C","bases":[{"id":"0","name":"A","offset":0}],"vtables":[{"id":"0","addr":4197608,"offset":0}],"methods":[{"name":"C","addr":4197316,"type":"CONSTRUCTOR"},{"name":"printValue","addr":4197368,"type":"VIRTUAL","vtable_offset":8},{"name":"method.A.greet","addr":4197064,"type":"VIRTUAL","vtable_offset":0}]}]
|
|
EOF
|
|
RUN
|
|
|
|
NAME=aclj3
|
|
FILE=bins/pe/cpp-msvc-x86.exe
|
|
CMDS=<<EOF
|
|
e analysis.jmp.cref=true
|
|
aaa
|
|
aclj
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[{"name":"InAbsentia","bases":[{"id":"0","name":"Album","offset":0}],"vtables":[{"id":"0","addr":4268452,"offset":0}],"methods":[{"name":"virtual_0","addr":4198536,"type":"VIRTUAL","vtable_offset":0},{"name":"virtual_4","addr":4198579,"type":"VIRTUAL","vtable_offset":4}]},{"name":"type_info","bases":[],"vtables":[{"id":"0","addr":4268540,"offset":0}],"methods":[{"name":"virtual_0","addr":4198710,"type":"VIRTUAL","vtable_offset":0}]},{"name":"Album","bases":[],"vtables":[{"id":"0","addr":4268388,"offset":0}],"methods":[{"name":"virtual_0","addr":4198493,"type":"VIRTUAL","vtable_offset":0},{"name":"virtual_4","addr":4198567,"type":"VIRTUAL","vtable_offset":4}]}]
|
|
EOF
|
|
RUN
|
|
|
|
NAME=acvf2
|
|
FILE=bins/elf/analysis/elf-virtualtable
|
|
CMDS=<<EOF
|
|
aaa
|
|
acvf 0
|
|
acvf 0x8 A
|
|
acvf 0x0 C
|
|
acvf 0x10 ABC
|
|
acvf -10
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Function address: 0x00400ac8, in A vtable 0
|
|
Function address: 0x00400ac8, in B vtable 0
|
|
Function address: 0x00400ac8, in C vtable 0
|
|
Function address: 0x00400af4, in A vtable 0
|
|
Function address: 0x00400ac8, in C vtable 0
|
|
EOF
|
|
RUN
|
|
|
|
NAME=acvf3
|
|
FILE=bins/mach0/TestRTTI-arm64
|
|
CMDS=<<EOF
|
|
aaa
|
|
acvf 0 A
|
|
acvf 0x8 B
|
|
acvf 0x10 C
|
|
acvf 0x18 ABC
|
|
acvf -20
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Function address: 0x100005f1c, in A vtable 0
|
|
Function address: 0x100005fe0, in B vtable 0
|
|
Function address: 0x100005f44, in B vtable 1
|
|
Function address: 0x100005fe0, in B vtable 2
|
|
Function address: 0x100005f44, in B vtable 3
|
|
Function address: 0x1000060a0, in C vtable 1
|
|
Function address: 0x1000060a0, in C vtable 3
|
|
EOF
|
|
RUN
|
|
|
|
NAME=longclass
|
|
FILE==
|
|
CMDS=<<EOF
|
|
ac Flaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatline
|
|
acv Flaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatline 0x1337 0x42
|
|
acm Flaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatline Uluuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuumulu 0x12345
|
|
acll
|
|
k analysis/classes/*
|
|
echo -
|
|
k analysis/classes/attrs/*
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[Flaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatline]
|
|
(vtable at 0x1337 in class at +0x42)
|
|
nth addr vt_offset type name
|
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
1 0x00012345 ---------- DEFAULT Uluuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuumulu
|
|
|
|
Flaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatline=c
|
|
-
|
|
attr.Flaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatline.method=Uluuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuumulu
|
|
attr.Flaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatline.method.Uluuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuumulu=74565,-1,0,Uluuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuumulu
|
|
attr.Flaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatline.vtable=0
|
|
attr.Flaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatline.vtable.0=0x1337,66,0
|
|
attrtypes.Flaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatline=vtable,method
|
|
EOF
|
|
RUN
|