KUNAI Static Analyzer
Kunai is a library for doing static binary analysis of Dalvik.
Loading...
Searching...
No Matches
recursive_traversal_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 recursive_traversal_disassembler.hpp
7// @brief Class for managing the Recursive Traversal Disassembly algorithm.
8
9#ifndef KUNAI_DEX_DVM_RECURSIVE_TRAVERSAL_DISASSEMBLER_HPP
10#define KUNAI_DEX_DVM_RECURSIVE_TRAVERSAL_DISASSEMBLER_HPP
11
12#include "Kunai/DEX/DVM/disassembler.hpp"
13#include <queue>
14
15namespace KUNAI
16{
17namespace DEX
18{
23 {
25 Disassembler *disassembler;
26
28 std::queue<std::uint64_t> Q;
29
36 void analyze_switch(
37 std::vector<std::unique_ptr<Instruction>> &instructions,
38 std::unordered_map<std::uint64_t, Instruction *> &cache_instrs,
39 std::vector<std::uint8_t> &buffer_bytes);
40
41 public:
43
44 void set_internal_disassembler(Disassembler *disassembler)
45 {
46 this->disassembler = disassembler;
47 }
48
56 void disassembly(std::vector<std::uint8_t> &buffer_bytes,
57 EncodedMethod *method,
58 std::vector<std::unique_ptr<Instruction>> &instructions);
59 };
60} // namespace DEX
61} // namespace KUNAI
62
63#endif
Definition disassembler.hpp:30
Class that represent the information from a Method.
Definition encoded.hpp:635
RecursiveTraversalDisassembler is one of the DEX disassembly algorithms implemented by Kunai,...
Definition recursive_traversal_disassembler.hpp:23
void disassembly(std::vector< std::uint8_t > &buffer_bytes, EncodedMethod *method, 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