unflutter/main.cpp

45 lines
1.2 KiB
C++

#include "ThirdParty/elfio/elfio.hpp"
#include "dart/dart.h"
#include <iostream>
int main(int argc, char** argv) {
std::string elfPath = "/home/selim/Downloads/libapp.so"; //argv[1];
std::cout << "Analyzing file: " << elfPath << std::endl;
ELFIO::elfio reader;
if(!reader.load(elfPath)) {
std::cout << "error loading elf: " << elfPath << std::endl;
return 0;
}
const void* data = nullptr;
const void* text = nullptr;
ELFIO::Elf_Half sec_num = reader.sections.size();
std::cout << "Number of sections: " << sec_num << std::endl;
for ( int i = 0; i < sec_num; ++i ) {
const ELFIO::section* psec = reader.sections[i];
std::cout << " [" << i << "] "
<< psec->get_name()
<< "\t"
<< psec->get_size()
<< std::endl;
if(psec->get_name() == ".rodata") {
data = psec->get_data();
}
if(psec->get_name() == ".text") {
text = psec->get_data();
}
}
auto header = reinterpret_cast<const SnapshotHeader*>(data);
if(header->magic != DART_MAGIC) {
std::cout << "Wrong magic!!!!" << std::endl;
}
return 0;
}