4
0
mirror of https://github.com/QuasarApp/LIEF.git synced 2025-05-11 19:09:33 +00:00

Merge pull request from kohnakagawa/fix/add_json_records

Fix to show some missing JSON records
This commit is contained in:
Romain 2020-05-11 08:55:36 +02:00 committed by GitHub
commit e4a3659297
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -429,6 +429,14 @@ void JsonVisitor::visit(const ImportEntry& import_entry) {
this->node_["hint"] = import_entry.hint(); this->node_["hint"] = import_entry.hint();
} }
void JsonVisitor::visit(const ResourceData& resource_data) {
this->node_["code_page"] = resource_data.code_page();
this->node_["reserved"] = resource_data.reserved();
this->node_["offset"] = resource_data.offset();
this->node_["hash"] = Hash::hash(resource_data.content());
}
void JsonVisitor::visit(const ResourceNode& resource_node) { void JsonVisitor::visit(const ResourceNode& resource_node) {
this->node_["id"] = resource_node.id(); this->node_["id"] = resource_node.id();
@ -449,19 +457,30 @@ void JsonVisitor::visit(const ResourceNode& resource_node) {
} }
void JsonVisitor::visit(const ResourceData& resource_data) {
this->node_["code_page"] = resource_data.code_page();
this->node_["hash"] = Hash::hash(resource_data.content());
}
void JsonVisitor::visit(const ResourceDirectory& resource_directory) { void JsonVisitor::visit(const ResourceDirectory& resource_directory) {
this->node_["id"] = resource_directory.id();
if (resource_directory.has_name()) {
this->node_["name"] = u16tou8(resource_directory.name());
}
this->node_["characteristics"] = resource_directory.characteristics(); this->node_["characteristics"] = resource_directory.characteristics();
this->node_["time_date_stamp"] = resource_directory.time_date_stamp(); this->node_["time_date_stamp"] = resource_directory.time_date_stamp();
this->node_["major_version"] = resource_directory.major_version(); this->node_["major_version"] = resource_directory.major_version();
this->node_["minor_version"] = resource_directory.minor_version(); this->node_["minor_version"] = resource_directory.minor_version();
this->node_["numberof_name_entries"] = resource_directory.numberof_name_entries(); this->node_["numberof_name_entries"] = resource_directory.numberof_name_entries();
this->node_["numberof_id_entries"] = resource_directory.numberof_id_entries(); this->node_["numberof_id_entries"] = resource_directory.numberof_id_entries();
if (resource_directory.childs().size() > 0) {
std::vector<json> childs;
for (const ResourceNode& rsrc : resource_directory.childs()) {
JsonVisitor visitor;
rsrc.accept(visitor);
childs.emplace_back(visitor.get());
}
this->node_["childs"] = childs;
}
} }
@ -788,6 +807,7 @@ void JsonVisitor::visit(const Pogo& pogo) {
v(entry); v(entry);
entries.emplace_back(v.get()); entries.emplace_back(v.get());
} }
this->node_["entries"] = entries;
} }
void JsonVisitor::visit(const PogoEntry& entry) { void JsonVisitor::visit(const PogoEntry& entry) {