2014-12-16 5 views
0

그래서 저는 방금 WINDBG를 배웠고 ollydbg에서 64bit로 업그레이드했습니다. 그리고 이상한 일을 연구하면서 : WINDBG에서 IDX에있는 동안 RXX 레지스터와 opcode를 모두 봅니다. 같은 EXE (예 : notepad.exe)를 디버깅하는 동안 EXX 명령어를 계속 볼 수 있습니다. 그 이유는 무엇입니까? 예 :X64 Disassemblers IDA 및 WINDBG. IDA는 x64 opcode를 보여주지 않습니다

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 왼쪽은

+2

해체에서 약간의 유사점을 인식 할 수 있지만 기계 코드 바이트는 완전히 다릅니다. WinDbg와 IDA에서 똑같은 것을보고 계실 것입니까? –

답변

0

IDA에서 32 비트 메모장을 디스 어셈블했습니다.

system32에서 notepad.exe를 열었습니까? 이 경우 IDA는 32 비트 버전을 갖습니다 (32 비트 실행 파일이므로 WoW64 filesystem redirection이 적용됩니다).

"수정"하는 가장 쉬운 방법은 system32 디렉토리에서 파일을 다른 곳으로 복사하여 거기에서 여는 것입니다.

+0

이유를 정확히 이것이 일어날까요? (이것이 맞습니다) 그리고 왜 효과 windbg? – Frustrated

+0

IDA는 32 비트 앱이므로. –

1

는 두 가지 버전이 있습니다 그 IDA 바로 오른쪽에있는 WINDBG입니다 귀하의 설치에 포함 된 IDA. IDA의 64 비트 버전 (예 : idaq64.exe)을 사용하고 있는지 확인하십시오.

분해 할 PE 파일이 64 비트이고 사용중인 IDA 버전이 64 비트 디스 어셈블리 용으로 설계된 경우 실제로 올바른 레지스터가 표시됩니다. 그렇지 않다면 이러한 조건 중 가장 가능성이 높은 것은 사실이 아닙니다.

+0

내가 더블, 트리플 체크 있습니다 .. x64bit IDA 버전을 사용 또한 메신저 모두 windbg를에와 IDA 에서 동일한 EXE를 실행해야합니다 메신저 (나는 또한 도움말 메뉴 탭 단지의 경우 검사) 100 % 메신저 – Frustrated