mirror of
https://github.com/radareorg/radare2.git
synced 2024-12-05 20:17:43 +00:00
b6cc9ca1ba
* Display filename in title line of Visual mode --HG-- rename : libr/meta/README => libr/anal/README.meta rename : libr/meta/meta.c => libr/anal/meta.c rename : libr/meta/t/test.c => libr/anal/t/test_meta.c rename : libr/meta/type.c => libr/anal/type.c
42 lines
1.3 KiB
Plaintext
42 lines
1.3 KiB
Plaintext
RMeta api
|
|
=========
|
|
|
|
-- zignature stuff --
|
|
* zf name fmt define function zignature (fast/slow, args, types)
|
|
|
|
** xrefs stuff should be delegated to the flags? (dont think so..)
|
|
- we can generate xrefs metadata from flags analysis
|
|
- we can use r_meta as 'static storage' and flags as playground.
|
|
** data_* api should be refactored to use less functions with more
|
|
flexible arguments.
|
|
|
|
What we need:
|
|
- a database of data types
|
|
Ct char* 4 z
|
|
Ct void 0
|
|
Ct int 4 d
|
|
Ct ut32 4 x
|
|
Ct ut64 8 q
|
|
- a database of function signatures
|
|
CFt printf void=char*,...
|
|
CFt puts int=char*
|
|
CFt system int=char*
|
|
CFt exit void=int
|
|
- to store on each function
|
|
- fastcall ?
|
|
- local { vars, args } + type + arraysize + name
|
|
- framesize (should be detected by the code analysis
|
|
- casting between types
|
|
- signed/unsigned
|
|
- different size
|
|
- all cast operations must be supported?
|
|
- serialization/deserialization of strings into structures
|
|
|
|
* We need a way to follow a variable access along the function flow
|
|
- r_anal_access (RAnal, RAnalFcn, RAnalOp);
|
|
- analyze opcode to update function vars/args accesses and determine function calls..
|
|
- to determine it's type and if it's stored in a register or pushed
|
|
in the stack before being used
|
|
- RAnalVar r_anal_var_from_value(RAnal, RFunction fun, RValue *val);
|
|
- return a variable reference for a variable
|