* Improve vv visual function browser and add afls to sort function list
* afls->afl+, sort afls help
* afls: new command (the old afls is now named alf+)
* Fix glitch in vv and fix behaviour in vb: and vbF
* add the ability to select column with tab to scroll with jk in disasm
* add colors
* enter seeks to the function
* var list row selector fixed
* format/elf: extract function to avoid duplicated code
* format/elf: use ut64 to avoid errors in ELF32
Otherwise, while analyzing ELF32, -1 will be interpreted as the unsigned
value 0xffffffff, which is very different from -1 (0xffffffffffffffff).
* format/elf: fix symbols with shndx == SHT_NULL
Symbols with shndx == SHT_NULL should not be listed as symbols but they
should be available when other ELF structures (imports, relocs, etc.)
reference them.
This patch adds those symbols in the symbols_by_ord table but not to the
list of available symbols. Imports/relocs/etc. work by indexing symbols
by symbol index, so they are going to use the symbols_by_ord table and
make everything work.
Moreover, it refactors a bit the relocs function to avoid duplicated
code.
* bin: setimportd/setsymbold should clone the import/symbol
* bin/bin.c: free fields only when sym is not NULL
* format/elf: do not filter out symbols with size == 0 and consider sht_null symbols in shdr too.
* bin/bin.c: create R_STR_DUP macro and use it in _clone functions
* format/elf: when parsing symbols from phdr, stop at first UNK type/bind
* create some R_BIN defines to handle strings related to TYPE and BIND
in RBinSymbols
* format/elf: add a doc
* Fix afv commands and other issues
* Honor anal.vars
* Fix some issue in stackop due to inconsistent esil
* Fix afvd printing issue
* Fix vars summary and add afv* to help
* anal/xrefs: more uniform xref type output
* anal/xrefs: reduce confusion of `ax` command
* core/cmd_anal: add commands to add string references
* anal/xrefs: when using radare2 output, ref->at should be the second arg
* core/cmd_anal: remove afx commands, except for listing
Since we removed per-function references, now there are only global
ref/xref info, so there's no need to have per-function commands to
handle refs/xrefs.
* core/canal: use "ax" commands instead of "afx"
* several bugfixes
* Fix xrefs/refs confusion with asm.cmt.refs
* Also check if xref source is valid offset
* Fix ax* to show type of ref
* anal/xrefs: pass the right hashtable to mylistrefs
* r_anal_refs_get should use anal->refs, not anal->xrefs
* anal/fcn: add xref also when there's a CALL to a noreturn function
* projects: use radare2 output of ax command to save/restore xrefs
* core/cmd_anal: when analyzing calls, we should use REF_TYPE_CALL
* core/canal: use xrefs API, because the list is a just a copy
* core/canal: rename "loc." entries to "fcn." when a CALL is found
* sort xrefs to make results consistent
* core/canal: avoid recomputing function every time during `aan`
* anal: move fcn_refs/xrefs functions to the xrefs.c file
* core/canal.c: avoid iterating fcn xrefs list
* anal/xrefs: compute fcn xrefs by analyzing fcn addresses
* remove other unused functions
* anal/xrefs: remove fcn_xrefs_add and fcn_xrefs_deln
* anal/xrefs: remove old fcn->refs/xrefs
* anal/xrefs: directly store RAnalRef objects in the hash table
* libr: prevent memory leaks when using refs/xrefs
* anal/xrefs: merge anal/ref and anal/xref and clean API
Big xrefs/refs refactoring that provides a more uniform and simple API.
It avoids changes to refs/xrefs except through the API and it keeps all
xrefs/refs info in one single place, to improve consistency.
Thanks to:
Riccardo Schirone <sirmy15@gmail.com>
pancake <pancake@nopcode.org>
rene <rlaemmert@gmail.com>