일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 크롤러
- Java
- STP
- vector
- vlan
- 암호학
- bastion host
- Repository
- Firewall
- dreamhack
- CISCO
- 리버싱
- 스위치
- 라우터
- AWS
- Screening Router
- Reversing
- Mac
- 머신러닝 프로세스
- Python
- docker
- AI
- cmd
- 네트워크
- 인공지능
- 머신러닝
- 온프레미스
- RIP
- 자바
- abex'crackme
- Today
- Total
Haekt‘s log
[리버싱] reversing with lena-tutorial 3 본문
- 사용 툴
- X32dbg
- HxD32
이번에 할 리버싱 파일은 lena-tutorial 3 의 RegisterMe.exe 이다.
특정 메세지창을 제외한 자잘한 메세지창을 다 지우면 성공하는 문제이다.
- 01. 툴에서 메세지가 뜨는 부분 확인
실행을 시켜주니 아래와 같은 두 창이 떴다.
Remove the nags 창을 지우면 성공한다고 적혀있다. 마지막엔 Oops! 창이 뜨며 register 실패했다고 뜬다.
어떻게 이 창이 뜨는지 x32dbg에서 한번 확인해 봐야겠다.
먼저 실행을 시켜서 EntryPoint 로 이동했다.
이번엔 문자열을 찾을 필요없이, 간단하게 메세지문이 순서대로 뜨게 되어있었다.
Message Box 순서대로 원리를 파악해보자.
2. Remove the nags
GetModulHandle 함수를 통해 핸들러를 가져오고, eax 의 값을 40311C 에 넣고, 0과 비교하여 같을경우 이 message box를 건너뛴다.
같지 않을 경우 정상적으로 Remove the nags 메세지 박스가 뜬다.
GetModulHandle 함수는 무슨 용도일까. Google 에 검색해보니 모듈(프로그램)핸들을 가져오는 함수로, 성공하면 메모리상 프로그램의 시작위치를 반환한다. 실패하면 Null(0)을 반환한다고 한다.
eax에는 보통 반환값이 담긴다.. 비교문까지의 eax 값을 살펴보자.
400000 이 들어간다. 성공적으로 핸들러를 불러왔다는 뜻(eax 가 0이 아니다)으로 이해할 수 있다.
그럼 cmp eax, 0 에서 비교 후 je 문을 그냥 지나쳐 Remove the nags 메세지 박스를 띄우게 된다.
그냥 간단하게 점프문을 고쳐서 무조건 점프하게 만들어 메세지 박스가 안뜨도록 해 보자.
je 문을 클릭하고 스페이스바를 눌러 jmp 로 수정해준다.
그럼 메세지를 띄우지 않고 건너뛰게 된다.
이제 oops! 부분을 지워보자.
2. Oops!
이부분은 훨씬 더 간단하다.
그냥 간단하게 oops! 부분을 nop 으로 바꿔주면 된다 ㅋㅋㅋㅋ
스페이스바를 눌러 nop으로 바꿔주자.
단, 프로그램의 크기를 맞추기 위해 잔존바이트를 nop으로 채워 크기를 맞춰줘야 한다.
x32dbg에는 해당 기능이 있으므로, 그냥 체크하고 수정하면 된다.
이제 패치를 하고 실행시켜보자.
https://haekt-log.tistory.com/22
패치 방법은 위 링크에 적어놨다.
이 메세지만 뜨면 성공..!
Register.Oops.exe 파일은 아래에 작성해 놓았다.
https://haekt-log.tistory.com/24
'Reversing' 카테고리의 다른 글
X32,64 dbg 파일 패치방법 (0) | 2022.09.25 |
---|---|
[ASM] TEST EAX, EAX 왜 쓰는걸까? (0) | 2022.09.20 |
[리버싱] abex' crackme #3 문제풀이 (x32 dbg) (0) | 2022.09.20 |
[리버싱] abex' crackme #1 문제풀이 (x32 dbg) (1) | 2022.09.20 |
[리버싱] reversing with lena-tutorial 1 (1) | 2022.09.20 |