KUNAI Static Analyzer
Kunai is a library for doing static binary analysis of Dalvik.
|
Invoke the method handle indicated, this time it can provide with a range of arguments given by a size and an initial register. Example: invoke-polymorphic/range {vCCCC .. vNNNN}, meth@BBBB, proto@HHHH. More...
#include <dalvik_instructions.hpp>
Public Member Functions | |
Instruction4rcc (std::vector< uint8_t > &bytecode, std::size_t index, Parser *parser) | |
std::uint8_t | get_number_of_registers () const |
const std::vector< std::uint16_t > & | get_registers () const |
std::vector< std::uint16_t > & | get_registers () |
std::uint16_t | get_method_reference () const |
MethodID * | get_method () |
std::uint16_t | get_prototype_reference () const |
ProtoID * | get_prototype () |
virtual std::string | print_instruction () |
Return a string with the representation of the instruction. | |
virtual void | print_instruction (std::ostream &os) |
Print the instruction on a given stream. | |
![]() | |
Instruction (std::vector< uint8_t > &bytecode, std::size_t index, dexinsttype_t instruction_type) | |
Constructor of the Instruction, here is applied the parsing of the opcodes. | |
Instruction (std::vector< uint8_t > &bytecode, std::size_t index, dexinsttype_t instruction_type, std::uint32_t length) | |
virtual | ~Instruction ()=default |
Destructor of the instruction. | |
virtual TYPES::Kind | get_kind () const |
Get the kind of instruction, use a DalvikOpcodes function. | |
virtual dexinsttype_t | get_instruction_type () const |
Get the instruction type from the enum. | |
virtual std::uint32_t | get_instruction_length () const |
Get the length of the instruction. | |
virtual std::uint32_t | get_instruction_opcode () const |
Get the opcode of the instruction. | |
virtual void | set_address (std::uint64_t address) |
Set the address of the instruction. | |
virtual std::uint64_t | get_address () const |
Get the address of the instruction. | |
virtual const std::span< std::uint8_t > & | get_opcodes () |
Return the op codes in raw from the instruction. | |
virtual bool | is_terminator () |
Check if the instruction is a terminator (branch, ret, multibranch) | |
virtual bool | has_side_effects () const |
Instruction has or can have some side effect. | |
virtual bool | may_throw () const |
May throw an exception. | |
Additional Inherited Members | |
![]() | |
std::span< std::uint8_t > | op_codes |
Opcodes of the instruction. | |
std::uint32_t | length |
Length of the instruction. | |
std::uint32_t | op |
op code from the instruction | |
std::uint64_t | address |
address of the instruction | |
Invoke the method handle indicated, this time it can provide with a range of arguments given by a size and an initial register. Example: invoke-polymorphic/range {vCCCC .. vNNNN}, meth@BBBB, proto@HHHH.
|
inlinevirtual |
Return a string with the representation of the instruction.
Reimplemented from KUNAI::DEX::Instruction.
|
inlinevirtual |
Print the instruction on a given stream.
os | stream where to print the instruction |
Reimplemented from KUNAI::DEX::Instruction.