2009-06-22 4 views
4

핸들을 반환하는 Createthread와 같은 일부 win32API를 디버깅하려고합니다. windbg에서 반환 값을 얻는 방법은 무엇입니까?windbg 함수에서 반환 값을 얻는 방법은 무엇입니까?

나는 약간의 연구를 수행했으며 반환 값은 일반적으로 EAx 레지스터에 저장된다는 것을 알았습니다.

CreateThread에 중단 점을 넣으면 Createthread 어셈블리로 들어갈 수 있으며 궁극적으로 Createthread를 반환한다는 ret 문을 사용할 것입니다.

이 시점에서 HANDLE 값을 얻으려면 EAX 레지스터의 값을 확인해야합니까 아니면 다른 방법입니까?

답변

9

기본적으로 eax 테스트와 다른 방법은 없습니다.

EAX는 32 비트에 대해 잘 작동 : 당신이 현학적 얻고 싶은 경우에

.

RAX는

ret0 아이태니엄은

$의 retreg는 의사가 모든 경우에 제대로 작동합니다 그것을 사용할 수 있습니다 레지스터입니다 사용하는 것입니다 64 비트 응용 프로그램에 대해 원하는 것입니다 것입니다.

 
0:028> r rax 
rax=00000000fff02000 
0:028> r eax 
eax=fff02000 
0:028> r $retreg 
$retreg=00000000fff02000