binlex
blelf.h
1 #ifndef ELF_H
2 #define ELF_H
3 
4 #ifdef _WIN32
5 #include <Windows.h>
6 #endif
7 
8 #include <iostream>
9 #include <memory>
10 #include <vector>
11 #include <set>
12 #include <LIEF/ELF.hpp>
13 #include <exception>
14 #include <stdexcept>
15 #include <cassert>
16 #include "file.h"
17 
18 #ifdef _WIN32
19 #define BINLEX_EXPORT __declspec(dllexport)
20 #else
21 #define BINLEX_EXPORT
22 #endif
23 
24 using namespace std;
25 using namespace LIEF::ELF;
26 
27 namespace binlex{
28  class ELF : public File{
32  private:
37  bool ParseSections();
38  public:
39  ARCH mode = ARCH::EM_NONE;
40  unique_ptr<LIEF::ELF::Binary> binary;
41  struct Section sections[BINARY_MAX_SECTIONS];
42  uint32_t total_exec_sections;
43  BINLEX_EXPORT ELF();
49  BINLEX_EXPORT bool Setup(ARCH input_mode);
55  virtual bool ReadVector(const std::vector<uint8_t> &data);
56  BINLEX_EXPORT ~ELF();
57  };
58 };
59 
60 #endif
binlex::ELF
Definition: blelf.h:28
binlex::File::Section
Definition: file.h:18
binlex::File
Definition: file.h:14
binlex
the binlex namespace