| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- webhacking
- 우테코
- 깃
- 백엔드
- sk쉴더스 루키즈
- 웹개발
- 우아한테크코스
- SK쉴더스
- 루키즈 31기
- 애플리케이션 계층
- React
- 악성코드 분석
- 루키즈31기
- SK쉴더스루키즈
- 위상 정렬
- sk 쉴더스 루키즈
- 프리코스
- 트랜스포트 계층
- Dreamhack
- 예술의 전당
- 프랑스어 #프랑스어배우기 #프랑스어독학 #델프인강 #시원스쿨프랑스어 #delf독학 #델프 #프랑스어기초 #프랑스어공부
- 진입차수
- linux
- 서울청년문화패스
- 코리안챔버오케스트라
- 알고리즘
- c
- 자바
- 다이나믹 프로그래밍
- 레나튜토리얼
- Today
- Total
yon11b
[Lena Reversing] 3번-잔소리 제거하기 본문
두 개의 파일이 있다.

RegisterMe.exe 파일 먼저 살펴보겠다.

진짜 시작은 00401000에서부터이다.

실행해보면 다음과 같은 창들이 뜬다. nag(잔소리. 여기서 1번 3번 창)를 없애는 것이 목적인 문제이다.



풀이

CMP EAX, 0의 값은 항상 ZF=1이다.
GetModuleHandleA가 실행되고 반환된 값은 EAX에 할당되기 때문이다.
그래서 그냥 실행하면 JE는 무조건 실행된다.
근데 우리는 x표 친 부분을 실행 시켜서는 안 되고 0x401024로 바로 넘어가야 하는데 그 방법에는 여러가지가 있다.
- JE를 JMP로 수정
- entry point를 401000이 아니라 401024로 수정
2번 방법으로 해주자

entrypoint가 위치한 주소는 4000E8이다.
dump창으로 가서 이 주소를 24 10 으로 수정해주자.(리틀엔디안)

수정 방법은 ctrl+e를 누르면 된다.
그런데 밑에 error message box가 하나 더 있다. 얘는 따로 jmp 가 없으므로 그냥 다 NOP으로 채워주도록 하자.


여기까지 하고 copy to execute file 을 해주자.
이제 그 파일을 실행하면 두 개의 nags alert 창이 안 뜨고 아래 창만 뜨는 것을 확인할 수 있다.

RegisterMe vs RegisterMe.oops 비교
그냥 RegisterMe.oops을 열어보면 내용이 좀 빠져있는 것을 알 수 있다.

HxD로 정상이랑 비정상(oops)를 비교해가면서 이상한 곳을 수정해주자.
두 파일을 두고 같은 위치에 커서를 두고 F6을 누르면 자동으로 다른 곳을 찾아준다.
이 부분은 size of code 값이 다른 것이다.
정상: 400 / 비정상: 400 400

다 수정하면 이런 창이 뜬다.

그리고 다시 peview로 oops파일을 열어보면 정상적으로 모든 구조가 잘 표시된다.

'보안 > 리버싱' 카테고리의 다른 글
| [Lena Reversing] 4번-PixtopianBook 체험판 크랙하기 (0) | 2026.05.30 |
|---|
