执行训练脚本时只能识别到一种样本
features.py里这一行缺一个方括号,加上就好
# 处理入口节区名称特征
entry_name_hashed = FeatureHasher(50, input_type="string").transform([[raw_obj['entry']]]).toarray()[0]
# entry_name_hashed = FeatureHasher(50, input_type="string").transform([raw_obj['entry']]).toarray()[0]
加上之后,发现问题解决不了,其实是因为在运行代码时用的是conda环境中的egg里的代码,要进入环境的目录,解压、改代码、重新压缩才行
# 创建临时目录
mkdir -p /tmp/ember_fix
# 解压egg文件到临时目录
cd /tmp/ember_fix
unzip /home/qy/miniconda3/envs/ember/lib/python3.8/site-packages/ember-0.1.0-py3.8.egg
# 编辑features.py文件
nano ember/features.py
# 找到并修改那一行代码
# 重新打包
zip -r /home/qy/miniconda3/envs/ember/lib/python3.8/site-packages/ember-0.1.0-py3.8.egg ember/*
# 返回项目目录
cd /mnt/e/malware/ember-master
# 重新运行训练脚本
python scripts/init_ember.py /mnt/e/malware/ember-master/qy-extracted_features/dike -m -t