查看: 4015|回复: 5
收起左侧

[其他] 火绒反病毒引擎白皮书中的用例失效

[复制链接]
电脑发烧友
发表于 2021-10-21 19:28:07 | 显示全部楼层 |阅读模式
本帖最后由 电脑发烧友 于 2021-10-21 19:31 编辑

偶然间看到了火绒反病毒引擎的白皮书内的一段测试用的 PE 文件特征。
  1. #include <stdio.h>
  2. int main(int argc, char *argv[]) {
  3.     printf("HUORONG ANTIVIRUS ENGINE TEST FILE\n");
  4.     return 0;
  5. }
复制代码

显然这个所谓的特征就是字符串 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



简易测试
测试步骤
按照白皮书的说明直接编译测试代码。
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <Windows.h>

  4. int main(int argc, char *argv[]) {

  5.     printf("HUORONG ANTIVIRUS ENGINE TEST FILE\n");
  6.     return 0;
  7. }
复制代码

测试结果
右键查杀成功检出:病毒名:TEST/AVEngTestFile!Huorong, 病毒ID:6bc101428f5312e0



释放器(一)测试

测试步骤
按照白皮书的思路执行下列步骤。
  • 将“简易测试”中使用的样本进行编码,公式为 `f(b) = b ^ 0x60`。
  • 将编码结果保存为 C 语言的字节数组,存储在 `data.h` 文件中。
  • 使用下列代码将样本还原并写入到一个新创建的文件中。

  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <Windows.h>
  5. #include <math.h>
  6. #include "data.h"

  7. unsigned char buf[sizeof(rawData)];
  8. size_t len = sizeof(buf);

  9. int main(int argc, char* argv[]) {
  10.     FILE* fp = fopen("D:\\mal.bin", "wb");
  11.     for (size_t i = 0; i < len; i++) {
  12.         unsigned char c = rawData[i] ^ 0x60;
  13.         buf[i] = c;
  14.     }
  15.     fwrite(buf, sizeof(unsigned char), len, fp);
  16.     fclose(fp);
  17.     return 0;
  18. }
复制代码

其实就是写了一个病毒释放器,运行时将经过混淆后病毒还原并创建还原后的病毒文件。

测试结果

  • 右键查杀“释放器”并未检出。
  • 右键查杀被释放的文件则成功检出:病毒名:TEST/AVEngTestFile!Huorong, 病毒ID:6bc101428f5312e0

根据白皮书第 22 页中的“测试 1”,本次测试应该全部检出,但结果却相反,不知为何。



释放器(二)测试
测试步骤

除代码外同“释放器(一)”,代码中有了大量的系统调用。
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <Windows.h>
  5. #include <math.h>
  6. #include "data.h"

  7. unsigned char buf[sizeof(rawData)];
  8. size_t len = sizeof(buf);

  9. int main(int argc, char* argv[]) {
  10.     FILE* fp = fopen("D:\\mal.exe", "wb");
  11.     for (size_t i = 0; i < len; i++) {
  12.         unsigned char c = rawData[i] ^ 0x60;
  13.         fwrite(&c, sizeof(unsigned char), 1, fp);
  14.     }
  15.     fclose(fp);
  16.     return 0;
  17. }
复制代码

测试结果

  • 右键查杀“释放器”并未检出。
  • 右键查杀被释放的文件则成功检出:病毒名:TEST/AVEngTestFile!Huorong, 病毒ID:6bc101428f5312e0

根据白皮书第 23 页中的“测试 3”,本次测试应该全部检出,但结果却相反,不知为何。

@火绒工程师

评分

参与人数 1人气 +1 收起 理由
huorong + 1 感谢提供分享

查看全部评分

电脑发烧友
 楼主| 发表于 2021-10-21 19:29:33 | 显示全部楼层
二楼备用,顺便召唤官人。

@火绒工程师
火绒工程师
发表于 2021-10-22 09:56:01 | 显示全部楼层
您好,您的问题收到了,帮您转交相关人员,感谢您的反馈~
火绒工程师
发表于 2021-10-22 13:16:15 | 显示全部楼层
您好,火绒行为沙盒暂不支持对x64程序的模拟。感谢您的反馈~

评分

参与人数 1人气 +1 收起 理由
尘梦幽然 + 1

查看全部评分

整数环
发表于 2021-10-22 19:32:40 来自手机 | 显示全部楼层
火绒工程师 发表于 2021-10-22 13:16
您好,火绒行为沙盒暂不支持对x64程序的模拟。感谢您的反馈~

请问以后会考虑支持x64吗
wwwab
发表于 2021-11-4 06:54:19 | 显示全部楼层
火绒工程师 发表于 2021-10-22 13:16
您好,火绒行为沙盒暂不支持对x64程序的模拟。感谢您的反馈~

快快提需求啊
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-21 22:30 , Processed in 0.116806 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表