IDA 将文件检测为 Windows 和 MS-DOS 程序

问题描述 投票:0回答:1

好吧,我有一个相当可疑的文件,它甚至对我的电脑进行了一些控制。但是,我需要它,所以我决定反编译它,看看它是否损害我的电脑,我可以把它删除吗?

我使用了几个反编译器,但我目前使用的是 IDA 64,它说该文件可能有几种格式:pe64.dll、dos64.dll、二进制文件。 顺便说一句,它似乎有所有这些格式。

当我将其反编译为 MS-DOS EXE 时,我得到了:

  • 可能是打包文件,继续吗? --> 是的
  • 输入文件末尾有额外信息(尾部22C53C0h,加载450h),继续吗? --> 是的

最后我在段 seg000 处只得到了一个函数“start”,里面有这段代码

; 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 时,我得到了:

  • 找不到相对虚拟地址0013C678的翻译,是否继续? --> 是的

现在我得到了

  • 65k 个名为 sub_XXXXXXXXX 的函数,
  • Viev-A,
  • broken code,
  • 仅使用“start”导出(可能是 MS-DOS 段),
  • 使用包括 InternetReadFile 在内的 sew 库导入,这对我来说有点可疑。
encryption dos portable-executable decompiling ida
1个回答
0
投票

选择“可移植可执行文件”。

事实是,为了与 DOS 兼容(当它相关时),每个 PE 可执行文件都有一个 DOS MZ 可执行标头和一个小的 thunk DOS 程序,该程序打印诸如“此程序无法在 DOS 模式下运行”之类的信息并退出。

因此,每个有效的 Windows 可执行文件也是有效的 DOS 可执行文件——因此 IDA 会这样检测它。

Windows 不运行此 thunk 程序,因此即使文件包含恶意代码,也不能在此处查找它。

© www.soinside.com 2019 - 2024. All rights reserved.