@@ -525,7 +525,8 @@ bool PEParser::parseImports() {
525525 suspiciousApiReports.push_back ({
526526 function,
527527 category,
528- severity
528+ severity,
529+ dllName
529530 });
530531
531532 std::cout << " -> \033 [33m[INCELE] ["
@@ -812,6 +813,8 @@ bool PEParser::exportTextReport() const {
812813 for (const auto & api : suspiciousApiReports) {
813814 report
814815 << api.apiName
816+ << " | DLL: "
817+ << api.dllName
815818 << " | Category: "
816819 << api.category
817820 << " | Severity: "
@@ -824,10 +827,12 @@ bool PEParser::exportTextReport() const {
824827
825828 std::map<std::string, std::size_t > categoryCounts;
826829 std::map<std::string, std::size_t > severityCounts;
830+ std::map<std::string, std::size_t > suspiciousDllCounts;
827831
828832 for (const auto & api : suspiciousApiReports) {
829833 ++categoryCounts[api.category ];
830834 ++severityCounts[api.severity ];
835+ ++suspiciousDllCounts[api.dllName ];
831836 }
832837
833838 report
@@ -866,6 +871,24 @@ bool PEParser::exportTextReport() const {
866871 report << " \n " ;
867872 }
868873
874+ report
875+ << " Suspicious DLL Summary\n " ;
876+
877+ if (suspiciousDllCounts.empty ()) {
878+ report
879+ << " No suspicious DLLs found.\n\n " ;
880+ } else {
881+ for (const auto & [dllName, count] : suspiciousDllCounts) {
882+ report
883+ << dllName
884+ << " : "
885+ << count
886+ << " \n " ;
887+ }
888+
889+ report << " \n " ;
890+ }
891+
869892 report
870893 << " Overall Risk\n "
871894 << " Risk Score: "
@@ -930,6 +953,7 @@ bool PEParser::exportJsonReport() const {
930953 std::map<std::string, std::size_t > sectionRiskCounts;
931954 std::map<std::string, std::size_t > categoryCounts;
932955 std::map<std::string, std::size_t > severityCounts;
956+ std::map<std::string, std::size_t > suspiciousDllCounts;
933957
934958 for (const auto & section : sectionReports) {
935959 ++sectionRiskCounts[section.risk ];
@@ -938,6 +962,7 @@ bool PEParser::exportJsonReport() const {
938962 for (const auto & api : suspiciousApiReports) {
939963 ++categoryCounts[api.category ];
940964 ++severityCounts[api.severity ];
965+ ++suspiciousDllCounts[api.dllName ];
941966 }
942967
943968 const int staticRiskScore =
@@ -1061,6 +1086,9 @@ bool PEParser::exportJsonReport() const {
10611086 << " \" api\" : \" "
10621087 << escapeJsonString (api.apiName )
10631088 << " \" ,\n "
1089+ << " \" dll\" : \" "
1090+ << escapeJsonString (api.dllName )
1091+ << " \" ,\n "
10641092 << " \" category\" : \" "
10651093 << escapeJsonString (api.category )
10661094 << " \" ,\n "
@@ -1116,6 +1144,28 @@ bool PEParser::exportJsonReport() const {
11161144 ++riskIndex;
11171145 }
11181146
1147+ report
1148+ << " },\n "
1149+ << " \" suspiciousDlls\" : {\n " ;
1150+
1151+ std::size_t suspiciousDllIndex = 0 ;
1152+
1153+ for (const auto & [dllName, count] : suspiciousDllCounts) {
1154+ report
1155+ << " \" "
1156+ << escapeJsonString (dllName)
1157+ << " \" : "
1158+ << count;
1159+
1160+ if (suspiciousDllIndex + 1 <
1161+ suspiciousDllCounts.size ()) {
1162+ report << " ," ;
1163+ }
1164+
1165+ report << " \n " ;
1166+ ++suspiciousDllIndex;
1167+ }
1168+
11191169 report
11201170 << " },\n "
11211171 << " \" categories\" : {\n " ;
0 commit comments