미친해커

[WoW] 32Bit 모드에서 64Bit 모드로 전환하기 본문

Windows/Heaven's Gate (Windows on Windows x64)

[WoW] 32Bit 모드에서 64Bit 모드로 전환하기

미친해커 2022. 5. 31. 23:23
반응형
 

[WoW] 32Bit 응용 프로그램에서의 Kernel 함수 호출

Windows 64Bit에서 32Bit 응용 프로그램을 실행하고 디버거로 커널 함수의 어셈블리를 확인하면 대부분 다음과 같은 형식을 띄게 된다. mov eax, 0x00000026 # Windows System Call Number mov edx, Wow64SystemSe..

crazyhacker.tistory.com

이전 포스팅

이전 포스팅에서 jmp 0033:wow64cpu.dll+7009 라고 적힌 처음보는 jmp instrcution을 볼수 있었다.


해당 어셈블리를 Cheat Engine이 아닌 일반적인 디버거(OllyDbg, x64dbg)에서는 다르게 표시된다.

jmp far라는 instrcution으로 해석되는 것을 확인할 수 있는데 열심히 서치해본 결과 far 류의 어셈블리들은 절대주소 그리고 CS(Code Segment) 레지스터의 값을 변경한다는 사실을 알게 되었다.

 

해당 어셈블리는 CS 레지스터의 값을 변경하고 0x77DF7009의 주소로 점프한다. 그리고 해당 주소의 어셈블리를 확인해보면 jmp qword ptr [r15+0xF8] 으로 64Bit에서 사용되는 레지스터를 사용하는 것을 확인할 수 있다.

마무리

어셈블리를 분석해봤을 때 CS 레지스터의 값을 0x0033으로 변경하고 64Bit 어셈블리를 실행하는 것으로 보아 CS 레지스터의 값이 0x0033 이라면 64Bit 모드 0x0023 이라면 32Bit 모드 인것으로 생각된다.

반응형
Comments