androguard.decompiler.dad package¶
Submodules¶
androguard.decompiler.dad.dast module¶
This file is a simplified version of writer.py that outputs an AST instead of source code.
-
class
androguard.decompiler.dad.dast.
JSONWriter
(graph, method)¶ Bases:
object
-
add
(val)¶
-
get_ast
()¶
-
get_cond
(node)¶
-
visit_cond_node
(cond)¶
-
visit_ins
(op)¶
-
visit_loop_node
(loop)¶
-
visit_node
(node)¶
-
visit_return_node
(ret)¶
-
visit_statement_node
(stmt)¶
-
visit_switch_node
(switch)¶
-
visit_throw_node
(throw)¶
-
visit_try_node
(try_node)¶
-
-
androguard.decompiler.dad.dast.
array_access
(arr, ind)¶
-
androguard.decompiler.dad.dast.
array_creation
(tn, params, dim)¶
-
androguard.decompiler.dad.dast.
array_initializer
(params, tn=None)¶
-
androguard.decompiler.dad.dast.
assignment
(lhs, rhs, op='')¶
-
androguard.decompiler.dad.dast.
binary_infix
(op, left, right)¶
-
androguard.decompiler.dad.dast.
cast
(tn, arg)¶
-
androguard.decompiler.dad.dast.
dummy
(*args)¶
-
androguard.decompiler.dad.dast.
expression_stmt
(expr)¶
-
androguard.decompiler.dad.dast.
field_access
(triple, left)¶
-
androguard.decompiler.dad.dast.
if_stmt
(cond_expr, scopes)¶
-
androguard.decompiler.dad.dast.
jump_stmt
(keyword)¶
-
androguard.decompiler.dad.dast.
literal
(result, tt)¶
-
androguard.decompiler.dad.dast.
literal_bool
(b)¶
-
androguard.decompiler.dad.dast.
literal_class
(desc)¶
-
androguard.decompiler.dad.dast.
literal_double
(f)¶
-
androguard.decompiler.dad.dast.
literal_float
(f)¶
-
androguard.decompiler.dad.dast.
literal_hex_int
(b)¶
-
androguard.decompiler.dad.dast.
literal_int
(b)¶
-
androguard.decompiler.dad.dast.
literal_long
(b)¶
-
androguard.decompiler.dad.dast.
literal_null
()¶
-
androguard.decompiler.dad.dast.
literal_string
(s)¶
-
androguard.decompiler.dad.dast.
local
(name)¶
-
androguard.decompiler.dad.dast.
local_decl_stmt
(expr, decl)¶
-
androguard.decompiler.dad.dast.
loop_stmt
(isdo, cond_expr, body)¶
-
androguard.decompiler.dad.dast.
method_invocation
(triple, name, base, params)¶
-
androguard.decompiler.dad.dast.
parenthesis
(expr)¶
-
androguard.decompiler.dad.dast.
parse_descriptor
(desc)¶
-
androguard.decompiler.dad.dast.
return_stmt
(expr)¶
-
androguard.decompiler.dad.dast.
statement_block
()¶
-
androguard.decompiler.dad.dast.
switch_stmt
(cond_expr, ksv_pairs)¶
-
androguard.decompiler.dad.dast.
throw_stmt
(expr)¶
-
androguard.decompiler.dad.dast.
try_stmt
(tryb, pairs)¶
-
androguard.decompiler.dad.dast.
typen
(baset, dim)¶
-
androguard.decompiler.dad.dast.
unary_postfix
(left, op)¶
-
androguard.decompiler.dad.dast.
unary_prefix
(op, left)¶
-
androguard.decompiler.dad.dast.
var_decl
(typen, var)¶
-
androguard.decompiler.dad.dast.
visit_arr_data
(value)¶
-
androguard.decompiler.dad.dast.
visit_decl
(var, init_expr=None)¶
-
androguard.decompiler.dad.dast.
visit_expr
(op)¶
-
androguard.decompiler.dad.dast.
visit_ins
(op, isCtor=False)¶
-
androguard.decompiler.dad.dast.
write_inplace_if_possible
(lhs, rhs)¶
androguard.decompiler.dad.basic_blocks module¶
-
class
androguard.decompiler.dad.basic_blocks.
BasicBlock
(name, block_ins)¶ Bases:
androguard.decompiler.dad.node.Node
-
add_ins
(new_ins_list)¶
-
add_variable_declaration
(variable)¶
-
get_ins
()¶
-
get_loc_with_ins
()¶
-
number_ins
(num)¶
-
remove_ins
(loc, ins)¶
-
set_catch_type
(_type)¶
-
-
class
androguard.decompiler.dad.basic_blocks.
CatchBlock
(node)¶ Bases:
androguard.decompiler.dad.basic_blocks.BasicBlock
-
visit
(visitor)¶
-
visit_exception
(visitor)¶
-
-
class
androguard.decompiler.dad.basic_blocks.
CondBlock
(name, block_ins)¶ Bases:
androguard.decompiler.dad.basic_blocks.BasicBlock
-
neg
()¶
-
update_attribute_with
(n_map)¶
-
visit
(visitor)¶
-
visit_cond
(visitor)¶
-
-
class
androguard.decompiler.dad.basic_blocks.
Condition
(cond1, cond2, isand, isnot)¶ Bases:
object
-
get_ins
()¶
-
get_loc_with_ins
()¶
-
neg
()¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.basic_blocks.
LoopBlock
(name, cond)¶ Bases:
androguard.decompiler.dad.basic_blocks.CondBlock
-
get_ins
()¶
-
get_loc_with_ins
()¶
-
neg
()¶
-
update_attribute_with
(n_map)¶
-
visit
(visitor)¶
-
visit_cond
(visitor)¶
-
-
class
androguard.decompiler.dad.basic_blocks.
ReturnBlock
(name, block_ins)¶ Bases:
androguard.decompiler.dad.basic_blocks.BasicBlock
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.basic_blocks.
ShortCircuitBlock
(name, cond)¶ Bases:
androguard.decompiler.dad.basic_blocks.CondBlock
-
get_ins
()¶
-
get_loc_with_ins
()¶
-
neg
()¶
-
visit_cond
(visitor)¶
-
-
class
androguard.decompiler.dad.basic_blocks.
StatementBlock
(name, block_ins)¶ Bases:
androguard.decompiler.dad.basic_blocks.BasicBlock
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.basic_blocks.
SwitchBlock
(name, switch, block_ins)¶ Bases:
androguard.decompiler.dad.basic_blocks.BasicBlock
-
add_case
(case)¶
-
copy_from
(node)¶
-
order_cases
()¶
-
update_attribute_with
(n_map)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.basic_blocks.
ThrowBlock
(name, block_ins)¶ Bases:
androguard.decompiler.dad.basic_blocks.BasicBlock
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.basic_blocks.
TryBlock
(node)¶ Bases:
androguard.decompiler.dad.basic_blocks.BasicBlock
-
add_catch_node
(node)¶
-
property
num
¶
-
visit
(visitor)¶
-
-
androguard.decompiler.dad.basic_blocks.
build_node_from_block
(block, vmap, gen_ret, exception_type=None)¶
androguard.decompiler.dad.control_flow module¶
-
androguard.decompiler.dad.control_flow.
catch_struct
(graph, idoms)¶
-
androguard.decompiler.dad.control_flow.
derived_sequence
(graph)¶ Compute the derived sequence of the graph G The intervals of G are collapsed into nodes, intervals of these nodes are built, and the process is repeated iteratively until we obtain a single node (if the graph is not irreducible)
-
androguard.decompiler.dad.control_flow.
identify_structures
(graph, idoms)¶
-
androguard.decompiler.dad.control_flow.
if_struct
(graph, idoms)¶
-
androguard.decompiler.dad.control_flow.
intervals
(graph)¶ Compute the intervals of the graph Returns interval_graph: a graph of the intervals of G interv_heads: a dict of (header node, interval)
-
androguard.decompiler.dad.control_flow.
loop_follow
(start, end, nodes_in_loop)¶
-
androguard.decompiler.dad.control_flow.
loop_struct
(graphs_list, intervals_list)¶
-
androguard.decompiler.dad.control_flow.
loop_type
(start, end, nodes_in_loop)¶
-
androguard.decompiler.dad.control_flow.
mark_loop
(graph, start, end, interval)¶
-
androguard.decompiler.dad.control_flow.
mark_loop_rec
(graph, node, s_num, e_num, interval, nodes_in_loop)¶
-
androguard.decompiler.dad.control_flow.
short_circuit_struct
(graph, idom, node_map)¶
-
androguard.decompiler.dad.control_flow.
switch_struct
(graph, idoms)¶
-
androguard.decompiler.dad.control_flow.
update_dom
(idoms, node_map)¶
-
androguard.decompiler.dad.control_flow.
while_block_struct
(graph, node_map)¶
androguard.decompiler.dad.dataflow module¶
-
class
androguard.decompiler.dad.dataflow.
DummyNode
(name)¶ Bases:
androguard.decompiler.dad.node.Node
-
get_loc_with_ins
()¶
-
-
androguard.decompiler.dad.dataflow.
build_def_use
(graph, lparams)¶ Builds the Def-Use and Use-Def (DU/UD) chains of the variables of the method.
-
androguard.decompiler.dad.dataflow.
clear_path
(graph, reg, loc1, loc2)¶ Check that the path from loc1 to loc2 is clear. We have to check that there is no side effect between the two location points. We also have to check that the variable reg is not redefined along one of the possible pathes from loc1 to loc2.
-
androguard.decompiler.dad.dataflow.
clear_path_node
(graph, reg, loc1, loc2)¶
-
androguard.decompiler.dad.dataflow.
dead_code_elimination
(graph, du, ud)¶ Run a dead code elimination pass. Instructions are checked to be dead. If it is the case, we remove them and we update the DU & UD chains of its variables to check for further dead instructions.
-
androguard.decompiler.dad.dataflow.
group_variables
(lvars, DU, UD)¶
-
androguard.decompiler.dad.dataflow.
place_declarations
(graph, dvars, du, ud)¶
-
androguard.decompiler.dad.dataflow.
reach_def_analysis
(graph, lparams)¶
-
androguard.decompiler.dad.dataflow.
register_propagation
(graph, du, ud)¶ Propagate the temporary registers between instructions and remove them if necessary. We process the nodes of the graph in reverse post order. For each instruction in the node, we look at the variables that it uses. For each of these variables we look where it is defined and if we can replace it with its definition. We have to be careful to the side effects some instructions may have. To do the propagation, we use the computed DU and UD chains.
-
androguard.decompiler.dad.dataflow.
split_variables
(graph, lvars, DU, UD)¶
-
androguard.decompiler.dad.dataflow.
update_chain
(graph, loc, du, ud)¶ Updates the DU chain of the instruction located at loc such that there is no more reference to it so that we can remove it. When an instruction is found to be dead (i.e it has no side effect, and the register defined is not used) we have to update the DU chain of all the variables that may me used by the dead instruction.
androguard.decompiler.dad.decompile module¶
-
class
androguard.decompiler.dad.decompile.
DvClass
(dvclass, vma)¶ Bases:
object
This is a wrapper for
ClassDefItem
inside the decompiler.At first,
methods
contains a list ofEncodedMethods
, which are successively replaced byDvMethod
in the process of decompilation.-
get_ast
()¶
-
get_methods
()¶
-
get_source
()¶
-
get_source_ext
()¶
-
process
(doAST=False)¶
-
process_method
(num, doAST=False)¶
-
show_source
()¶
-
-
class
androguard.decompiler.dad.decompile.
DvMachine
(name)¶ Bases:
object
Wrapper class for a Dalvik Object, like a DEX or ODEX file.
The wrapper allows to take a Dalvik file and get a list of Classes out of it. The
DvMachine
can take either an APK file directly, where all DEX files from the multidex are used, or a single DEX or ODEX file as an argument.At first,
classes
contains onlyClassDefItem
as values. Then these objects are replaced byDvClass
items successively.-
get_ast
()¶ Processes each class with AST enabled and returns a dictionary with all single ASTs Classnames as keys.
- Returns
an dictionary for all classes
- Return type
dict
-
get_class
(class_name)¶ Return the
DvClass
with the given nameThe name is partially matched against the known class names and the first result is returned. For example, the input foobar will match on Lfoobar/bla/foo;
- Parameters
class_name (str) –
- Returns
the class matching on the name
- Return type
-
get_classes
()¶ Return a list of classnames contained in this machine. The format of each name is Lxxx;
- Returns
list of class names
-
process_and_show
()¶ Run
process()
andshow_source()
after each other.
-
-
class
androguard.decompiler.dad.decompile.
DvMethod
(methanalysis)¶ Bases:
object
This is a wrapper around
MethodAnalysis
andEncodedMethod
inside the decompiler.-
get_ast
()¶
-
get_source
()¶
-
get_source_ext
()¶
-
process
(doAST=False)¶
-
show_source
()¶
-
-
androguard.decompiler.dad.decompile.
get_field_ast
(field)¶
-
androguard.decompiler.dad.decompile.
main
()¶
androguard.decompiler.dad.graph module¶
-
class
androguard.decompiler.dad.graph.
Graph
¶ Bases:
object
Stores a CFG (Control Flow Graph), which is a directed graph.
The CFG defines an entry node
entry
, a single exit nodeexit
, a list of nodesnodes
and a list of edgesedges
.-
add_catch_edge
(e1, e2)¶
-
add_edge
(e1, e2)¶
-
add_node
(node)¶ Adds the given node to the graph, without connecting it to anyhting else.
- Parameters
node (androguard.decompiler.dad.node.Node) – node to add
-
all_preds
(node)¶
-
all_sucs
(node)¶
-
compute_rpo
()¶ Number the nodes in reverse post order. An RPO traversal visit as many predecessors of a node as possible before visiting the node itself.
-
draw
(name, dname, draw_branches=True)¶ Writes the current graph as a PNG file
- Parameters
name (str) – filename (without .png)
dname (str) – directory of the output png
draw_branches –
- Returns
-
get_ins_from_loc
(loc)¶
-
get_node_from_loc
(loc)¶
-
immediate_dominators
()¶
-
number_ins
()¶
-
post_order
()¶ Yields the :class`~androguard.decompiler.dad.node.Node`s of the graph in post-order i.e we visit all the children of a node before visiting the node itself.
-
preds
(node)¶
-
remove_ins
(loc)¶
-
remove_node
(node)¶ Remove the node from the graph, removes also all connections.
- Parameters
node (androguard.decompiler.dad.node.Node) – the node to remove
-
sucs
(node)¶
-
-
androguard.decompiler.dad.graph.
bfs
(start)¶ Breadth first search
Yields all nodes found from the starting point
- Parameters
start – start node
-
androguard.decompiler.dad.graph.
construct
(start_block, vmap, exceptions)¶ Constructs a CFG
- Parameters
start_block (androguard.core.analysis.analysis.DVMBasicBlock) – The startpoint
vmap – variable mapping
exceptions – list of androguard.core.analysis.analysis.ExceptionAnalysis
- Return type
-
androguard.decompiler.dad.graph.
dom_lt
(graph)¶ Dominator algorithm from Lengauer-Tarjan
-
androguard.decompiler.dad.graph.
make_node
(graph, block, block_to_node, vmap, gen_ret)¶
-
androguard.decompiler.dad.graph.
simplify
(graph)¶ Simplify the CFG by merging/deleting statement nodes when possible: If statement B follows statement A and if B has no other predecessor besides A, then we can merge A and B into a new statement node. We also remove nodes which do nothing except redirecting the control flow (nodes which only contains a goto).
-
androguard.decompiler.dad.graph.
split_if_nodes
(graph)¶ Split IfNodes in two nodes, the first node is the header node, the second one is only composed of the jump condition.
androguard.decompiler.dad.instruction module¶
-
class
androguard.decompiler.dad.instruction.
ArrayExpression
¶
-
class
androguard.decompiler.dad.instruction.
ArrayLengthExpression
(array)¶ Bases:
androguard.decompiler.dad.instruction.ArrayExpression
-
get_type
()¶
-
get_used_vars
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
ArrayLoadExpression
(arg, index, _type)¶ Bases:
androguard.decompiler.dad.instruction.ArrayExpression
-
get_type
()¶
-
get_used_vars
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
ArrayStoreInstruction
(rhs, array, index, _type)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_used_vars
()¶
-
has_side_effect
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
AssignExpression
(lhs, rhs)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_lhs
()¶
-
get_rhs
()¶
-
get_used_vars
()¶
-
has_side_effect
()¶
-
is_call
()¶
-
is_propagable
()¶
-
remove_defined_var
()¶
-
replace
(old, new)¶
-
replace_lhs
(new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
BaseClass
(name, descriptor=None)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
is_const
()¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
BinaryCompExpression
(op, arg1, arg2, _type)¶ Bases:
androguard.decompiler.dad.instruction.BinaryExpression
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
BinaryExpression
(op, arg1, arg2, _type)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_used_vars
()¶
-
has_side_effect
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
BinaryExpression2Addr
(op, dest, arg, _type)¶ Bases:
androguard.decompiler.dad.instruction.BinaryExpression
-
class
androguard.decompiler.dad.instruction.
BinaryExpressionLit
(op, arg1, arg2)¶ Bases:
androguard.decompiler.dad.instruction.BinaryExpression
-
class
androguard.decompiler.dad.instruction.
CastExpression
(op, atype, arg)¶ Bases:
androguard.decompiler.dad.instruction.UnaryExpression
-
get_type
()¶
-
get_used_vars
()¶
-
is_const
()¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
CheckCastExpression
(arg, _type, descriptor=None)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_used_vars
()¶
-
is_const
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
ConditionalExpression
(op, arg1, arg2)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_lhs
()¶
-
get_used_vars
()¶
-
is_cond
()¶
-
neg
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
ConditionalZExpression
(op, arg)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_lhs
()¶
-
get_used_vars
()¶
-
is_cond
()¶
-
neg
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
Constant
(value, atype, int_value=None, descriptor=None)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_int_value
()¶
-
get_type
()¶
-
get_used_vars
()¶
-
is_const
()¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
FillArrayExpression
(reg, value)¶ Bases:
androguard.decompiler.dad.instruction.ArrayExpression
-
get_rhs
()¶
-
get_used_vars
()¶
-
is_propagable
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
FilledArrayExpression
(asize, atype, args)¶ Bases:
androguard.decompiler.dad.instruction.ArrayExpression
-
get_used_vars
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
IRForm
¶ Bases:
object
-
get_lhs
()¶
-
get_rhs
()¶
-
get_type
()¶
-
get_used_vars
()¶
-
has_side_effect
()¶
-
is_call
()¶
-
is_cond
()¶
-
is_const
()¶
-
is_ident
()¶
-
is_propagable
()¶
-
remove_defined_var
()¶
-
replace
(old, new)¶
-
replace_lhs
(new)¶
-
replace_var
(old, new)¶
-
set_type
(_type)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
InstanceExpression
(arg, klass, ftype, name)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_type
()¶
-
get_used_vars
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
InstanceInstruction
(rhs, lhs, klass, atype, name)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_lhs
()¶
-
get_used_vars
()¶
-
has_side_effect
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
InvokeDirectInstruction
(clsname, name, base, rtype, ptype, args, triple)¶ Bases:
androguard.decompiler.dad.instruction.InvokeInstruction
-
class
androguard.decompiler.dad.instruction.
InvokeInstruction
(clsname, name, base, rtype, ptype, args, triple)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_type
()¶
-
get_used_vars
()¶
-
has_side_effect
()¶
-
is_call
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
InvokeRangeInstruction
(clsname, name, rtype, ptype, args, triple)¶ Bases:
androguard.decompiler.dad.instruction.InvokeInstruction
-
class
androguard.decompiler.dad.instruction.
InvokeStaticInstruction
(clsname, name, base, rtype, ptype, args, triple)¶ Bases:
androguard.decompiler.dad.instruction.InvokeInstruction
-
get_used_vars
()¶
-
-
class
androguard.decompiler.dad.instruction.
MonitorEnterExpression
(ref)¶ Bases:
androguard.decompiler.dad.instruction.RefExpression
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
MonitorExitExpression
(ref)¶ Bases:
androguard.decompiler.dad.instruction.RefExpression
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
MoveExceptionExpression
(ref, _type)¶ Bases:
androguard.decompiler.dad.instruction.RefExpression
-
get_lhs
()¶
-
get_used_vars
()¶
-
has_side_effect
()¶
-
replace_lhs
(new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
MoveExpression
(lhs, rhs)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_lhs
()¶
-
get_rhs
()¶
-
get_used_vars
()¶
-
has_side_effect
()¶
-
is_call
()¶
-
replace
(old, new)¶
-
replace_lhs
(new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
MoveResultExpression
(lhs, rhs)¶ Bases:
androguard.decompiler.dad.instruction.MoveExpression
-
has_side_effect
()¶
-
is_propagable
()¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
NewArrayExpression
(asize, atype)¶ Bases:
androguard.decompiler.dad.instruction.ArrayExpression
-
get_used_vars
()¶
-
is_propagable
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
NewInstance
(ins_type)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_type
()¶
-
get_used_vars
()¶
-
replace
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
NopExpression
¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_lhs
()¶
-
get_used_vars
()¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
Param
(value, atype)¶ Bases:
androguard.decompiler.dad.instruction.Variable
-
is_const
()¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
RefExpression
(ref)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_used_vars
()¶
-
is_propagable
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
-
class
androguard.decompiler.dad.instruction.
ReturnInstruction
(arg)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_lhs
()¶
-
get_used_vars
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
StaticExpression
(cls_name, field_type, field_name)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_type
()¶
-
replace
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
StaticInstruction
(rhs, klass, ftype, name)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_lhs
()¶
-
get_used_vars
()¶
-
has_side_effect
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
SwitchExpression
(src, branch)¶ Bases:
androguard.decompiler.dad.instruction.IRForm
-
get_used_vars
()¶
-
replace
(old, new)¶
-
replace_var
(old, new)¶
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
ThisParam
(value, atype)¶ Bases:
androguard.decompiler.dad.instruction.Param
-
visit
(visitor)¶
-
-
class
androguard.decompiler.dad.instruction.
ThrowExpression
(ref)¶ Bases:
androguard.decompiler.dad.instruction.RefExpression
-
visit
(visitor)¶
-
androguard.decompiler.dad.node module¶
-
class
androguard.decompiler.dad.node.
Interval
(head)¶ Bases:
object
-
add_node
(node)¶
-
compute_end
(graph)¶
-
get_end
()¶
-
get_head
()¶
-
-
class
androguard.decompiler.dad.node.
LoopType
¶ Bases:
object
-
copy
()¶
-
property
is_endless
¶
-
property
is_posttest
¶
-
property
is_pretest
¶
-
-
class
androguard.decompiler.dad.node.
MakeProperties
(name, bases, dct)¶ Bases:
type
androguard.decompiler.dad.opcode_ins module¶
-
class
androguard.decompiler.dad.opcode_ins.
Op
¶ Bases:
object
-
ADD
= '+'¶
-
AND
= '&'¶
-
CMP
= 'cmp'¶
-
DIV
= '/'¶
-
EQUAL
= '=='¶
-
GEQUAL
= '>='¶
-
GREATER
= '>'¶
-
INTSHL
= '<<'¶
-
INTSHR
= '>>'¶
-
LEQUAL
= '<='¶
-
LONGSHL
= '<<'¶
-
LONGSHR
= '>>'¶
-
LOWER
= '<'¶
-
MOD
= '%'¶
-
MUL
= '*'¶
-
NEG
= '-'¶
-
NEQUAL
= '!='¶
-
NOT
= '~'¶
-
OR
= '|'¶
-
SUB
= '-'¶
-
XOR
= '^'¶
-
-
androguard.decompiler.dad.opcode_ins.
adddouble
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
adddouble2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
addfloat
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
addfloat2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
addint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
addint2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
addintlit16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
addintlit8
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
addlong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
addlong2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
aget
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
agetboolean
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
agetbyte
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
agetchar
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
agetobject
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
agetshort
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
agetwide
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
andint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
andint2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
andintlit16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
andintlit8
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
andlong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
andlong2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
aput
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
aputboolean
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
aputbyte
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
aputchar
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
aputobject
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
aputshort
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
aputwide
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
arraylength
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
assign_binary_2addr_exp
(ins, val_op, op_type, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
assign_binary_exp
(ins, val_op, op_type, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
assign_cast_exp
(val_a, val_b, val_op, op_type, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
assign_cmp
(val_a, val_b, val_c, cmp_type, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
assign_const
(dest_reg, cst, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
assign_lit
(op_type, val_cst, val_a, val_b, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
checkcast
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
cmpgdouble
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
cmpgfloat
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
cmpldouble
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
cmplfloat
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
cmplong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
const
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
const16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
const4
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
constclass
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
consthigh16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
conststring
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
conststringjumbo
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
constwide
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
constwide16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
constwide32
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
constwidehigh16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
divdouble
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
divdouble2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
divfloat
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
divfloat2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
divint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
divint2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
divintlit16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
divintlit8
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
divlong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
divlong2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
doubletofloat
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
doubletoint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
doubletolong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
fillarraydata
(ins, vmap, value)¶
-
androguard.decompiler.dad.opcode_ins.
fillarraydatapayload
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
fillednewarray
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
fillednewarrayrange
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
floattodouble
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
floattoint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
floattolong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
get_args
(vmap, param_type, largs)¶
-
androguard.decompiler.dad.opcode_ins.
get_variables
(vmap, *variables)¶
-
androguard.decompiler.dad.opcode_ins.
goto
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
goto16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
goto32
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ifeq
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ifeqz
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ifge
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ifgez
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ifgt
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ifgtz
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ifle
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
iflez
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
iflt
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ifltz
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ifne
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ifnez
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
iget
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
igetboolean
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
igetbyte
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
igetchar
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
igetobject
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
igetshort
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
igetwide
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
instanceof
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
inttobyte
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
inttochar
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
inttodouble
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
inttofloat
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
inttolong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
inttoshort
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
invokedirect
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
invokedirectrange
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
invokeinterface
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
invokeinterfacerange
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
invokestatic
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
invokestaticrange
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
invokesuper
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
invokesuperrange
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
invokevirtual
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
invokevirtualrange
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
iput
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
iputboolean
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
iputbyte
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
iputchar
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
iputobject
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
iputshort
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
iputwide
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
load_array_exp
(val_a, val_b, val_c, ar_type, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
longtodouble
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
longtofloat
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
longtoint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
monitorenter
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
monitorexit
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
move
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
move16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
moveexception
(ins, vmap, _type)¶
-
androguard.decompiler.dad.opcode_ins.
movefrom16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
moveobject
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
moveobject16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
moveobjectfrom16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
moveresult
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
moveresultobject
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
moveresultwide
(ins, vmap, ret)¶
-
androguard.decompiler.dad.opcode_ins.
movewide
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
movewide16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
movewidefrom16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
muldouble
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
muldouble2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
mulfloat
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
mulfloat2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
mulint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
mulint2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
mulintlit16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
mulintlit8
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
mullong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
mullong2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
negdouble
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
negfloat
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
negint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
neglong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
newarray
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
newinstance
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
nop
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
notint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
notlong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
orint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
orint2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
orintlit16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
orintlit8
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
orlong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
orlong2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
packedswitch
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
remdouble
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
remdouble2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
remfloat
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
remfloat2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
remint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
remint2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
remintlit16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
remintlit8
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
remlong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
remlong2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
return_reg
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
returnobject
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
returnvoid
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
returnwide
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
rsubint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
rsubintlit8
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sget
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sgetboolean
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sgetbyte
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sgetchar
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sgetobject
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sgetshort
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sgetwide
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
shlint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
shlint2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
shlintlit8
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
shllong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
shllong2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
shrint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
shrint2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
shrintlit8
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
shrlong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
shrlong2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sparseswitch
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sput
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sputboolean
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sputbyte
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sputchar
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sputobject
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sputshort
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sputwide
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
store_array_inst
(val_a, val_b, val_c, ar_type, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
subdouble
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
subdouble2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
subfloat
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
subfloat2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
subint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
subint2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sublong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
sublong2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
throw
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ushrint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ushrint2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ushrintlit8
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ushrlong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
ushrlong2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
xorint
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
xorint2addr
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
xorintlit16
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
xorintlit8
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
xorlong
(ins, vmap)¶
-
androguard.decompiler.dad.opcode_ins.
xorlong2addr
(ins, vmap)¶
androguard.decompiler.dad.util module¶
-
androguard.decompiler.dad.util.
build_path
(graph, node1, node2, path=None)¶ Build the path from node1 to node2. The path is composed of all the nodes between node1 and node2, node1 excluded. Although if there is a loop starting from node1, it will be included in the path.
-
androguard.decompiler.dad.util.
common_dom
(idom, cur, pred)¶
-
androguard.decompiler.dad.util.
create_png
(cls_name, meth_name, graph, dir_name='graphs2')¶ Creates a PNG from a given
Graph
.- Parameters
cls_name (str) – name of the class
meth_name (str) – name of the method
graph (androguard.decompiler.dad.graph.Graph) –
dir_name (str) – output directory
-
androguard.decompiler.dad.util.
get_access_class
(access)¶
-
androguard.decompiler.dad.util.
get_access_field
(access)¶
-
androguard.decompiler.dad.util.
get_access_method
(access)¶
-
androguard.decompiler.dad.util.
get_params_type
(descriptor)¶ Return the parameters type of a descriptor (e.g (IC)V)
-
androguard.decompiler.dad.util.
get_type
(atype, size=None)¶ Retrieve the java type of a descriptor (e.g : I)
-
androguard.decompiler.dad.util.
get_type_size
(param)¶ Return the number of register needed by the type @param
-
androguard.decompiler.dad.util.
merge_inner
(clsdict)¶ Merge the inner class(es) of a class: e.g class A { … } class A$foo{ … } class A$bar{ … } ==> class A { class foo{…} class bar{…} … }
androguard.decompiler.dad.writer module¶
-
class
androguard.decompiler.dad.writer.
Writer
(graph, method)¶ Bases:
object
Transforms a method into Java code.
-
dec_ind
(i=1)¶
-
end_ins
()¶
-
inc_ind
(i=1)¶
-
space
()¶
-
str_ext
()¶
-
visit_alength
(array)¶
-
visit_aload
(array, index)¶
-
visit_assign
(lhs, rhs)¶
-
visit_astore
(array, index, rhs, data=None)¶
-
visit_base_class
(cls, data=None)¶
-
visit_binary_expression
(op, arg1, arg2)¶
-
visit_cast
(op, arg)¶
-
visit_catch_node
(catch_node)¶
-
visit_check_cast
(arg, atype)¶
-
visit_cond_expression
(op, arg1, arg2)¶
-
visit_cond_node
(cond)¶
-
visit_condz_expression
(op, arg)¶
-
visit_constant
(cst)¶
-
visit_decl
(var)¶
-
visit_fill_array
(array, value)¶
-
visit_filled_new_array
(atype, size, args)¶
-
visit_get_instance
(arg, name, data=None)¶
-
visit_get_static
(cls, name)¶
-
visit_ins
(ins)¶
-
visit_invoke
(name, base, ptype, rtype, args, invokeInstr)¶
-
visit_loop_node
(loop)¶
-
visit_monitor_enter
(ref)¶
-
visit_monitor_exit
(ref)¶
-
visit_move
(lhs, rhs)¶
-
visit_move_exception
(var, data=None)¶
-
visit_move_result
(lhs, rhs)¶
-
visit_new
(atype, data=None)¶
-
visit_new_array
(atype, size)¶
-
visit_node
(node)¶
-
visit_nop
()¶
-
visit_param
(param, data=None)¶
-
visit_put_instance
(lhs, name, rhs, data=None)¶
-
visit_put_static
(cls, name, rhs)¶
-
visit_return
(arg)¶
-
visit_return_node
(ret)¶
-
visit_return_void
()¶
-
visit_short_circuit_condition
(nnot, aand, cond1, cond2)¶
-
visit_statement_node
(stmt)¶
-
visit_super
()¶
-
visit_switch
(arg)¶
-
visit_switch_node
(switch)¶
-
visit_this
()¶
-
visit_throw
(ref)¶
-
visit_throw_node
(throw)¶
-
visit_try_node
(try_node)¶
-
visit_unary_expression
(op, arg)¶
-
visit_variable
(var)¶
-
write
(s, data=None)¶
-
write_ext
(t)¶
-
write_ind
()¶
-
write_ind_visit_end
(lhs, s, rhs=None, data=None)¶
-
write_ind_visit_end_ext
(lhs, before, s, after, rhs=None, data=None, subsection='UNKNOWN_SUBSECTION')¶
-
write_inplace_if_possible
(lhs, rhs)¶
-
write_method
()¶
-
-
androguard.decompiler.dad.writer.
string
(s)¶ Convert a string to a escaped ASCII representation including quotation marks :param s: a string :return: ASCII escaped string