last changes
This commit is contained in:
parent
328703ac5f
commit
9cc38354d7
@ -11,6 +11,12 @@
|
|||||||
|
|
||||||
const uint32_t DART_MAGIC = 0xDCDCF5F5;
|
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 {
|
enum SnapshotKind: uint64_t {
|
||||||
FULL,
|
FULL,
|
||||||
FULL_JIT,
|
FULL_JIT,
|
||||||
|
|||||||
36
main.cpp
36
main.cpp
@ -6,6 +6,18 @@
|
|||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <elf.h>
|
#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) {
|
int main(int argc, char** argv) {
|
||||||
std::string elfPath = "/home/selim/Загрузки/libapp.so"; //argv[1];
|
std::string elfPath = "/home/selim/Загрузки/libapp.so"; //argv[1];
|
||||||
std::cout << "Analyzing file: " << elfPath << std::endl;
|
std::cout << "Analyzing file: " << elfPath << std::endl;
|
||||||
@ -16,30 +28,18 @@ int main(int argc, char** argv) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dumpElf(reader);
|
||||||
|
|
||||||
const std::byte* data = nullptr;
|
const std::byte* data = nullptr;
|
||||||
const std::byte* text = nullptr;
|
const std::byte* text = nullptr;
|
||||||
|
|
||||||
|
for(auto section: reader.sections) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
ELFIO::Elf_Half sec_num = reader.sections.size();
|
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 ) {
|
for ( int i = 0; i < sec_num; ++i ) {
|
||||||
ELFIO::section* psec = reader.sections[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") {
|
if(psec->get_name() == ".rodata") {
|
||||||
data = reinterpret_cast<const std::byte*>(psec->get_data());
|
data = reinterpret_cast<const std::byte*>(psec->get_data());
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user