本帖最后由 电脑发烧友 于 2021-10-21 19:31 编辑
偶然间看到了火绒反病毒引擎的白皮书内的一段测试用的 PE 文件特征。
- #include <stdio.h>
- int main(int argc, char *argv[]) {
- printf("HUORONG ANTIVIRUS ENGINE TEST FILE\n");
- return 0;
- }
复制代码
显然这个所谓的特征就是字符串 HUORONG ANTIVIRUS ENGINE TEST FILE\n。
我并不是相关从业人员,不过白皮书读起来挺靠谱的,于是就做了一些测试。
发起此贴纯属好奇,并非来丢砖头,毕竟不是什么严谨的测试。
测试环境
- Windows10 x64 21H1
- 火绒个人版 5.0.64.1
- 病毒库最后更新于 2021 年 10 月 20 日 17:50
- 开发环境为 Microsoft Visual Studio Community 2019 4.8.04084
- Release x64
简易测试
测试步骤
按照白皮书的说明直接编译测试代码。
- #include <stdio.h>
- #include <string.h>
- #include <Windows.h>
- int main(int argc, char *argv[]) {
- printf("HUORONG ANTIVIRUS ENGINE TEST FILE\n");
- return 0;
- }
复制代码
测试结果
右键查杀成功检出:病毒名:TEST/AVEngTestFile!Huorong, 病毒ID:6bc101428f5312e0。
释放器(一)测试
测试步骤
按照白皮书的思路执行下列步骤。
- 将“简易测试”中使用的样本进行编码,公式为 `f(b) = b ^ 0x60`。
- 将编码结果保存为 C 语言的字节数组,存储在 `data.h` 文件中。
- 使用下列代码将样本还原并写入到一个新创建的文件中。
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <string.h>
- #include <Windows.h>
- #include <math.h>
- #include "data.h"
- unsigned char buf[sizeof(rawData)];
- size_t len = sizeof(buf);
- int main(int argc, char* argv[]) {
- FILE* fp = fopen("D:\\mal.bin", "wb");
- for (size_t i = 0; i < len; i++) {
- unsigned char c = rawData[i] ^ 0x60;
- buf[i] = c;
- }
- fwrite(buf, sizeof(unsigned char), len, fp);
- fclose(fp);
- return 0;
- }
复制代码
其实就是写了一个病毒释放器,运行时将经过混淆后病毒还原并创建还原后的病毒文件。
测试结果
- 右键查杀“释放器”并未检出。
- 右键查杀被释放的文件则成功检出:病毒名:TEST/AVEngTestFile!Huorong, 病毒ID:6bc101428f5312e0。
根据白皮书第 22 页中的“测试 1”,本次测试应该全部检出,但结果却相反,不知为何。
释放器(二)测试
测试步骤
除代码外同“释放器(一)”,代码中有了大量的系统调用。
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <string.h>
- #include <Windows.h>
- #include <math.h>
- #include "data.h"
- unsigned char buf[sizeof(rawData)];
- size_t len = sizeof(buf);
- int main(int argc, char* argv[]) {
- FILE* fp = fopen("D:\\mal.exe", "wb");
- for (size_t i = 0; i < len; i++) {
- unsigned char c = rawData[i] ^ 0x60;
- fwrite(&c, sizeof(unsigned char), 1, fp);
- }
- fclose(fp);
- return 0;
- }
复制代码
测试结果
- 右键查杀“释放器”并未检出。
- 右键查杀被释放的文件则成功检出:病毒名:TEST/AVEngTestFile!Huorong, 病毒ID:6bc101428f5312e0。
根据白皮书第 23 页中的“测试 3”,本次测试应该全部检出,但结果却相反,不知为何。
@火绒工程师
|