From 2e2818c837ab2ada6cbccd331a40fba533c64cde Mon Sep 17 00:00:00 2001
From: "Koh M. Nakagawa" <tsunekou1019@gmail.com>
Date: Sun, 24 May 2020 11:47:54 +0900
Subject: [PATCH] add symbols record in to_json

---
 src/PE/json.cpp | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/PE/json.cpp b/src/PE/json.cpp
index f3b1d66..4c32a4b 100644
--- a/src/PE/json.cpp
+++ b/src/PE/json.cpp
@@ -148,6 +148,16 @@ void JsonVisitor::visit(const Binary& binary) {
     this->node_["signature"] = visitor.get();
   }
 
+  std::vector<json> symbols;
+  for (const Symbol& symbol : binary.symbols()) {
+    JsonVisitor visitor;
+    visitor(symbol);
+    symbols.emplace_back(visitor.get());
+  }
+  if (!symbols.empty()) {
+    this->node_["symbols"] = symbols;
+  }
+
   // Load Configuration
   if (binary.has_configuration()) {
     JsonVisitor visitor;
@@ -272,6 +282,7 @@ void JsonVisitor::visit(const Section& section) {
   this->node_["pointerto_line_numbers"] = section.pointerto_line_numbers();
   this->node_["numberof_relocations"]   = section.numberof_relocations();
   this->node_["numberof_line_numbers"]  = section.numberof_line_numbers();
+  this->node_["entropy"]                = section.entropy();
   this->node_["characteristics"]        = characteristics;
   this->node_["types"]                  = types;
 }