Yozzang의 해킹일기 💻
article thumbnail
728x90

이번 포스트에서는 레나 튜토리얼의 Level 13 문제에 대해 다루겠다.


문제를 실행하면 다음과 같다.

Level 13

## 문제 해석 : 

보안 관련 프로그램이다. 등록(Register)하면 되는 것으로 보인다.

## 문제 풀이 : 

먼저 Ollydbg를 통해 해당 파일을 열어보겠다.

Level 13

해당 프로그램에 안티 디버깅 기법이 적용되어 있으므로 먼저 다음과 같이 예외처리를 설정해준다.

Ollydbg - 예외 처리

해당 프로그램을 실행하여 Register 코드를 아무거나 입력해보면 다음과 같은 에러창이 뜬다.

에러창

Ollydbg의 스레드 기능을 통해 다음과 같은 현재 실행 중인 스레드 리스트를 확인할 수 있다.

Ollydbg - 스레드

메인 스레드에 들어가서 커널을 확인해보면 다음과 같이 에러 메시지 박스를 호출하는 부분을 볼 수 있다.

Ollydbg - 커널

해당 함수를 호출하는 곳으로 가서 확인해보면 다음과 같다.

45C417

여기서 BP를 걸고 재실행해보면 스택 영역에 다음과 같은 내용이 담겨있다.

Ollydbg - 스택

4174B1에서 왔다는 사실을 알 수 있다. 해당 위치에 가서 확인해보면 다음과 같다.

4174B1

윗부분을 확인하면 우리가 봤던 에러창과 똑같은 내용이 담겨 있다. 또한 아래쪽으로 내리다 보면 "Congratulations!"에 관한 내용이 담겨 있다는 것을 알 수 있다.

41749C

좀더 위로 올라가다 보면 위와 같은 JNZ 분기문이 존재한다는 것을 확인할 수 있다. 해당 분기문은 0이 아닌 경우 "Congratulations!" 문구를 출력하는 곳으로 가게 해준다.

 

그럼 AL값이 0이 아닌 다른 값으로 바꿔야 한다. AL값은 바로 위의 417495의 CALL 명령어에서 정하므로 해당 위치에 BP를 걸고 내부 구조를 조사해보겠다.

41791A

CALL 명령어의 내부 구조를 조사하다보면 위와 같이 XOR 명령어를 발견할 수 있다. 이는 AL 값을 0으로 초기화하는 작업이므로 해당 코드를 변조해보겠다.

XOR -> MOV

### 실행 결과 : 

1차 우회 성공

프로그램 기능은 잠금해제 되었으나 About 부분을 확인해보면 여전히 아래와 같이 미등록 문구가 뜬다.

About

Ollydbg의 검색 기능을 활용하여 해당 문구를 찾아보겠다.

Ollydbg - 검색기능

위에 찾은 문구의 위치로 가면 아래와 같이 JE 분기문을 발견할 수 있다.

401499

해당 분기문은 0이 아닐 때 인증되었다는 문구를 출력해주므로 AL의 값이 0이 아닌 값으로 변경해야 한다. 그러므로 AL값을 정하는 바로 위의 CALL 명령어에 들어가서 내부조사를 해봐야 한다.

435296

CALL 명령어의 내부의 마지막 부분에 위와 같은 AL 값을 설정하는 코드가 존재한다. 여기서 BL도 0으로 되어 있으므로 해당 코드를 변조해야 한다.

BL -> 1

### 실행 결과 : 

2차 우회 성공

이로써 해당 프로그램의 Crack를 마치겠다.

'Wargame > Lena Tutorial' 카테고리의 다른 글

Lena Tutorial (Level 15)  (0) 2022.09.12
Lena Tutorial (Level 14)  (0) 2022.09.05
Lena Tutorial (Level 12)  (0) 2022.09.03
Lena Tutorial (Level 11)  (0) 2022.09.02
Lena Tutorial (Level 10)  (0) 2022.09.01
profile

Yozzang의 해킹일기 💻

@요짱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!