KUNAI Static Analyzer
Kunai is a library for doing static binary analysis of Dalvik.
Loading...
Searching...
No Matches
Public Member Functions | List of all members
KUNAI::DEX::Instruction35c Class Reference

Construct array of given type and size, filling it with supplied contents. Type must be an array type. Array's contents must be single-word. Example: filled-new-array {vC, vD, vE, vF, vG}, type@BBBB. More...

#include <dalvik_instructions.hpp>

Inheritance diagram for KUNAI::DEX::Instruction35c:
Inheritance graph
[legend]
Collaboration diagram for KUNAI::DEX::Instruction35c:
Collaboration graph
[legend]

Public Member Functions

 Instruction35c (std::vector< uint8_t > &bytecode, std::size_t index, Parser *parser)
 
std::uint8_t get_number_of_registers () const
 Get the number of registers from the instruction.
 
const std::vector< std::uint8_t > & get_registers () const
 Get a constant reference to the vector with the registers.
 
TYPES::Operand get_registers_type ()
 Get the type of the registers operand.
 
std::vector< std::uint8_t > & get_registers ()
 Get a reference to the vector with the registers.
 
std::uint16_t get_type_idx () const
 Get the idx of the type.
 
TYPES::Operand get_array_type () const
 Get the type of the array.
 
DVMTypeget_dvmtype ()
 Get the DVMType of the array type.
 
MethodIDget_method ()
 
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.
 
- Public Member Functions inherited from KUNAI::DEX::Instruction
 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

- Protected Attributes inherited from KUNAI::DEX::Instruction
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
 

Detailed Description

Construct array of given type and size, filling it with supplied contents. Type must be an array type. Array's contents must be single-word. Example: filled-new-array {vC, vD, vE, vF, vG}, type@BBBB.

Member Function Documentation

◆ get_array_type()

TYPES::Operand KUNAI::DEX::Instruction35c::get_array_type ( ) const
inline

Get the type of the array.

Returns
return KIND type

◆ get_dvmtype()

DVMType * KUNAI::DEX::Instruction35c::get_dvmtype ( )
inline

Get the DVMType of the array type.

Returns
DVMType of array

◆ get_number_of_registers()

std::uint8_t KUNAI::DEX::Instruction35c::get_number_of_registers ( ) const
inline

Get the number of registers from the instruction.

Returns
array_size value

◆ get_registers() [1/2]

std::vector< std::uint8_t > & KUNAI::DEX::Instruction35c::get_registers ( )
inline

Get a reference to the vector with the registers.

Returns
reference to registers

◆ get_registers() [2/2]

const std::vector< std::uint8_t > & KUNAI::DEX::Instruction35c::get_registers ( ) const
inline

Get a constant reference to the vector with the registers.

Returns
constant reference to registers

◆ get_registers_type()

TYPES::Operand KUNAI::DEX::Instruction35c::get_registers_type ( )
inline

Get the type of the registers operand.

Returns
return REGISTER type

◆ get_type_idx()

std::uint16_t KUNAI::DEX::Instruction35c::get_type_idx ( ) const
inline

Get the idx of the type.

Returns
value with the type index

◆ print_instruction() [1/2]

virtual std::string KUNAI::DEX::Instruction35c::print_instruction ( )
inlinevirtual

Return a string with the representation of the instruction.

Returns
string with instruction

Reimplemented from KUNAI::DEX::Instruction.

◆ print_instruction() [2/2]

virtual void KUNAI::DEX::Instruction35c::print_instruction ( std::ostream &  os)
inlinevirtual

Print the instruction on a given stream.

Parameters
osstream where to print the instruction

Reimplemented from KUNAI::DEX::Instruction.


The documentation for this class was generated from the following file: