일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 |
- HackCTF
- pwnable
- ucrtbase.dll
- hacking
- vcruntime.dll
- Windows
- 네트워크 바이트 오더
- 윈도우 커널 드라이버
- Network Byte Order
- Windows Kernel
- 바이트 오더
- vcruntime140.dll
- packet capture
- windows kernel debugging
- IAT Hooking
- 개발 환경 준비
- 해킹
- pcap packet
- 포너블
- arudino
- 윈도우 커널 디버깅
- 윈도우 커널
- apphelp.dll
- C언어 패킷캡쳐
- 개발하기
- Windows Kernel Debug
- 시스템해킹
- Msvcrt.dll
- Windows Kernel Driver
- pcap packet capture
- Today
- Total
목록2022/06 (3)
미친해커

How are ntdll.dll and WoW ntdll.dll different? ntdll.dll은 커널 함수가 정의 되어 있는 DLL이다. 유저 모드의 커널 함수들은 syscall을 통해 커널 함수를 호출할 수 있다. 하지만 운영체제(커널)은 64Bit이며 WoW 프로세스는 32Bit로 동작한다. 그렇기에 32Bit 프로세스는 syscall 하기 전 64Bit 모드로 전환할 필요가 있다. 위 이미지와 같이 WoW ntdll.dll의 경우 syscall number를 eax 레지스터에 지정하고 syscall이 아닌 call edx로 어떠한 함수를 호출하는 것을 확인할 수 있다. Which function is invoked using edx register? call edx는 ntdll!Wow64Sy..

나는 지금까지 WoW(Windows on Windows) 프로세스를 완벽하게 디버깅하기 위해서는 CheatEngine을 사용해야 한다고 생각했다. 왜냐하면 CS 레지스터의 값이 바뀌면서 모드가 변경되면 일반적인 디버거들은 오류를 일으키거나 해당 부분을 건너뛰어서 디버깅을 했다. 그렇기 때문에 CheatEngine을 사용해야한다고 생각했는데 해당 CheatEngine도 불편해서 사실상 제대로된 디버깅은 해본적이 없다. 그런데 Windbg를 이용하면 정상적으로 디버깅이 가능하다는 글을 보게되었다. 당연한 사실이지만 생각보다 지원되는 기능들이 많아서 너무 편하다. How to Debug for WoW Process use Windbg 딱히 특별한 방법이 있는건 아니다. 아래 페이지에서 설치관리자를 다운받고 실..

[WoW] 32Bit 모드에서 64Bit 모드로 전환하기 [WoW] 32Bit 응용 프로그램에서의 Kernel 함수 호출 Windows 64Bit에서 32Bit 응용 프로그램을 실행하고 디버거로 커널 함수의 어셈블리를 확인하면 대부분 다음과 같은 형식을 띄게 된다. mov eax, 0x00000026 # crazyhacker.tistory.com 이전 포스팅에서 jmp far 라고하는 처음보는 형태의 어셈블리를 확인했었다. 그리고 해당 far 어셈블리는 CS 레지스터의 값을 변경하는 어셈블리였으며 32Bit 모드에서 64Bit 모드로 변경하기 위해서는 CS 레지스터의 값을 변경해야 한다는 것도 알았다. 이번 포스팅에서는 Far 어셈블리와 Near 어셈블리의 차이점을 알아보려고 한다. jmp instruc..