| _format [Java.Lang] | format
|
A | |
| access_coarse_location [Android.Permission] | android.permission.ACCESS_COARSE_LOCATION
|
| access_fine_location [Android.Permission] | android.permission.ACCESS_FINE_LOCATION
|
| access_link [Instr] |
which
Instr.link_sort does this Instr.opcode access to?
|
| access_network_state [Android.Permission] | android.permission.ACCESS_NETWORK_STATE
|
| activity [Android.Preference] | android.preference.PreferenceActivity
|
| activity [Android.App] | android.app.Activity
|
| add [Dataflow.SCHEDULER] |
add the given
Dataflow.SCHEDULER.st into the scheduler
|
| add_interface [Modify] |
add an interface to a class.
|
| all [Ctrlflow.CTRLFLOW] |
all statements
|
| append [Java.Lang] | append
|
| appended [Android.Net] | withAppendedPath
|
| appended [Android.Content] | withAppendedId
|
| application [Android.App] | android.app.Application
|
B | |
| b [Java] | byte
|
| begins_with [Util] | true if the given string begins with the given prefix
|
| bot [Dataflow.LATTICE] | BOTTOM of the lattice
|
| bundle [Android.OS] | android.os.Bundle
|
C | |
| c [Java] | char
|
| calc_this [Dex] |
calculate a register number that holds
this pointer
|
| call_trace [Modify] |
trace call stack by modifying methods of specific classes in the dex
|
| callers [Callgraph] |
find callers for the given method, with a certain depth
|
| cdom [Ctrlflow] |
longest common dominators
|
| cfg2dot [Ctrlflow] |
print control-flow graph in dot format
|
| cg2dot [Callgraph] |
print
Callgraph.cg in dot format
|
| change_network_state [Android.Permission] | android.permission.CHANGE_NETWORK_STATE
|
| chk_perm [Android.Content.PM] | checkPermission
|
| chk_perm [Android.Content] | checkCallingOrSelfPermission
|
| clinit [Java] | <clinit>
|
| cls [Java.Lang] | java.lang.Class
|
| combine [Combine] |
combine two DEX binaries
|
| compare [Dataflow.LATTICE] |
partial order between
Dataflow.LATTICE.ls
|
| compare [Util.IntKey] | |
| con_serv [Android.Content] | android.content.Context.CONNECTIVITY_SERVICE
|
| concat [Java.Lang] | concat
|
| context [Android.Content] | android.content.Context
|
| cpdom [Ctrlflow] |
longest common post dominators
|
| cursor [Android.Database] | android.database.Cursor
|
D | |
| d [Java] | double
|
| d [Log] | debug
|
| dependants [Callgraph] |
find dependent classes for the given class
|
| discard_cls [Modify] |
discard anythings related to specific classes
|
| dom2dot [Ctrlflow] |
print dominator tree in dot format
|
| doms [Ctrlflow] |
compute block-level dominance relations for given
Ctrlflow.cfg
|
| dump [Dump] |
dump dex binary for given file name
|
E | |
| empty_citm [Dex] |
empty
Dex.code_item
|
| empty_dex [Dex] |
empty
Dex.dex
|
| empty_section [Dex] |
empty
Dex.section
|
| endian_to_str [Dex] | string representation of Dex.endian
|
| explode [Util] |
split a
string into a list of chars
|
F | |
| f [Java] | float
|
| find_str [Dex] |
find string id for given
string,
Dex.no_idx unless found
|
| find_ty_str [Dex] |
find type id for given
string,
Dex.no_idx unless found
|
| fixed_pt [Dataflow.ANALYSIS] |
calculate fixed point
|
| fld_comp [Dex] |
comparator for field signatures: field name and type
|
G | |
| generate_documentation [Htmlunparse] |
Generate HTML output
|
| getHost [Android.Net] | getHost
|
| get_argv [Dex] |
get a
list of arguments for given method
|
| get_argv [Instr] |
retrieve actual parameters,
e.g.
|
| get_cdata [Dex] | |
| get_cdef [Dex] |
get
Dex.class_def_item for given class id,
raise Not_found unless found
|
| get_cid [Dex] |
get class id from name,
Dex.no_idx unless found
|
| get_cid_from_fid [Dex] |
get class id from field id
|
| get_cid_from_mid [Dex] |
get class id from method id
|
| get_citm [Dex] | |
| get_class_name [Java] |
from
Ljava/lang/Object; to Object
|
| get_cls [Java.Lang] | getClass
|
| get_col_idx [Android.Database] | getColumnIndex
|
| get_col_idx_e [Android.Database] | getColumnIndexOrThrow
|
| get_data_item [Dex] |
get
Dex.data_item for given offset
|
| get_emtd [Dex] |
get
Dex.encoded_method for given class and method,
raise Dex.Wrong_dex if such method is not defined
|
| get_fit [Dex] |
get
Dex.field_id_item for given field id
|
| get_fldS [Dex] |
get all fields, along with ids, for given class and superclasses
|
| get_fld_name [Dex] |
get name for given field
|
| get_flds [Dex] |
get all fields, along with ids, for given class
|
| get_fst_ins [Modify] |
get the first
Instr.instr
|
| get_ins [Dex] | |
| get_interfaces [Dex] |
get implemented interfaces of a given class
|
| get_last_ins [Ctrlflow] |
get the last instruction
|
| get_mit [Dex] |
get
Dex.method_id_item for given method id
|
| get_mtdS [Dex] |
get all methods, along with ids, for given class and superclasses
|
| get_mtd_name [Dex] |
get name for given method
|
| get_mtds [Dex] |
get all methods, along with ids, for given class
|
| get_name [Java.Lang] | getName
|
| get_off [Dex] |
obtain 32-bits offset from
Off
|
| get_package_name [Java] |
from
Ljava/lang/Object; to java.lang
|
| get_pit [Dex] |
get
Dex.proto_id_item for a given method.
|
| get_rety [Dex] |
get return type for given method
|
| get_stk [Java.Lang] | getStackTrace
|
| get_str [Dex] | |
| get_superclass [Dex] |
get superclass id for given class,
Dex.no_idx if it's at the top level
|
| get_superclasses [Dex] |
get superclasses for a given class.
|
| get_supermethod [Dex] |
get overriden method at the superclass for given class and method,
Dex.no_idx unless overridable
|
| get_sys_serv [Android.Content] | getSystemService
|
| get_the_fld [Dex] |
get the specific field of given class and given field name
|
| get_the_mtd [Dex] |
get the specific method of given class and given method name
|
| get_the_mtd_shorty [Dex] |
get the specific method of given class, method name,
and shorty descriptor (useful for overloading)
|
| get_ty_lst [Dex] | |
| get_ty_str [Dex] |
get type name for given type id
|
H | |
| hasNext [Dataflow.SCHEDULER] | true if it has a next Dataflow.SCHEDULER.st
|
| hello [Modify] |
API test
|
| hx_to_op [Instr] |
hex to
Instr.opcode
|
| hx_to_op_and_size [Instr] |
hex to
Instr.opcode and size
|
I | |
| i [Java] | int
|
| i [Log] | info
|
| idom [Ctrlflow] |
immediate dominator according to dominance relations
|
| idx2opr [Dex] |
from
Idx to OPR_INDEX
|
| iitf [Android.OS] | android.os.IInterface
|
| implements [Modify] | true, adding an abstract method if given class doesn't implement it
|
| in_hierarchy [Dex] |
check that some property (given as a function
Dex.link to bool)
holds in hierarchy starting from the given class
|
| init [Dataflow.DATAFLOW] |
initial
Dataflow.LATTICE.l
|
| init [Java] | <init>
|
| inn [Dataflow.ANALYSIS] |
return
IN for the given Dataflow.ANALYSIS.st
|
| insrt_citm [Dex] |
insert
Dex.code_item into the data pool
|
| insrt_data [Dex] |
insert
Dex.data_item into the data pool
|
| insrt_ins [Modify] |
insert an instruction at
Modify.cursor point; Modify.cursor would be advanced
|
| insrt_ins [Dex] |
insert
Instr.instr into the data pool
|
| insrt_insns [Modify] |
insert instructions at
Modify.cursor point: Modify.cursor will be advanced
|
| insrt_insns_after_end [Modify] |
insert instructions after the end of some
Dex.code_item
|
| insrt_insns_after_start [Modify] |
insert instructions after the start of some
Dex.code_item
|
| insrt_insns_before_end [Modify] |
insert instructions before the end of some
Dex.code_item
|
| insrt_insns_before_start [Modify] |
insert instructions before the start of some
Dex.code_item
|
| insrt_return_void [Modify] |
insert
Instr.rv at the end of the method
|
| insrt_str [Dex] |
insert
string into the data pool
|
| insrt_stt [Dex] |
insert
STATIC_VALUE into the data pool
|
| insrt_ty_lst [Dex] |
insert
TYPE_LIST into the data pool
|
| instr_to_bytes [Instr] |
according to given base address, translate
Instr.instr to bytes
|
| instr_to_string [Instr] | Instr.instr to string
|
| internet [Android.Permission] | android.permission.INTERNET
|
| ipdom [Ctrlflow] |
immediate post dominator according to post dominace realtions
|
| is_abstract [Android] | true if given method is abstract
|
| is_ins [Dex] | true if the item for given offset is Instr.instr
|
| is_interface [Dex] | true if ACC_INTERFACE is set
|
| is_key_abstract [Android.View.KeyEvent] | true if given method is one of KeyEvent abstracts
|
| is_library [Android] | true if given class is Android library
|
| is_library [Java] | true if given class is Java library
|
| is_menu_abstract [Android.View.MenuItem] | true if given method is one of MenuItem abstracts
|
| is_shorty_descr [Java] | true if given string is fit for shorty description
|
| is_superclass [Dex] |
check whether some class is a superclass (up through the hierarchy)
of a given class.
|
| is_type_descr [Java] | true if given string is fit for type description
|
| is_view_abstract [Android.View] | true if given method is one of View abstracts
|
| isoc [Java.Net] | java.net.InetSocketAddress
|
| iter [Visitor] | |
J | |
| j [Java] | long
|
K | |
| key [Android.View] | android.view.KeyEvent
|
L | |
| last [Ctrlflow.CTRLFLOW] |
last statement
|
| loc_serv [Android.Content] | android.content.Context.LOCATION_SERVICE
|
| log [Android.Util] | android.util.Log
|
| low_reg [Instr] |
number of "low" registers, registers numbers higher
than this must be moved to a low register before they
can be used for some instructions.
|
| lower [Java.Lang] | toLowerCase
|
M | |
| machine_instr_to_str [Dex] |
get
string notation of given Dex.state_machine_instr
|
| main [Main] | |
| make_cfg [Ctrlflow] |
make control-flow graph for given
Dex.code_item
|
| make_cg [Callgraph] |
make call graph for overall
Dex.dex file
|
| make_class_overridable [Modify] |
rip off the
final qualifier on Dex.class_def_item
|
| make_dfa [Propagation] |
make constant propagation analysis
|
| make_dfa [Liveness] |
make liveness analysis
|
| make_instr [Instr] | |
| make_method_overridable [Modify] |
rip off the
final qualifer on Dex.encoded_method
|
| manager [Android.Location] | android.location.LocationManager
|
| meet [Dataflow.LATTICE] |
meet operator
|
| menu [Android.View] | android.view.MenuItem
|
| modify [Logging] |
instrument logging features into the dex.
|
| mtd_comp [Dex] |
comparator for method signatures: method name, return type, and arguments
|
| mtd_comp_relaxed [Dex] |
comparator for method signatures: method name, return type, and arguments,
but ignore the package name for return types and arguments.
|
N | |
| new_arr [Instr] |
for a given destination register, size, and type,
generate a new
OP_NEW_ARRAY Instr.instr
|
| new_arr_op [Instr] |
for a given value, array, index registers,
generate a new
OP_A(GET|PUT)-kind Instr.instr
|
| new_class [Modify] |
add a new class definition;
pass superclass name, its name, and
Dex.access_flags
|
| new_const [Instr] |
for given a register number and constant,
generate
OP_CONST-kind Instr.instr
|
| new_const_id [Instr] |
for given register number and string or class id,
generate
OP_CONST-kind Instr.instr
|
| new_field [Modify] |
add a new field definition;
pass class id, its name,
Dex.access_flags, and type
|
| new_invoke [Instr] | |
| new_method [Modify] |
add a new method definition;
pass class id, its name,
Dex.access_flags, return type, and arguments
|
| new_move [Instr] |
for a given source and destination register,
generate a new
OP_MOVE-kind Instr.instr
|
| new_move_result [Instr] |
for given hex code and register number,
generate
OP_MOVE_RESULT-kind Instr.instr
|
| new_obj [Instr] |
for a given destination register and type,
generate a new
OP_NEW_INSTANCE Instr.instr
|
| new_return [Instr] | |
| new_str [Modify] |
add a new
string
|
| new_stt_fld [Instr] |
for given register number and static field id,
generate
OP_S(GET|PUT)-kind Instr.instr
|
| new_ty [Modify] |
add a new type
|
| next [Modify] |
next instruction
|
| next [Dataflow.SCHEDULER] |
return the next available
Dataflow.SCHEDULER.st
|
| no_idx [Dex] |
wrapping
Dex.no_index with Idx
|
| no_index [Dex] |
0xffffffff (= -1 if signed int)
|
| no_off [Dex] |
wrapping
Dex.no_offset with Off
|
| no_offset [Dex] |
0x00000000
|
O | |
| obj [Java.Lang] | java.lang.Object
|
| of_i [Log] |
from
int to string
|
| of_idx [Dex] |
unwrapping
Idx
|
| of_java_ty [Java] |
from
Ljava/lang/Object; to java.lang.Object
|
| of_off [Dex] |
unwrapping
Off
|
| of_type_code [Dex] |
get
int value of given Dex.type_code
|
| of_type_descr [Java] |
from type description
|
| off2opr [Dex] |
from
Off to OPR_OFFSET
|
| onClick [Android.View] | onClick
|
| onCreate [Android.App] | onCreate
|
| onDestroy [Android.App] | onDestroy
|
| onKey [Android.View] | onKey
|
| onKeyDown [Android.View.KeyEvent] | onKeyDown
|
| onKeyLongPress [Android.View.KeyEvent] | onKeyLongPress
|
| onKeyMultiple [Android.View.KeyEvent] | onKeyMultiple
|
| onKeyUp [Android.View.KeyEvent] | onKeyUp
|
| onLongClick [Android.View] | onLongClick
|
| onMenuItemClick [Android.View.MenuItem] | onMenuItemClick
|
| onOptionsItemSelected [Android.App] | onOptionsItemSelected
|
| onPause [Android.App] | onPause
|
| onResume [Android.App] | onResume
|
| onTouch [Android.View] | onTouch
|
| op_to_hx [Instr] | Instr.opcode to hex
|
| op_to_hx_and_size [Instr] | Instr.opcode to hex and size
|
| op_to_string [Instr] | Instr.opcode to string
|
| opr2idx [Dex] |
from
OPR_INDEX to Idx
|
| opr2off [Dex] |
from
OPR_OFFSET to Off
|
| opr_to_string [Instr] | Instr.operand to string
|
| out [Dataflow.ANALYSIS] |
return
OUT for the given Dataflow.ANALYSIS.st
|
| override [Modify] | true, adding an overriding method if given class doesn't override it
|
| own_the_fld [Dex] | true if the class owns the field
|
| own_the_mtd [Dex] | true if the class owns the method
|
P | |
| parse [Android.Net] | parse
|
| parse [Parse] |
parse DEX binary
in_channel into Dex.dex
|
| pdom2dot [Ctrlflow] |
print post dominator tree in dot format
|
| pdoms [Ctrlflow] |
compute block-level post dominace relations for given
Ctrlflow.cfg
|
| pkg [Java.Lang] | java.lang.Package
|
| pm [Android.Content.PM] | android.content.pm.PackageManager
|
| pred [Ctrlflow.CTRLFLOW] |
predecessors
|
| prev [Modify] |
previous instruction
|
| print_classes [Unparse] |
print all the class names occurred in DEX file
|
| print_info [Unparse] |
print basic infomation about DEX file
|
| print_method [Unparse] |
print
Dex.code_item as a method
|
| provider [Android.Content] | android.content.ContentProvider
|
| ps [Java.IO] | java.io.PrintStream
|
| pub [Dex] | ACC_FOR_PUBLIC
|
| pwr_serv [Android.Content] | android.content.Context.POWER_SERVICE
|
Q | |
| query [Android.Content] | query
|
| query [Android.App] | managedQuery
|
R | |
| range [Util] |
tail-recursive version of python-like range
|
| read_contacts [Android.Permission] | android.permission.READ_CONTACTS
|
| read_lines [Util] |
read each line from
in_channel
|
| read_phone_state [Android.Permission] | android.permission.READ_PHONE_STATE
|
| replace_str [Modify] |
replace old
string with new one;
true if replaced, false if newly added
|
| report_str_repl_cnt [Modify] |
report
string replacement counts
|
| rm_data [Dex] |
remove
Dex.data_item in the data pool
|
| rm_ins [Modify] |
remove an instruction at
Modify.cursor point; Modify.cursor would remain as same
|
| rv [Instr] |
void return
|
S | |
| s [Java] | short
|
| sbd [Java.Lang] | java.lang.StringBuilder
|
| seed_addr [Modify] |
set the start address for fresh ones
|
| service [Android.App] | android.app.Service
|
| set_level [Log] |
set logging level
|
| split_string [Util] |
split a
string into a list of strings, with separator split
|
| spub [Dex] | ACC_STATIC along with Dex.pub
|
| start [Ctrlflow.CTRLFLOW] |
starting statement
|
| stk [Java.Lang] | java.lang.StackTraceElement
|
| str [Java.Lang] | java.lang.String
|
| str_to_endian [Dex] |
obtain
Dex.endian from string representation
|
| subst_cls [Modify] |
substitute the given class usage into the new one
|
| succ [Ctrlflow.CTRLFLOW] |
successors
|
| sys [Java.Lang] | java.lang.System
|
T | |
| thr [Java.Lang] | java.lang.Throwable
|
| to_acc_flag [Dex] |
make
int representation from bitfields of Dex.access_flag
|
| to_idx [Dex] |
wrapping with
Idx
|
| to_java_ty [Java] |
from
java.lang.Object to Ljava/lang/Object;
|
| to_map [Propagation] |
retrieve a register-value mapping
|
| to_module [Ctrlflow] |
make
Ctrlflow.cfg_module type module using Ctrlflow.cfg
|
| to_off [Dex] |
wrapping with
Off
|
| to_s [Dataflow.LATTICE] |
convert
Dataflow.LATTICE.l to string
|
| to_s [Dataflow.ANALYSIS] |
same as
Dataflow.LATTICE.to_s
|
| to_s [Ctrlflow.CTRLFLOW] |
for debugging
|
| to_s [Java.Lang] | toString
|
| to_shorty_descr [Java] |
to shorty description
|
| to_type_code [Dex] |
convert
int to corresponding Dex.type_code
|
| to_type_descr [Java] |
to type description
|
| top [Dataflow.LATTICE] | TOP of the lattice
|
| trans [Dataflow.DATAFLOW] |
transfer function
|
| trim_1st [Util] |
trim the 1st character
|
| trim_last [Util] |
trim the last character
|
| ty_comp [Dex] |
comparator for type ids
|
| ty_lst_comp [Dex] |
comparator for a
list of type ids
|
| ty_lst_comp_relaxed [Dex] |
comparator for a
list of type ids,
but ignore the package name for types.
|
| type_code_to_str [Dex] |
get
string notation of given Dex.type_code
|
U | |
| unparse [Unparse] |
print
Dex.dex in YAML format
|
| update_reg_usage [Modify] |
update register usage:
registers_size and outs_size
|
| upper [Java.Lang] | toUpperCase
|
| uri [Android.Net] | android.net.Uri
|
| uri [Android.Content] | content://com.android.contacts
|
| uri_reqs [Java.Apache] | classs that implement org.apache.http.client.methods.HttpUriRequest
|
| uris [Android.Content] | android.content.ContentUris
|
V | |
| v [Java] | void
|
| v [Log] | verbose
|
| v_of [Java.Lang] | valueOf
|
| view [Android.View] | android.view.View
|
W | |
| w [Log] | warn
|
| write_settings [Android.Permission] | android.permission.WRITE_SETTINGS
|
Z | |
| z [Java] | boolean
|