교재: 리버싱핵심원리
진도: 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 |