일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Frida
- Android
- upx
- 안티디버깅
- tar
- disk
- swing
- ctf-d
- 파일해시생성
- 모바일프로그래밍
- John the ripper
- 포렌식
- 리버싱핵심원리
- K-shield Jr 10기
- shadow
- ZIP
- Multimedia
- Interceptor
- Mobile
- crack
- 디스크
- SW에듀서포터즈
- 침해사고대응
- K-sheild Jr
- Reversing
- Autoware
- 써니나타스
- CodeEngn
- 케쉴주
Archives
- Today
- Total
물먹는산세베리아
[리버싱기초] Hello World.exe main() 찾기 본문
교재: 리버싱핵심원리
진도: 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 |