我正在使用 IDA 6.1 32 位版本。
我对 IDA 和 Hex 射线反编译很陌生。我的目标是从 32 位 PE 可执行文件生成一些 C 源代码。我知道这个文件是 32 位 PE 可执行文件。我在十六进制编辑器中查看了标头结构,并确认它具有 PE 标头段。当我在 IDA Pro 中反汇编该文件时,它识别出它是一个 x86 PE 可执行文件。
此外,IDA 在分析头段后产生以下输出:
; Format : Portable executable for 80386 (PE)
; Imagebase : 400000
; Section 1. (virtual address 00001000)
; Virtual size : 011DAC9D (18721949.)
; Section size in file : 011DB000 (18722816.)
; Offset to raw data for section: 00001000
; Flags 60000020: Text Executable Readable
; Alignment : default
; OS type : MS Windows
; Application type: Executable 32bit
但是,当我选择一个函数并尝试F5打开 Pseudocode 窗口时,我收到了一条无用的消息:
反编译失败:FFFFFFFF:不支持16位函数
请参阅手册以找到适当的操作
所以,我参考了手册,这也无济于事:
消息文本说明了一切。虽然反编译器本身可以微调以反编译 16 位代码,但目前这不是优先事项。可能在未来它会支持 16 位代码。
问题是这不是 16 位代码。我究竟做错了什么?
PS如果我需要提供更多信息来帮助回答这个问题,请告诉我。我对 IDA/Hex 射线很陌生,我不确定这里还有什么有用的。