물먹는산세베리아

[리버싱기초] Hello World.exe main() 찾기 본문

Waregame & CTF/Reversing

[리버싱기초] Hello World.exe main() 찾기

suntall 2023. 9. 26. 23:59

교재: 리버싱핵심원리

진도: 1-02.Hello World! 리버싱

 

EP

EP(EntryPoint)는 Windows 실행파일의 시작점을 의미한다. 위 그림은 HelloWorld.exe를 디버거로 열었을 때의 첫 화면으로 여기서 EP는 주소 C7126C이다.

강조한 코드의 의미는 다음과 같다.

'00C71636=HelloWor.__security_init_cookie를 호출하고 00C710EA=HelloWor.__scrt_common_main_seh로 점프하라'

main() 찾기

00C71636=HelloWor.__security_init_cookie 함수로 들어왔다.

Ctrl+F9 눌러서 함수 내 return 명령어를 실행했다.

F8 실행, 함수 호출하고 return 시 다음 명령어가 온다.

F8 눌러서 JMP 실행, 00C710EA로 이동했다.

MessageBox() API가 없어서 main()함수라고 보기 어렵다.

RETN으로 이동하여 다음 CALL 명령어로 호출되는 함수들을 계속 살펴보았다.

그러던 중 C71000를 호출하는 함수를 발견했다.

해당 함수로 들어가니 MessageBoxW() API를 호출하는 코드를 확인할 수 있었다. 이때 API의 파라미터는 "www.reverssecore.com"과 "Hello World!" 문자열이다. 따라서 C71000 함수가 main()함수이다.

'Waregame & CTF > Reversing' 카테고리의 다른 글

PE 파일 구조  (0) 2024.02.27
LAB 6-4 분석  (0) 2021.11.21
LAB 6-3 분석  (0) 2021.11.20
[dream.io]rev 7, 8  (0) 2021.11.13
DLL Ejection  (0) 2021.11.13