last changes
This commit is contained in:
parent
328703ac5f
commit
9cc38354d7
@ -11,6 +11,12 @@
|
||||
|
||||
const uint32_t DART_MAGIC = 0xDCDCF5F5;
|
||||
|
||||
const char* vmInstructions = "_kDartVmSnapshotInstructions";
|
||||
const char* vmData = "_kDartVmSnapshotData";
|
||||
const char* isolateInstructions = "_kDartIsolateSnapshotInstructions";
|
||||
const char* isolateData = "_kDartIsolateSnapshotData";
|
||||
const char* buildId = "_kDartSnapshotBuildId";
|
||||
|
||||
enum SnapshotKind: uint64_t {
|
||||
FULL,
|
||||
FULL_JIT,
|
||||
|
||||
36
main.cpp
36
main.cpp
@ -6,6 +6,18 @@
|
||||
#include <cstddef>
|
||||
#include <elf.h>
|
||||
|
||||
void dumpElf(const ELFIO::elfio& reader) {
|
||||
ELFIO::dump::header( std::cout, reader );
|
||||
ELFIO::dump::section_headers( std::cout, reader );
|
||||
ELFIO::dump::segment_headers( std::cout, reader );
|
||||
ELFIO::dump::symbol_tables( std::cout, reader );
|
||||
ELFIO::dump::notes( std::cout, reader );
|
||||
ELFIO::dump::modinfo( std::cout, reader );
|
||||
ELFIO::dump::dynamic_tags( std::cout, reader );
|
||||
ELFIO::dump::section_datas( std::cout, reader );
|
||||
ELFIO::dump::segment_datas( std::cout, reader );
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
std::string elfPath = "/home/selim/Загрузки/libapp.so"; //argv[1];
|
||||
std::cout << "Analyzing file: " << elfPath << std::endl;
|
||||
@ -16,30 +28,18 @@ int main(int argc, char** argv) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
dumpElf(reader);
|
||||
|
||||
const std::byte* data = nullptr;
|
||||
const std::byte* text = nullptr;
|
||||
|
||||
for(auto section: reader.sections) {
|
||||
|
||||
}
|
||||
|
||||
ELFIO::Elf_Half sec_num = reader.sections.size();
|
||||
|
||||
ELFIO::dump::header( std::cout, reader );
|
||||
ELFIO::dump::section_headers( std::cout, reader );
|
||||
ELFIO::dump::segment_headers( std::cout, reader );
|
||||
ELFIO::dump::symbol_tables( std::cout, reader );
|
||||
ELFIO::dump::notes( std::cout, reader );
|
||||
ELFIO::dump::modinfo( std::cout, reader );
|
||||
ELFIO::dump::dynamic_tags( std::cout, reader );
|
||||
ELFIO::dump::section_datas( std::cout, reader );
|
||||
ELFIO::dump::segment_datas( std::cout, reader );
|
||||
|
||||
std::cout << "Number of sections: " << sec_num << std::endl;
|
||||
for ( int i = 0; i < sec_num; ++i ) {
|
||||
ELFIO::section* psec = reader.sections[i];
|
||||
std::cout << " [" << i << "] "
|
||||
<< psec->get_name()
|
||||
<< "\t"
|
||||
<< psec->get_size()
|
||||
<< ", " << psec->get_type()
|
||||
<< std::endl;
|
||||
|
||||
if(psec->get_name() == ".rodata") {
|
||||
data = reinterpret_cast<const std::byte*>(psec->get_data());
|
||||
|
||||
Loading…
Reference in New Issue
Block a user