修复一个导致崩溃的问题

This commit is contained in:
Huoji's
2025-04-20 23:43:54 +08:00
parent 143a336c8b
commit 8cfd24ab43
7 changed files with 66 additions and 11 deletions

View File

@@ -475,6 +475,24 @@ std::vector<double> MachineLearning::ExtractFeatures(const uint8_t* buffer,
// 提取所有特征
std::vector<double> allFeatures;
const size_t EXPECTED_PROPERTY_FEATURES = 14; // 14个布尔值属性
const size_t EXPECTED_LIBRARY_FEATURES = 150; // _libraries数组大小
const size_t EXPECTED_ENTROPY_FEATURES = 1; // 文件熵
const size_t EXPECTED_ENTRYPOINT_FEATURES = 64; // EncodeEntrypoint实际使用64字节
const size_t EXPECTED_SECTION_FEATURES = 5; // EncodeSections实际返回5个特征
const size_t EXPECTED_RATIO_FEATURES = 1; // 代码比率
const size_t EXPECTED_SECTION_COUNT_FEATURES = 1; // 节区数量
const size_t TOTAL_EXPECTED_FEATURES =
EXPECTED_PROPERTY_FEATURES +
EXPECTED_LIBRARY_FEATURES +
EXPECTED_ENTROPY_FEATURES +
EXPECTED_ENTRYPOINT_FEATURES +
EXPECTED_SECTION_FEATURES +
EXPECTED_RATIO_FEATURES +
EXPECTED_SECTION_COUNT_FEATURES;
allFeatures.reserve(TOTAL_EXPECTED_FEATURES);
// 1. PE段属性
std::vector<double> propFeatures =
@@ -512,7 +530,6 @@ std::vector<double> MachineLearning::ExtractFeatures(const uint8_t* buffer,
// 清理资源
peconv::free_pe_buffer(peBuffer);
return allFeatures;
}