Variables on the stack are not identified by bp/sp+<offset> anymore, but by their address from the bottom of the stack frame (RzStackAddr), independent of how they are accessed. So now there are only two kinds of variables: stack and register. This required some major refactoring and other changes: * RzAnalysisVar.isarg was removed. Whether a variable is an argument is now specified implicitly by its storage location. * Varsub of struct fields had to be rewritten so fields can be queried by arbitrary stack addresses using the recently introduced sp tracking, as the old approach to fill a list with all fields would not work anymore. * analysis.vars.stackname was removed, new behavior is more similar to this being true before. * Variables will not be created at stack+0 now, because the return address is there. Before, vars were only created sometimes in such cases. * Variables created from bp offsets in x86 are not deleted anymore if the function's bp_frame is false (see removed rz_analysis_function_delete_vars_by_kind(fcn, RZ_ANALYSIS_VAR_KIND_BPV); calls). This may lead to some false-positive detected variables. Whether this really is a practical issue is yet to be seen. At least there are no meaningful tests that are broken by this. * Applying variables from dwarf needed some fixes for determining the correct stack locations of variables in order to write meaningful tests. The handling is still not entirely correct for all possibilities of dwarf info, but at least the changed/added test cases are right and serve as a reference for future changes. * Projects version 11 is introduced. * afvb commands have been removed, afvs now handles all stack vars.
670 lines
26 KiB
Text
670 lines
26 KiB
Text
/
|
|
type=rizin rz-db project
|
|
version=10
|
|
|
|
/core
|
|
blocksize=0x100
|
|
offset=0x1050
|
|
|
|
/core/analysis
|
|
|
|
/core/analysis/blocks
|
|
0x1000={"size":16,"jump":4114,"fail":4112,"traced":true,"ninstr":4,"op_pos":[4,11,14],"sp_delta":[8,8,8,8],"sp":0}
|
|
0x1010={"size":2,"jump":4114,"ninstr":1,"sp":8}
|
|
0x1012={"size":5,"traced":true,"ninstr":2,"op_pos":[4],"sp_delta":[-8,-16],"sp":8}
|
|
0x1030={"size":6,"ninstr":1,"sp":0}
|
|
0x1040={"size":6,"ninstr":1,"sp":0}
|
|
0x1050={"size":33,"traced":true,"ninstr":11,"op_pos":[2,5,6,9,13,14,15,18,20,27],"sp_delta":[0,0,-8,-8,-8,0,8,8,8,8,8],"sp":0}
|
|
0x1080={"size":19,"jump":4264,"fail":4243,"traced":true,"ninstr":4,"op_pos":[7,14,17],"sp_delta":[0,0,0,0],"sp":0}
|
|
0x1093={"size":12,"jump":4264,"fail":4255,"traced":true,"ninstr":3,"op_pos":[7,10],"sp_delta":[0,0,0],"sp":0}
|
|
0x109f={"size":2,"ninstr":1,"sp":0}
|
|
0x10a8={"size":1,"ninstr":1,"sp":0}
|
|
0x10b0={"size":36,"jump":4328,"fail":4308,"traced":true,"ninstr":9,"op_pos":[7,14,17,20,24,28,31,34],"sp_delta":[0,0,0,0,0,0,0,0,0],"sp":0}
|
|
0x10d4={"size":12,"jump":4328,"fail":4320,"traced":true,"ninstr":3,"op_pos":[7,10],"sp_delta":[0,0,0],"sp":0}
|
|
0x10e0={"size":2,"ninstr":1,"sp":0}
|
|
0x10e8={"size":1,"ninstr":1,"sp":0}
|
|
0x10f0={"size":9,"jump":4392,"fail":4345,"traced":true,"ninstr":2,"op_pos":[7],"sp_delta":[0,0],"sp":0}
|
|
0x10f9={"size":14,"jump":4371,"fail":4359,"traced":true,"ninstr":4,"op_pos":[1,9,12],"sp_delta":[8,8,8,8],"sp":0}
|
|
0x1107={"size":12,"jump":4371,"traced":true,"ninstr":2,"op_pos":[7],"sp_delta":[0,0],"sp":8}
|
|
0x1113={"size":14,"traced":true,"ninstr":4,"op_pos":[5,12,13],"sp_delta":[0,0,-8,-16],"sp":8}
|
|
0x1128={"size":1,"ninstr":1,"sp":0}
|
|
0x1130={"size":5,"jump":4272,"ninstr":1,"sp":0}
|
|
0x1135={"size":7,"traced":true,"ninstr":5,"op_pos":[1,4,5,6],"sp_delta":[8,8,8,0,-8],"sp":0}
|
|
0x113c={"size":57,"traced":true,"ninstr":14,"op_pos":[1,4,8,15,22,29,36,41,46,49,52,55,56],"sp_delta":[8,8,24,24,24,24,24,24,24,24,24,24,0,-8],"sp":0}
|
|
0x1175={"size":54,"traced":true,"ninstr":15,"op_pos":[1,4,8,11,15,20,25,27,34,37,42,47,52,53],"sp_delta":[8,8,24,24,24,24,24,24,24,24,24,24,24,0,-8],"sp":0}
|
|
0x11ac={"size":9,"traced":true,"ninstr":3,"op_pos":[4,8],"sp_delta":[8,0,-8],"sp":0}
|
|
|
|
/core/analysis/callables
|
|
|
|
/core/analysis/cc
|
|
amd64=cc
|
|
amd64syscall=cc
|
|
cc.amd64.arg0=rdi
|
|
cc.amd64.arg1=rsi
|
|
cc.amd64.arg10=xmm4
|
|
cc.amd64.arg2=rdx
|
|
cc.amd64.arg3=rcx
|
|
cc.amd64.arg4=r8
|
|
cc.amd64.arg5=r9
|
|
cc.amd64.arg6=xmm0
|
|
cc.amd64.arg7=xmm1
|
|
cc.amd64.arg8=xmm2
|
|
cc.amd64.arg9=xmm3
|
|
cc.amd64.ret=rax
|
|
cc.amd64syscall.arg0=rdi
|
|
cc.amd64syscall.arg1=rsi
|
|
cc.amd64syscall.arg2=rdx
|
|
cc.amd64syscall.arg3=r10
|
|
cc.amd64syscall.arg4=r8
|
|
cc.amd64syscall.arg5=r9
|
|
cc.amd64syscall.ret=rax
|
|
cc.ms.arg0=rcx
|
|
cc.ms.arg1=rdx
|
|
cc.ms.arg2=r8
|
|
cc.ms.arg3=r9
|
|
cc.ms.argn=stack
|
|
cc.ms.ret=rax
|
|
cc.reg.arg0=rdi
|
|
cc.reg.arg1=rsi
|
|
cc.reg.arg2=rdx
|
|
cc.reg.arg3=rcx
|
|
cc.reg.ret=rdi
|
|
cc.swift.arg0=rdi
|
|
cc.swift.arg1=rsi
|
|
cc.swift.arg10=xmm4
|
|
cc.swift.arg2=rdx
|
|
cc.swift.arg3=rcx
|
|
cc.swift.arg4=r8
|
|
cc.swift.arg5=r9
|
|
cc.swift.arg6=xmm0
|
|
cc.swift.arg7=xmm1
|
|
cc.swift.arg8=xmm2
|
|
cc.swift.arg9=xmm3
|
|
cc.swift.error=r12
|
|
cc.swift.ret=rax
|
|
cc.swift.self=r13
|
|
default.cc=amd64
|
|
ms=cc
|
|
reg=cc
|
|
swift=cc
|
|
|
|
/core/analysis/classes
|
|
|
|
/core/analysis/classes/attrs
|
|
|
|
/core/analysis/functions
|
|
0x1000={"name":"sym._init","bits":64,"type":4,"cc":"amd64","stack":-8,"maxstack":8,"ninstr":7,"bp_frame":true,"bbs":[4096,4112,4114]}
|
|
0x1030={"name":"sym.imp.printf","bits":64,"type":4,"cc":"amd64","stack":0,"maxstack":0,"ninstr":1,"bp_frame":true,"bbs":[4144]}
|
|
0x1040={"name":"sym.imp.__cxa_finalize","bits":64,"type":4,"cc":"amd64","stack":0,"maxstack":0,"ninstr":1,"bp_frame":true,"bbs":[4160]}
|
|
0x1050={"name":"entry0","bits":64,"type":1,"cc":"amd64","stack":8,"maxstack":8,"ninstr":11,"bp_frame":true,"bbs":[4176],"vars":[{"name":"arg3","type":"int64_t","kind":"r","reg":"rdx","arg":true,"accs":[{"off":2,"type":"r","reg":"rdx"}]}]}
|
|
0x1080={"name":"fcn.00001080","bits":64,"type":1,"cc":"amd64","stack":0,"maxstack":0,"ninstr":9,"bp_frame":true,"bbs":[4224,4243,4255,4264]}
|
|
0x10f0={"name":"entry.fini0","bits":64,"type":1,"cc":"amd64","stack":-8,"maxstack":8,"ninstr":13,"bp_frame":true,"bp_off":8,"bbs":[4336,4345,4359,4371,4392]}
|
|
0x1130={"name":"entry.init0","bits":64,"type":1,"cc":"amd64","stack":0,"maxstack":0,"ninstr":15,"bp_frame":true,"bbs":[4272,4308,4320,4328,4400]}
|
|
0x1135={"name":"dbg.leaffunc","bits":64,"type":4,"cc":"amd64","stack":-8,"maxstack":8,"ninstr":5,"bp_frame":true,"bp_off":8,"bbs":[4405]}
|
|
0x113c={"name":"dbg.varfunc","bits":64,"type":4,"cc":"amd64","stack":-8,"maxstack":24,"ninstr":14,"bp_frame":true,"bp_off":8,"bbs":[4412],"vars":[{"name":"lightbulb","type":"int","kind":"b","delta":-24,"accs":[{"off":8,"type":"w","sp":18446744073709551600,"reg":"rbp"},{"off":52,"type":"r","sp":18446744073709551600,"reg":"rbp"}]},{"name":"sun","type":"int","kind":"b","delta":-20,"accs":[{"off":15,"type":"w","sp":18446744073709551604,"reg":"rbp"},{"off":49,"type":"w","sp":18446744073709551604,"reg":"rbp"}]},{"name":"last","type":"int","kind":"b","delta":-16,"accs":[{"off":22,"type":"w","sp":18446744073709551608,"reg":"rbp"}]},{"name":"chance","type":"int","kind":"b","delta":-12,"accs":[{"off":29,"type":"w","sp":18446744073709551612,"reg":"rbp"},{"off":46,"type":"r","sp":18446744073709551612,"reg":"rbp"}]}]}
|
|
0x1175={"name":"dbg.main","bits":64,"type":4,"cc":"amd64","stack":-8,"maxstack":24,"ninstr":15,"bp_frame":true,"bp_off":8,"bbs":[4469],"vars":[{"name":"var_4h","type":"int","kind":"b","delta":-12,"accs":[{"off":8,"type":"w","sp":18446744073709551612,"reg":"rbp"}]},{"name":"var_10h","type":"char **","kind":"b","delta":-24,"accs":[{"off":11,"type":"w","sp":18446744073709551600,"reg":"rbp"}]},{"name":"argc","type":"int","kind":"r","reg":"rdi","arg":true,"accs":[{"off":8,"type":"r","reg":"rdi"}]},{"name":"argv","type":"char **","kind":"r","reg":"rsi","arg":true,"accs":[{"off":11,"type":"r","reg":"rsi"}]}]}
|
|
0x11ac={"name":"sym._fini","bits":64,"type":4,"cc":"amd64","stack":-8,"maxstack":8,"ninstr":3,"bp_frame":true,"bbs":[4524]}
|
|
|
|
/core/analysis/hints
|
|
|
|
/core/analysis/imports
|
|
|
|
/core/analysis/meta
|
|
|
|
/core/analysis/meta/spaces
|
|
name=CS
|
|
spacestack=["*"]
|
|
|
|
/core/analysis/meta/spaces/spaces
|
|
bin=s
|
|
|
|
/core/analysis/noreturn
|
|
|
|
/core/analysis/typelinks
|
|
|
|
/core/analysis/types
|
|
FILE=typedef
|
|
__div_t=struct
|
|
__idtype=enum
|
|
__imaxdiv_t=struct
|
|
__ldiv_t=struct
|
|
__lldiv_t=struct
|
|
__siginfo_t=struct
|
|
__sigset_t=struct
|
|
_fd_set=struct
|
|
access_perm=enum
|
|
bool=type
|
|
char=type
|
|
char *=type
|
|
char16_t=type
|
|
char32_t=type
|
|
char8_t=type
|
|
clock_t=typedef
|
|
div_t=typedef
|
|
double=type
|
|
enum.__idtype=P_ALL,P_GID,P_PGID
|
|
enum.__idtype.0x0=P_ALL
|
|
enum.__idtype.0x1=P_GID
|
|
enum.__idtype.0x2=P_PGID
|
|
enum.__idtype.P_ALL=0x0
|
|
enum.__idtype.P_GID=0x1
|
|
enum.__idtype.P_PGID=0x2
|
|
enum.access_perm=F_OK,X_OK,W_OK,R_OK,WX_OK,RX_OK,RW_OK,RWX_OK
|
|
enum.access_perm.0x0=F_OK
|
|
enum.access_perm.0x1=X_OK
|
|
enum.access_perm.0x2=W_OK
|
|
enum.access_perm.0x3=WX_OK
|
|
enum.access_perm.0x4=R_OK
|
|
enum.access_perm.0x5=RX_OK
|
|
enum.access_perm.0x6=RW_OK
|
|
enum.access_perm.0x7=RWX_OK
|
|
enum.access_perm.F_OK=0x0
|
|
enum.access_perm.RWX_OK=0x7
|
|
enum.access_perm.RW_OK=0x6
|
|
enum.access_perm.RX_OK=0x5
|
|
enum.access_perm.R_OK=0x4
|
|
enum.access_perm.WX_OK=0x3
|
|
enum.access_perm.W_OK=0x2
|
|
enum.access_perm.X_OK=0x1
|
|
enum.sock_domain=AF_UNIX,AF_INET,AF_AX25,AF_IPX,AF_APPLETALK,AF_X25,AF_INET6,AF_DECnet,AF_KEY,AF_NETLINK,AF_PACKET,AF_RDS,AF_PPPOX,AF_LLC,AF_IB,AF_MPLS,AF_CAN,AF_TIPC,AF_BLUETOOTH,AF_ALG,AF_VSOCK,AF_KCM,AF_XDP
|
|
enum.sock_domain.0x1=AF_UNIX
|
|
enum.sock_domain.0x10=AF_INET6
|
|
enum.sock_domain.0x12=AF_DECnet
|
|
enum.sock_domain.0x15=AF_KEY
|
|
enum.sock_domain.0x16=AF_NETLINK
|
|
enum.sock_domain.0x17=AF_PACKET
|
|
enum.sock_domain.0x2=AF_INET
|
|
enum.sock_domain.0x21=AF_RDS
|
|
enum.sock_domain.0x24=AF_PPPOX
|
|
enum.sock_domain.0x26=AF_LLC
|
|
enum.sock_domain.0x27=AF_IB
|
|
enum.sock_domain.0x28=AF_MPLS
|
|
enum.sock_domain.0x29=AF_CAN
|
|
enum.sock_domain.0x3=AF_AX25
|
|
enum.sock_domain.0x30=AF_TIPC
|
|
enum.sock_domain.0x31=AF_BLUETOOTH
|
|
enum.sock_domain.0x38=AF_ALG
|
|
enum.sock_domain.0x4=AF_IPX
|
|
enum.sock_domain.0x40=AF_VSOCK
|
|
enum.sock_domain.0x41=AF_KCM
|
|
enum.sock_domain.0x44=AF_XDP
|
|
enum.sock_domain.0x5=AF_APPLETALK
|
|
enum.sock_domain.0x9=AF_X25
|
|
enum.sock_domain.AF_ALG=0x38
|
|
enum.sock_domain.AF_APPLETALK=0x5
|
|
enum.sock_domain.AF_AX25=0x3
|
|
enum.sock_domain.AF_BLUETOOTH=0x31
|
|
enum.sock_domain.AF_CAN=0x29
|
|
enum.sock_domain.AF_DECnet=0x12
|
|
enum.sock_domain.AF_IB=0x27
|
|
enum.sock_domain.AF_INET=0x2
|
|
enum.sock_domain.AF_INET6=0x10
|
|
enum.sock_domain.AF_IPX=0x4
|
|
enum.sock_domain.AF_KCM=0x41
|
|
enum.sock_domain.AF_KEY=0x15
|
|
enum.sock_domain.AF_LLC=0x26
|
|
enum.sock_domain.AF_MPLS=0x28
|
|
enum.sock_domain.AF_NETLINK=0x16
|
|
enum.sock_domain.AF_PACKET=0x17
|
|
enum.sock_domain.AF_PPPOX=0x24
|
|
enum.sock_domain.AF_RDS=0x21
|
|
enum.sock_domain.AF_TIPC=0x30
|
|
enum.sock_domain.AF_UNIX=0x1
|
|
enum.sock_domain.AF_VSOCK=0x40
|
|
enum.sock_domain.AF_X25=0x9
|
|
enum.sock_domain.AF_XDP=0x44
|
|
enum.sock_type=SOCK_STREAM,SOCK_DGRAM,SOCK_SEQPACKET,SOCK_RAW,SOCK_RDM,SOCK_PACKET,SOCK_DCCP
|
|
enum.sock_type.0x1=SOCK_DGRAM
|
|
enum.sock_type.0x2=SOCK_STREAM
|
|
enum.sock_type.0x3=SOCK_RAW
|
|
enum.sock_type.0x4=SOCK_RDM
|
|
enum.sock_type.0x5=SOCK_SEQPACKET
|
|
enum.sock_type.0x6=SOCK_DCCP
|
|
enum.sock_type.0x7=SOCK_PACKET
|
|
enum.sock_type.SOCK_DCCP=0x6
|
|
enum.sock_type.SOCK_DGRAM=0x1
|
|
enum.sock_type.SOCK_PACKET=0x7
|
|
enum.sock_type.SOCK_RAW=0x3
|
|
enum.sock_type.SOCK_RDM=0x4
|
|
enum.sock_type.SOCK_SEQPACKET=0x5
|
|
enum.sock_type.SOCK_STREAM=0x2
|
|
fd_mask=typedef
|
|
fd_set=typedef
|
|
fenv_t=typedef
|
|
fexcept_t=typedef
|
|
float=type
|
|
fpos_t=typedef
|
|
gid_t=type
|
|
id_t=type
|
|
idtype_t=typedef
|
|
imaxdiv_t=typedef
|
|
int=type
|
|
int16_t=type
|
|
int32_t=type
|
|
int64_t=type
|
|
int8_t=type
|
|
intmax_t=type
|
|
intptr_t=type
|
|
jmp_buf=typedef
|
|
lconv=struct
|
|
ldiv_t=typedef
|
|
lldiv_t=typedef
|
|
locale_t=typedef
|
|
long=type
|
|
long double=type
|
|
long int=type
|
|
long long=type
|
|
long long int=type
|
|
long unsigned int=type
|
|
mbstate_t=typedef
|
|
nl_item=typedef
|
|
pid_t=type
|
|
ptrdiff_t=type
|
|
short=type
|
|
short int=type
|
|
short unsigned int=type
|
|
sigaction=struct
|
|
siginfo_t=typedef
|
|
signed char=type
|
|
sigset_t=typedef
|
|
sigval=union
|
|
size_t=type
|
|
sock_domain=enum
|
|
sock_type=enum
|
|
sockaddr=struct
|
|
socklen_t=typedef
|
|
ssize_t=type
|
|
std__type_info=struct
|
|
struct.__div_t=quot,rem
|
|
struct.__div_t.quot=int,0,0
|
|
struct.__div_t.rem=int,2,0
|
|
struct.__imaxdiv_t=quot,rem
|
|
struct.__imaxdiv_t.quot=intmax_t,0,0
|
|
struct.__imaxdiv_t.rem=intmax_t,8,0
|
|
struct.__ldiv_t=quot,rem
|
|
struct.__ldiv_t.quot=long int,0,0
|
|
struct.__ldiv_t.rem=long int,4,0
|
|
struct.__lldiv_t=quot,rem
|
|
struct.__lldiv_t.quot=long long int,0,0
|
|
struct.__lldiv_t.rem=long long int,4,0
|
|
struct.__siginfo_t=si_signo,si_code,si_value,si_errno,si_pid,si_uid,si_addr,si_status,si_band
|
|
struct.__siginfo_t.si_addr=void *,28,0
|
|
struct.__siginfo_t.si_band=int,36,0
|
|
struct.__siginfo_t.si_code=int,4,0
|
|
struct.__siginfo_t.si_errno=int,16,0
|
|
struct.__siginfo_t.si_pid=pid_t,20,0
|
|
struct.__siginfo_t.si_signo=int,0,0
|
|
struct.__siginfo_t.si_status=int,32,0
|
|
struct.__siginfo_t.si_uid=uid_t,24,0
|
|
struct.__siginfo_t.si_value=union sigval,8,0
|
|
struct.__sigset_t=sig
|
|
struct.__sigset_t.sig=unsigned long,0,0
|
|
struct._fd_set=fds_bits
|
|
struct._fd_set.fds_bits=fd_mask,0,0
|
|
struct.sigaction=sa_handler,sa_flags,sa_restorer,sa_mask
|
|
struct.sigaction.sa_flags=unsigned long,8,0
|
|
struct.sigaction.sa_handler=void *,0,0
|
|
struct.sigaction.sa_mask=sigset_t,20,0
|
|
struct.sigaction.sa_restorer=void *,12,0
|
|
struct.timespec=tv_sec,tv_nsec
|
|
struct.timespec.tv_nsec=long,8,0
|
|
struct.timespec.tv_sec=time_t,0,0
|
|
struct.timeval=tv_sec,tv_usec
|
|
struct.timeval.tv_sec=time_t,0,0
|
|
struct.timeval.tv_usec=suseconds_t,8,0
|
|
struct.tm=tm_sec,tm_min,tm_hour,tm_mday,tm_mon,tm_year,tm_wday,tm_yday,tm_isdst
|
|
struct.tm.tm_hour=int,8,0
|
|
struct.tm.tm_isdst=int,32,0
|
|
struct.tm.tm_mday=int,12,0
|
|
struct.tm.tm_min=int,4,0
|
|
struct.tm.tm_mon=int,16,0
|
|
struct.tm.tm_sec=int,0,0
|
|
struct.tm.tm_wday=int,24,0
|
|
struct.tm.tm_yday=int,28,0
|
|
struct.tm.tm_year=int,20,0
|
|
suseconds_t=typedef
|
|
time_t=typedef
|
|
timespec=struct
|
|
timeval=struct
|
|
tm=struct
|
|
type.bool=b
|
|
type.bool.size=8
|
|
type.bool.typeclass=None
|
|
type.char=c
|
|
type.char *=z
|
|
type.char *.size=64
|
|
type.char *.typeclass=None
|
|
type.char.size=8
|
|
type.char.typeclass=Signed Integral
|
|
type.char16_t=c
|
|
type.char16_t.size=16
|
|
type.char16_t.typeclass=Signed Integral
|
|
type.char32_t=c
|
|
type.char32_t.size=32
|
|
type.char32_t.typeclass=Signed Integral
|
|
type.char8_t=c
|
|
type.char8_t.size=8
|
|
type.char8_t.typeclass=Signed Integral
|
|
type.double=F
|
|
type.double.size=64
|
|
type.double.typeclass=Floating
|
|
type.float=f
|
|
type.float.size=32
|
|
type.float.typeclass=Floating
|
|
type.gid_t=q
|
|
type.gid_t.size=64
|
|
type.gid_t.typeclass=Integral
|
|
type.id_t=q
|
|
type.id_t.size=64
|
|
type.id_t.typeclass=Integral
|
|
type.int=d
|
|
type.int.size=32
|
|
type.int.typeclass=Signed Integral
|
|
type.int16_t=w
|
|
type.int16_t.size=16
|
|
type.int16_t.typeclass=Signed Integral
|
|
type.int32_t=d
|
|
type.int32_t.size=32
|
|
type.int32_t.typeclass=Signed Integral
|
|
type.int64_t=q
|
|
type.int64_t.size=64
|
|
type.int64_t.typeclass=Signed Integral
|
|
type.int8_t=b
|
|
type.int8_t.size=8
|
|
type.int8_t.typeclass=Signed Integral
|
|
type.intmax_t=q
|
|
type.intmax_t.size=64
|
|
type.intmax_t.typeclass=Signed Integral
|
|
type.intptr_t=q
|
|
type.intptr_t.size=64
|
|
type.intptr_t.typeclass=Signed Integral
|
|
type.long=x
|
|
type.long double=F
|
|
type.long double.size=64
|
|
type.long double.typeclass=Floating
|
|
type.long int=x
|
|
type.long int.size=64
|
|
type.long int.typeclass=Signed Integral
|
|
type.long long=q
|
|
type.long long int=q
|
|
type.long long int.size=64
|
|
type.long long int.typeclass=Signed Integral
|
|
type.long long.size=64
|
|
type.long long.typeclass=Signed Integral
|
|
type.long unsigned int.size=64
|
|
type.long unsigned int.typeclass=None
|
|
type.long.size=64
|
|
type.long.typeclass=Signed Integral
|
|
type.pid_t=q
|
|
type.pid_t.size=64
|
|
type.pid_t.typeclass=Integral
|
|
type.ptrdiff_t=q
|
|
type.ptrdiff_t.size=64
|
|
type.ptrdiff_t.typeclass=Integral
|
|
type.short=w
|
|
type.short int.size=16
|
|
type.short int.typeclass=None
|
|
type.short unsigned int.size=16
|
|
type.short unsigned int.typeclass=None
|
|
type.short.size=16
|
|
type.short.typeclass=Signed Integral
|
|
type.signed char.size=8
|
|
type.signed char.typeclass=None
|
|
type.size_t=q
|
|
type.size_t.size=64
|
|
type.size_t.typeclass=Unsigned Integral
|
|
type.ssize_t=q
|
|
type.ssize_t.size=64
|
|
type.ssize_t.typeclass=Signed Integral
|
|
type.uid_t=q
|
|
type.uid_t.size=64
|
|
type.uid_t.typeclass=Integral
|
|
type.uint16_t=w
|
|
type.uint16_t.size=16
|
|
type.uint16_t.typeclass=Unsigned Integral
|
|
type.uint32_t=d
|
|
type.uint32_t.size=32
|
|
type.uint32_t.typeclass=Unsigned Integral
|
|
type.uint64_t=q
|
|
type.uint64_t.size=64
|
|
type.uint64_t.typeclass=Unsigned Integral
|
|
type.uint8_t=b
|
|
type.uint8_t.size=8
|
|
type.uint8_t.typeclass=Unsigned Integral
|
|
type.uintmax_t=q
|
|
type.uintmax_t.size=64
|
|
type.uintmax_t.typeclass=Unsigned Integral
|
|
type.uintptr_t=q
|
|
type.uintptr_t.size=64
|
|
type.uintptr_t.typeclass=Unsigned Integral
|
|
type.unknown_t=q
|
|
type.unknown_t.size=64
|
|
type.unknown_t.typeclass=Integral
|
|
type.unsigned char=b
|
|
type.unsigned char.size=8
|
|
type.unsigned char.typeclass=Unsigned Integral
|
|
type.unsigned int=i
|
|
type.unsigned int.size=32
|
|
type.unsigned int.typeclass=Unsigned Integral
|
|
type.unsigned long=d
|
|
type.unsigned long long=q
|
|
type.unsigned long long.size=64
|
|
type.unsigned long long.typeclass=Unsigned Integral
|
|
type.unsigned long.size=32
|
|
type.unsigned long.typeclass=Unsigned Integral
|
|
type.unsigned short=w
|
|
type.unsigned short.size=16
|
|
type.unsigned short.typeclass=Unsigned Integral
|
|
type.void *=p
|
|
type.void *.size=64
|
|
type.void *.typeclass=None
|
|
type.void.size=0
|
|
type.void.typeclass=None
|
|
typedef.FILE=void
|
|
typedef.clock_t=void
|
|
typedef.div_t=struct __div_t
|
|
typedef.fd_mask=long int
|
|
typedef.fd_set=struct _fd_set
|
|
typedef.fenv_t=void
|
|
typedef.fexcept_t=void
|
|
typedef.fpos_t=void
|
|
typedef.idtype_t=enum __idtype
|
|
typedef.imaxdiv_t=struct __imaxdiv_t
|
|
typedef.jmp_buf=void
|
|
typedef.ldiv_t=struct __ldiv_t
|
|
typedef.lldiv_t=struct __lldiv_t
|
|
typedef.locale_t=void
|
|
typedef.mbstate_t=void
|
|
typedef.nl_item=int
|
|
typedef.siginfo_t=struct __siginfo_t
|
|
typedef.sigset_t=struct __sigset_t
|
|
typedef.socklen_t=int
|
|
typedef.suseconds_t=long
|
|
typedef.time_t=long
|
|
typedef.va_list=char *
|
|
typedef.wchar_t=int
|
|
typedef.wctrans_t=unsigned int
|
|
typedef.wctype_t=int
|
|
typedef.wint_t=int
|
|
uid_t=type
|
|
uint16_t=type
|
|
uint32_t=type
|
|
uint64_t=type
|
|
uint8_t=type
|
|
uintmax_t=type
|
|
uintptr_t=type
|
|
union.sigval=sival_int,sival_ptr
|
|
union.sigval.sival_int=int,0,0
|
|
union.sigval.sival_ptr=void *,0,0
|
|
unknown_t=type
|
|
unsigned char=type
|
|
unsigned int=type
|
|
unsigned long=type
|
|
unsigned long long=type
|
|
unsigned short=type
|
|
va_list=typedef
|
|
void=type
|
|
void *=type
|
|
wchar_t=typedef
|
|
wctrans_t=typedef
|
|
wctype_t=typedef
|
|
wint_t=typedef
|
|
|
|
/core/analysis/vars
|
|
|
|
/core/analysis/xrefs
|
|
0x1004=[{"to":16360,"type":"d"}]
|
|
0x1026=[{"to":16400,"type":"c"}]
|
|
0x1030=[{"to":16408,"type":"c"}]
|
|
0x103b=[{"to":4128,"type":"c"}]
|
|
0x1040=[{"to":16376,"type":"c"}]
|
|
0x1064=[{"to":4469,"type":"d"}]
|
|
0x106b=[{"to":16344,"type":"C"}]
|
|
0x1080=[{"to":16432,"type":"d"}]
|
|
0x1087=[{"to":16432,"type":"d"}]
|
|
0x1093=[{"to":16352,"type":"d"}]
|
|
0x10b0=[{"to":16432,"type":"d"}]
|
|
0x10b7=[{"to":16432,"type":"d"}]
|
|
0x10d4=[{"to":16368,"type":"d"}]
|
|
0x10f0=[{"to":16432,"type":"d"}]
|
|
0x10fa=[{"to":16376,"type":"d"}]
|
|
0x1107=[{"to":16424,"type":"d"}]
|
|
0x110e=[{"to":4160,"type":"C"}]
|
|
0x1113=[{"to":4224,"type":"C"}]
|
|
0x1118=[{"to":16432,"type":"d"}]
|
|
0x1130=[{"to":4272,"type":"c"}]
|
|
0x1165=[{"to":4405,"type":"C"}]
|
|
0x1189=[{"to":4412,"type":"C"}]
|
|
0x1190=[{"to":8196,"type":"d"}]
|
|
0x119f=[{"to":4144,"type":"C"}]
|
|
0x20a0=[{"to":255,"type":"d"}]
|
|
0x20b3=[{"to":63,"type":"d"}]
|
|
0x20ba=[{"to":34,"type":"d"}]
|
|
0x2100=[{"to":240,"type":"d"}]
|
|
|
|
/core/config
|
|
|
|
/core/debug
|
|
|
|
/core/debug/breakpoints
|
|
|
|
/core/file
|
|
relative=../bins/elf/vars-x86_64-bp
|
|
|
|
/core/flags
|
|
base=0
|
|
realnames=0
|
|
|
|
/core/flags/flags
|
|
dbg.leaffunc={"realname":"dbg.leaffunc","demangled":false,"offset":4405,"size":7,"space":"functions"}
|
|
dbg.main={"realname":"dbg.main","demangled":false,"offset":4469,"size":54,"space":"functions"}
|
|
dbg.varfunc={"realname":"dbg.varfunc","demangled":false,"offset":4412,"size":57,"space":"functions"}
|
|
entry.fini0={"realname":"entry.fini0","demangled":false,"offset":4336,"size":57,"space":"symbols"}
|
|
entry.init0={"realname":"entry.init0","demangled":false,"offset":4400,"size":5,"space":"symbols"}
|
|
entry0={"realname":"entry0","demangled":false,"offset":4176,"size":33,"space":"symbols"}
|
|
fcn.00001080={"realname":"fcn.00001080","demangled":false,"offset":4224,"size":41,"space":"functions"}
|
|
loc.__GNU_EH_FRAME_HDR={"realname":"__GNU_EH_FRAME_HDR","demangled":false,"offset":8208,"size":0,"space":"symbols"}
|
|
loc.__bss_start={"realname":"__bss_start","demangled":false,"offset":16432,"size":0,"space":"symbols"}
|
|
loc.__data_start={"realname":"__data_start","demangled":false,"offset":16416,"size":0,"space":"symbols"}
|
|
loc._edata={"realname":"_edata","demangled":false,"offset":16432,"size":0,"space":"symbols"}
|
|
loc._end={"realname":"_end","demangled":false,"offset":16440,"size":0,"space":"symbols"}
|
|
loc.data_start={"realname":"data_start","demangled":false,"offset":16416,"size":0,"space":"symbols"}
|
|
main={"realname":"main","demangled":false,"offset":4469,"size":54,"space":"symbols"}
|
|
obj._DYNAMIC={"realname":"_DYNAMIC","demangled":false,"offset":15864,"size":0,"space":"symbols"}
|
|
obj._GLOBAL_OFFSET_TABLE={"realname":"_GLOBAL_OFFSET_TABLE_","demangled":false,"offset":16384,"size":0,"space":"symbols"}
|
|
obj._IO_stdin_used={"realname":"_IO_stdin_used","demangled":false,"offset":8192,"size":4,"space":"symbols"}
|
|
obj.__TMC_END={"realname":"__TMC_END__","demangled":false,"offset":16432,"size":0,"space":"symbols"}
|
|
obj.__dso_handle={"realname":"__dso_handle","demangled":false,"offset":16424,"size":0,"space":"symbols"}
|
|
reloc._ITM_deregisterTMCloneTable={"realname":"_ITM_deregisterTMCloneTable","demangled":false,"offset":16352,"size":8,"space":"relocs"}
|
|
reloc._ITM_registerTMCloneTable={"realname":"_ITM_registerTMCloneTable","demangled":false,"offset":16368,"size":8,"space":"relocs"}
|
|
reloc.__cxa_finalize={"realname":"__cxa_finalize","demangled":false,"offset":16376,"size":8,"space":"relocs"}
|
|
reloc.__gmon_start={"realname":"__gmon_start__","demangled":false,"offset":16360,"size":8,"space":"relocs"}
|
|
reloc.__libc_start_main={"realname":"__libc_start_main","demangled":false,"offset":16344,"size":8,"space":"relocs"}
|
|
reloc.printf={"realname":"printf","demangled":false,"offset":16408,"size":8,"space":"relocs"}
|
|
reloc.target._ITM_deregisterTMCloneTable={"realname":"_ITM_deregisterTMCloneTable","demangled":false,"offset":16464,"size":8,"space":"relocs"}
|
|
reloc.target._ITM_registerTMCloneTable={"realname":"_ITM_registerTMCloneTable","demangled":false,"offset":16480,"size":8,"space":"relocs"}
|
|
reloc.target.__cxa_finalize={"realname":"__cxa_finalize","demangled":false,"offset":16488,"size":8,"space":"relocs"}
|
|
reloc.target.__gmon_start={"realname":"__gmon_start__","demangled":false,"offset":16472,"size":8,"space":"relocs"}
|
|
reloc.target.__libc_start_main={"realname":"__libc_start_main","demangled":false,"offset":16456,"size":8,"space":"relocs"}
|
|
reloc.target.printf={"realname":"printf","demangled":false,"offset":16448,"size":8,"space":"relocs"}
|
|
section..bss={"realname":"section..bss","demangled":false,"offset":16432,"size":8,"space":"sections"}
|
|
section..data={"realname":"section..data","demangled":false,"offset":16416,"size":16,"space":"sections"}
|
|
section..dynamic={"realname":"section..dynamic","demangled":false,"offset":15864,"size":480,"space":"sections"}
|
|
section..dynstr={"realname":"section..dynstr","demangled":false,"offset":1112,"size":143,"space":"sections"}
|
|
section..dynsym={"realname":"section..dynsym","demangled":false,"offset":944,"size":168,"space":"sections"}
|
|
section..eh_frame={"realname":"section..eh_frame","demangled":false,"offset":8272,"size":236,"space":"sections"}
|
|
section..eh_frame_hdr={"realname":"section..eh_frame_hdr","demangled":false,"offset":8208,"size":60,"space":"sections"}
|
|
section..fini={"realname":"section..fini","demangled":false,"offset":4524,"size":9,"space":"sections"}
|
|
section..fini_array={"realname":"section..fini_array","demangled":false,"offset":15856,"size":8,"space":"sections"}
|
|
section..gnu.hash={"realname":"section..gnu.hash","demangled":false,"offset":904,"size":36,"space":"sections"}
|
|
section..gnu.version={"realname":"section..gnu.version","demangled":false,"offset":1256,"size":14,"space":"sections"}
|
|
section..gnu.version_r={"realname":"section..gnu.version_r","demangled":false,"offset":1272,"size":48,"space":"sections"}
|
|
section..got={"realname":"section..got","demangled":false,"offset":16344,"size":40,"space":"sections"}
|
|
section..got.plt={"realname":"section..got.plt","demangled":false,"offset":16384,"size":32,"space":"sections"}
|
|
section..init={"realname":"section..init","demangled":false,"offset":4096,"size":23,"space":"sections"}
|
|
section..init_array={"realname":"section..init_array","demangled":false,"offset":15848,"size":8,"space":"sections"}
|
|
section..interp={"realname":"section..interp","demangled":false,"offset":792,"size":28,"space":"sections"}
|
|
section..note.ABI_tag={"realname":"section..note.ABI_tag","demangled":false,"offset":872,"size":32,"space":"sections"}
|
|
section..note.gnu.property={"realname":"section..note.gnu.property","demangled":false,"offset":824,"size":48,"space":"sections"}
|
|
section..plt={"realname":"section..plt","demangled":false,"offset":4128,"size":32,"space":"sections"}
|
|
section..plt.got={"realname":"section..plt.got","demangled":false,"offset":4160,"size":8,"space":"sections"}
|
|
section..rela.dyn={"realname":"section..rela.dyn","demangled":false,"offset":1320,"size":192,"space":"sections"}
|
|
section..rela.plt={"realname":"section..rela.plt","demangled":false,"offset":1512,"size":24,"space":"sections"}
|
|
section..rodata={"realname":"section..rodata","demangled":false,"offset":8192,"size":13,"space":"sections"}
|
|
section..text={"realname":"section..text","demangled":false,"offset":4176,"size":347,"space":"sections"}
|
|
segment.DYNAMIC={"realname":"segment.DYNAMIC","demangled":false,"offset":15864,"size":480,"space":"segments"}
|
|
segment.GNU_EH_FRAME={"realname":"segment.GNU_EH_FRAME","demangled":false,"offset":8208,"size":60,"space":"segments"}
|
|
segment.GNU_RELRO={"realname":"segment.GNU_RELRO","demangled":false,"offset":15848,"size":536,"space":"segments"}
|
|
segment.GNU_STACK={"realname":"segment.GNU_STACK","demangled":false,"offset":0,"size":0,"space":"segments"}
|
|
segment.INTERP={"realname":"segment.INTERP","demangled":false,"offset":792,"size":28,"space":"segments"}
|
|
segment.LOAD0={"realname":"segment.LOAD0","demangled":false,"offset":0,"size":1536,"space":"segments"}
|
|
segment.LOAD1={"realname":"segment.LOAD1","demangled":false,"offset":4096,"size":437,"space":"segments"}
|
|
segment.LOAD2={"realname":"segment.LOAD2","demangled":false,"offset":8192,"size":316,"space":"segments"}
|
|
segment.LOAD3={"realname":"segment.LOAD3","demangled":false,"offset":15848,"size":592,"space":"segments"}
|
|
segment.NOTE={"realname":"segment.NOTE","demangled":false,"offset":824,"size":48,"space":"segments"}
|
|
segment.NOTE_1={"realname":"segment.NOTE_1","demangled":false,"offset":872,"size":32,"space":"segments"}
|
|
segment.PHDR={"realname":"segment.PHDR","demangled":false,"offset":64,"size":728,"space":"segments"}
|
|
segment.UNKNOWN={"realname":"segment.UNKNOWN","demangled":false,"offset":824,"size":48,"space":"segments"}
|
|
segment.ehdr={"realname":"segment.ehdr","demangled":false,"offset":0,"size":64,"space":"segments"}
|
|
str.res:__d={"realname":"str.res:__d","demangled":false,"offset":8196,"size":9,"space":"strings"}
|
|
sym._fini={"realname":"_fini","demangled":false,"offset":4524,"size":9,"space":"symbols"}
|
|
sym._init={"realname":"_init","demangled":false,"offset":4096,"size":23,"space":"symbols"}
|
|
sym._start={"realname":"_start","demangled":false,"offset":4176,"size":34,"space":"symbols"}
|
|
sym.imp.__cxa_finalize={"realname":"__cxa_finalize","demangled":false,"offset":4160,"size":6,"space":"imports"}
|
|
sym.imp.printf={"realname":"printf","demangled":false,"offset":4144,"size":6,"space":"imports"}
|
|
sym.leaffunc={"realname":"leaffunc","demangled":false,"offset":4405,"size":7,"space":"symbols"}
|
|
sym.main={"realname":"main","demangled":false,"offset":4469,"size":54,"space":"symbols"}
|
|
sym.varfunc={"realname":"varfunc","demangled":false,"offset":4412,"size":57,"space":"symbols"}
|
|
|
|
/core/flags/spaces
|
|
name=fs
|
|
spacestack=["*"]
|
|
|
|
/core/flags/spaces/spaces
|
|
classes=s
|
|
flirt=s
|
|
functions=s
|
|
imports=s
|
|
platform.ports=s
|
|
registers=s
|
|
registers.extended=s
|
|
registers.mmio=s
|
|
relocs=s
|
|
sections=s
|
|
segments=s
|
|
strings=s
|
|
symbols=s
|
|
|
|
/core/flags/tags
|
|
tag.alloc=malloc free$ calloc kalloc realloc
|
|
tag.dylib=dlopen dlsym dlclose mmap LoadLibrary GetProcAddress
|
|
tag.env=getenv putenv unsetenv setenv GetEnvironmentVariable SetEnvironmentVariable ExpandEnvironmentStrings
|
|
tag.fs=open$ close read$ write CloseHandle FindFirstFileW _wfopen _wstat ftruncate lseek _chsize GetFullPathName realpath RemoveDirectory DeleteFile CreateFile WriteFile UnmapViewOfFile CreateFileMapping MapViewOfFile readlink chmod fchmod chown stat fstat lstat fstatat lstat64 stat64 chflags fchflags lchflags
|
|
tag.network=socket connect bind$ listen accept sendto recvfrom gethostbyname htons ntohs
|
|
tag.process=getpid getppid kill exit abort assert gethostid sethostid sysctl
|
|
tag.stdout=^printf puts write
|
|
tag.string=strcat strcpy strncpy strlen strtok strstr strlcpy asprintf sprintf snprintf
|
|
tag.threads=pthread_create pthread_mutex_init pthread_cond_init CreateThread TerminateThread WaitForSingleObject GetCurrentThreadId
|
|
tag.time=settimeofday gettimeofday time adjtime ctime timed date$ sleep Sleep usleep clock_nanosleep localtime asctime difftime gmtime mktime timelocal timegm tzfile tzset
|
|
|
|
/core/flags/zones
|