af[?]
analyze Functions
af ([name]) ([addr])
analyze functions (start at addr or $$)-
af+ addr name [type] [diff]
hand craft a function (requires afb+) -
af- [addr]
clean all function analysis data (or function at addr) afb+ fcnA bbA sz [j] [f] ([t]( [d]))
add bb to function @ fcnaddr-
afb[?] [addr]
List basic blocks of given function afB [bits]
set current function as thumb (change asm.bits)-
afC[lc] ([addr])@[addr]
calculate the Cycles (afC) or Cyclomatic Complexity (afCc) -
afc[?] type @[addr]
set calling convention for function afd [addr]
show function + delta for given offset-
aff
re-adjust function boundaries to fit -
afF[1|0|]
fold/unfold/toggle -
afi [addr|fcn.name]
show function(s) information (verbose afl)-
🚀
afi[j]
Get various information about a function including size, call-convention, call references local variables, args etc Example asciinema
-
-
afl[?] [l*] [fcn name]
list functions (addr, size, bbs, name) (see afll) -
afo [fcn.name]
show address for the function named like this -
afm name
merge two functions -
afM name
print functions map -
afn[?] name [addr]
rename name for function at address (change flag too) -
afna
suggest automatic name for current offset afr ([name]) ([addr])
analyze functions recursively-
afr <new_name> @ <potential_function_addr>
will mark \<addr> as the \<new_name> function and do the recurrent analysis
-
afs [addr] [fcnsign]
get/set function signature at current addressafS[stack_size]
set stack frame size for function at current addressafu [addr]
resize and analyze function from current address until addr-
afu
can be used to define both the start and end of a function when manually defining a function
-
-
aft[?]
type matching, type propagation -
afv[bsra]?
manipulate args, registers and variables in -
afx[cCd-] src dst
add/remove code/Call/data/string reference afxj
af afr af+ af- afb+ afB afC afc aff afF afi afl afo afm afM afn afna afs afS afu aft afv afx