| _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
 |