- 첫 번째 문제
URLegal.exe 파일을 실행시키고 종료시킬 때 나오는 창이다.
우리가 풀어여할 문제는 저 창이 안 나오게 하는 것이다. (레나 챌린지 15처럼 인라인 패치를 통해서 할 수 도있음)
Resource Hacker 툴을 사용하여 리소스 분석을 해보자.
Dialog 폴더에 들어가 보면 여러 개의 중 103:1033 이 우리가 원하는 창이 이미지로 보이게 되고, 어떻게 동작이 되는지도 확인을 할 수 있다.
이 창을 띄우기 위해서는 이 아이디를 호출을 해준다. (103번) -> 103은 Hex로 67이다
Ctrl + s을 눌러 명령 어을 찾는다.(push 67은 10진수로 103이다)
*ctrl + l 누르면 다음 거를 찾을 수 있음
F8로 하나씩 시작하 보면 CALL이 실행되는 쪽에서 메시지가 나올 줄 알았는데 나오지 않았다... 여기 부분이 아닌 거 같다.
위 주소를 보면 분기점 같은 거 보이지 않는다... PUSH EBP에 브레이크 포인트를 걸고 ESP 콜스택을 따라서 올라가 보자.
해당 분기점에서 실행을 할지 말지 결정하는 거 같다.
ZFLAG을 1에서 0으로 수정을 하고 실행을 하면 프로그램이 정상적으로 동작을 하는 걸 알 수 있다.
그러면 여기 부분이 우리가 찾던 분기 부분이다. JNZ에서 JE로 수정을 하고 파일을 저장하면 정상적으로 프로그램을 사용할 수 있다.
- 두 번째 문제
두번째 문제도 프로그램 종료 시 나오는 nag를 안 나오게 하는 문제이다.
리소스 분석 툴을 사용하여 ID가 100이라는 걸 확인할 수 있다.
모양은 꾸며진 모양이라서 다를 수 있다. 100번을 hex로 64이다.
Ctrl + s로 찾으면 100을 사용하는 곳이 너무 많다.....
All commands를 통해 100을 어디에서 사용하고 있는지 확인을 해보자.
100을 사용하는 곳에 브레이크 포인트를 걸고 어디에 브레이크 포인트가 걸리는지 확인을 하면 우리가 원하는 곳을 찾을 수 있다.
해당 부분에서 브레이크 포인트가 걸리는 걸 확인할 수 있다.
분기점을 찾아 JE을 JNZ로 수정을 한 다음 파일을 저장하면 정상적으로 프로그램이 실행이 된다.
'모의해킹 > 리버싱' 카테고리의 다른 글
난독화 코드 해석과 패치 방법 : 레나 챌린지(Level18) (0) | 2023.10.01 |
---|---|
키 생성기(키젠) 만들기 : 레나 챌린지(Level17) (0) | 2023.09.30 |
인라인 패치를 할 때 고려해야 하는 것들 : 레나 챌린지(Level 15) (0) | 2023.09.25 |
올리디버거를 사용한 인라인 패치 : 레나 챌린지 (Level 14) (0) | 2023.09.25 |
안티디버깅 Exception과 중요한 API 정보 확인 : 레나 챌린지(Level13) (0) | 2023.09.24 |