X64反汇编程序IDA和WINDBG。 IDA没有显示x64操作码

时间:2014-12-16 15:20:26

标签: reverse-engineering windbg disassembly ida

所以我刚开始学习WINDBG,从ollydbg升级到64bit。在学习一些奇怪的东西时:在WINDBG上我看到所有的RXX寄存器和操作码在IDA上我仍然看到EXX操作码同时调试相同的EXE(例如notepad.exe) 有谁知道为什么会这样? 例如:

WINDBG:

0:000> u notepad!_security_init_cookie L5

notepad!_security_init_cookie:    
00000000`ffaf3380 48895c2418      mov qword ptr [rsp+18h],rbx    
00000000`ffaf3385 57              push rdi    
00000000`ffaf3386 4883ec20        sub rsp,20h    
00000000`ffaf338a 488b05e7cc0000  mov rax,qword ptr [notepad!_security_cookie (00000000ffb00078)]    
00000000`ffaf3391 488364243000    and qword ptr [rsp+30h],0

IDA:

___security_init_cookie proc near ; CODE XREF: _WinMainCRTStartupp    
.text:01003053 8B FF            mov edi, edi    
.text:01003055 55               push ebp    
.text:01003056 8B EC            mov ebp, esp    
.text:01003058 83 EC 10         sub esp, 10h    
.text:0100305B A1 10 C0 00 01   mov eax, ___security_cookie

或图片: IDA and WinDbg Screenshot 左边是WINDBG,右边是IDA

2 个答案:

答案 0 :(得分:1)

您的安装中包含两个版本的IDA。请确认您使用的是64位版本的IDA(例如,idaq64.exe)。

如果正在反汇编的PE文件是64位,并且正在使用的IDA版本是为64位反汇编设计的版本,那么您确实会看到正确的寄存器。如果没有,那么很可能其中一个条件不正确。

答案 1 :(得分:0)

您已经在IDA中反汇编了32位记事本。

您是否从system32打开了notepad.exe?在这种情况下,IDA获得了32位版本(因为它是32位可执行文件,因此受WoW64 filesystem redirection约束)。

“修复”这个问题的最简单方法是将文件从system32目录复制到其他地方并从那里打开。