KUNAI Static Analyzer
Kunai is a library for doing static binary analysis of Dalvik.
Loading...
Searching...
No Matches
linear_sweep_disassembler.hpp
1//--------------------------------------------------------------------*- C++ -*-
2// Kunai-static-analyzer: library for doing analysis of dalvik files
3// @author Farenain <kunai.static.analysis@gmail.com>
4// @author Ernesto Java <javaernesto@gmail.com>
5//
6// @file linear_sweep_disassembler.hpp
7// @brief Class for managing the Linear Sweep Disassembly algorithm.
8
9#ifndef KUNAI_DEX_DVM_LINEAR_SWEEP_DISASSEMBLER_HPP
10#define KUNAI_DEX_DVM_LINEAR_SWEEP_DISASSEMBLER_HPP
11
12#include "Kunai/DEX/DVM/disassembler.hpp"
13
14namespace KUNAI
15{
16namespace DEX
17{
23 {
25 Disassembler *disassembler;
26
32 void assign_switch_if_any(
33 std::vector<std::unique_ptr<Instruction>> &instructions,
34 std::unordered_map<std::uint64_t, Instruction *> &cache_instructions);
35
36 public:
37 LinearSweepDisassembler() = default;
38
39 void set_internal_disassembler(Disassembler *disassembler)
40 {
41 this->disassembler = disassembler;
42 }
43
50 void disassembly(std::vector<std::uint8_t> &buffer_bytes,
51 std::vector<std::unique_ptr<Instruction>> &instructions);
52 };
53} // DEX
54} // KUNAI
55
56#endif
Definition disassembler.hpp:30
LinearSweepDisassembler is one of the DEX disassembly algorithms implemented by Kunai,...
Definition linear_sweep_disassembler.hpp:23
void disassembly(std::vector< std::uint8_t > &buffer_bytes, std::vector< std::unique_ptr< Instruction > > &instructions)
This function implements the algorithm of disassembly of linear sweep, the function receives a buffer...
utilities
Definition analysis.hpp:23