基本上我在 Windows 32 位上使用 IDA Pro 6.1,处理来自 SPEC 2006 的二进制文件。
我使用 IDA Pro 从二进制文件生成 asm 代码,在 .data 部分,我看到数据定义如下:
GS_ExceptionRecord _EXCEPTION_RECORD <?>
GS_ContextRecord _CONTEXT <?>
lclcritsects _RTL_CRITICAL_SECTION 0Eh dup(<?>)
.....
DoubleFormat FpFormatDescriptor <400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh>
FloatFormat FpFormatDescriptor <80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh>
基本上我在生成的 asm 代码中找不到_EXCEPTION_RECORD、_CONTEXT、_RTL_CRITICAL_SECTION、FpFormatDescriptor的定义。
在代码中,它们将像这样使用:
mov edi, DoubleFormat.precision
mov eax, DoubleFormat.min_exp
sub ecx, DoubleFormat.precision
mov edi, FloatFormat.precision
mov edi, offset lclcritsects
mov GS_ContextRecord._Eax, eax
mov word ptr GS_ContextRecord.SegSs, ss
pop GS_ContextRecord.EFlags
所以基本上我的问题是:
我怎样才能找到这些东西的定义?
基本上我使用File-->Produce File-->Create ASM File来生成用于分析的 asm 代码,然后我如何将这些定义从 IDA Pro 的 Structures 窗口转储到这个 asm 代码中?
更重要的是,即使我展开它们,我似乎也无法在“结构”窗口中找到定义....