INTERTLUDE/리버싱 스터디
[리버싱 스터디]_1주차 Hello World 디버깅 라이트업
희원킴
2025. 9. 23. 19:05
해당 실습에서는 Immunity Debugger를 기본 디버깅 툴로 사용하였으며, HxD와 7-zip은 이후 과제 풀이를 위해 함께 설치하였다
1) Immunity Debugger,
2) HxD
3) 7-zip file manager

설치를 마친 뒤, File → Open 메뉴를 통해 HelloWorld.exe 파일을 열고 디버깅을 시작하였다.

그다음으로는,
- 코드 실행을 F8(Step Over) 키로 한 줄씩 진행하면서, 실제로 프로그램의 동작을 수행하는 부분을 확인하였다.
- 004011DF CALL Hellowor.00401000 명령을 발견하였는데, 이는 CRT 초기화 루틴에서 프로그램의 main 함수(00401000)를 호출하는 부분임을 확인할 수 있었다.

00401000 주소로 이동해 내부를 확인하니,
- 사진과 같은 코드들이 나타났고, 이는 MessageBox API 호출을 통해 문자열을 출력하는 부분임을 알 수 있었다.

- 여기서 CALL USER32.MessageBoxW 직전에서 F8(Step Over)를 실행하자 실제로 "HelloWorld!"라는 문자열이 출력된 메시지박스가 화면에 나타났다.
- 따라서 OEP(Open Entry Point)에 진입한 뒤 실행을 추적하면, CRT 초기화 루틴을 거쳐 main 함수 내부에서 MessageBox를 호출해 ‘HelloWorld!’ 팝업을 띄우는 구조임을 확인할 수 있었다!