疑似恶意多格式文件逆向求助:IDA识别为Windows/MS-DOS程序
恶意多格式文件分析与去毒建议
文件特征与反编译异常分析
这个文件是复合格式文件,同时包含PE64 DLL、DOS64 DLL和原始二进制数据,这种多格式打包方式要么是合法软件的跨兼容壳,要么是恶意软件用来混淆检测的手段——结合你提到的PC疑似被控制的现象,恶意可能性更高。
第一次MS-DOS EXE反编译结果
得到的start函数是典型的16位DOS诱饵代码,仅执行打印字符串(指向DS:0Eh位置的$结尾字符串)和退出操作,返回码为1:
; Segment type: Pure code seg000 segment byte public 'CODE' use16 assume cs:seg000 assume es:nothing, ss:seg000, ds:nothing, fs:nothing, gs:nothing ; Attributes: noreturn public start start proc near push cs pop ds assume ds:seg000 mov dx, 0Eh mov ah, 9 int 21h ; DOS - PRINT STRING ; DS:DX -> string terminated by "$" mov ax, 4C01h int 21h ; DOS - 2+ - QUIT WITH EXIT CODE (EXIT) start endp ; AL = exit code
这段代码没有实际功能,纯粹是用来误导反编译工具,隐藏真实执行逻辑。
第二次MS-DOS EXE反编译异常
出现的以下现象说明文件存在加壳或代码混淆:
- 生成65k个自动命名的
sub_XXXXXXXXX函数:大概率是壳的解码/解密逻辑,而非真实功能代码 - 存在断裂代码(broken code)、无法解析RVA 0013C678:壳的混淆操作破坏了正常的代码结构,导致反编译工具无法正确识别
- 导入表中的
InternetReadFileAPI:这个函数用于从网络读取数据,恶意软件常用来下载恶意payload、回传敏感数据,结合你观察到的PC被控制现象,高度怀疑它会执行远程控制类操作。
恶意行为判定
综合以上分析,该文件大概率存在恶意行为,核心依据:
- 多格式混淆+加壳,符合恶意软件逃避安全检测的典型特征
- 包含网络读取API,具备远程获取恶意指令或下载payload的能力
- 你已经观察到PC被控制的异常现象,这是恶意行为的直接表现
有害部分移除方案
1. 先完成脱壳操作
复合格式加壳文件需要针对性脱壳:
- 优先针对PE64 DLL格式分析:用
x64dbg动态调试,找到程序真实入口点(OEP)后dump内存,再用ImportREC修复导入表,得到脱壳后的干净文件 - 通用脱壳尝试:如果是常见壳(如UPX),可以直接用
upx -d命令脱壳;复杂壳则需要手动调试定位解密逻辑
2. 定位恶意代码段
用IDA Pro加载脱壳后的PE64 DLL,重点追踪以下内容:
- 调用
InternetReadFile的代码路径,确认它读取的远程URL、后续数据处理逻辑 - 监控文件操作、注册表修改、进程创建等敏感行为对应的代码段
3. 移除恶意逻辑
- 如果恶意代码是独立的函数或节段:可以直接删除对应代码,同时修复相关跳转指令和导入表,但操作前务必备份原文件
- 如果恶意逻辑与合法功能深度耦合:不建议手动修改——这种情况下修改极易导致合法功能失效,甚至残留恶意代码,风险极高
替代方案
如果必须使用该文件的功能,建议在隔离环境中运行:
- 用VMware、VirtualBox等虚拟机搭建独立环境
- 用沙箱工具(如Cuckoo Sandbox)实时监控它的网络、文件、注册表操作,避免影响真实PC
内容的提问来源于stack exchange,提问作者faygoLover
相关产品推荐
相关产品推荐

