본문 바로가기
reversing/Crack ME 풀기

hackme reach lvl 9000

by 코끼리_땃쥐 2023. 3. 14.
반응형

https://crackmes.one/crackme/63c34e6833c5d43ab4ecf45b

 

Crackmes

How would you rate the difficulty of this crackme ?

crackmes.one

의 크랙미파일입니다.

 

파일을 실행시켜보면 

레벨 9000을 달성하고 깃발을 얻으라고 합니다. 그리고 행운도 빌어줍니다.(감사합니다)

 

엔터를 눌러서 진행을 해봅니다.

 

간단한 수학 문제가 나옵니다.

140 + 584는 724이니까 724를 입력하고 엔터를 입력해봅니다.

 

레벨이 +1 되고 다음문제가 나오는것을 확인 할 수 있습니다.

그럼 한번 틀려보겠습니다.

에러라는 메시지와 함께 또다시 2레벨 문제를 냈습니다.

 

총 9000문제를 풀고 깃발을 얻는 프로그램인것 같습니다.

문제를 맞추면 레벨이 +1

문제를 맞추지 못하면 그대로 입니다.

 

리버싱을 통하여 레벨을 9000을 만들어 봅시다.

 

문자열 검색을 통해 "level" 문자열을 검색해봅니다.

0000000000401C97 주소에 "Level: " 문자열을 저장하는 코드가 있습니다.

브레이크 포인트를 걸고 F9를 눌러서 진행 브레이크 포인트까지 진행합니다.

 

"Level: " 문자열과 "/9000" , " + ", "Answer: " 문자열이 나란히 있는것을 확인 할수 있습니다.

순서대로

Level: ? /9000

? + ?

Answer:

 

문자열이 출력되는걸 확인할수 있고

 

? 로 표시된 부분을 출력시에 계속 변하는 변수인것도 확인 할수 있습니다.

 

우리가 찾고자하는 ? 는 Level: 바로 뒤에있는 ?(물음표)이므로 "Level: " 문자열과 "/9000" 문자열 사이를 확인합니다.

 

0000000000401CAD 주소의 mov eax, dword ptr ss:[rbp+25c] 코드에서 힌트를 얻었습니다.

0000000000401CAD 주소에 브레이크 포인트를 걸어서 해당 주소까지 진행을 한후 rbp+25c 주소로 이동하여 값을 확인해봅니다.

rbp+25c (000000000071FE0C) 주소에 저장된 값을 0x02 (10진수로 2) 인걸 확인 할수 있습니다.

해당 데이터를 03으로 바꿔서 진행 해봅니다.

 

 

레벨이 3이 된것을 확인 할수 있습니다.

그럼 9000레벨로 바꿔서 진행 해봅시다.

9000은 16진수로 0x2328입니다.

그렇다면 데이터는 28 23 00 00 으로 입력 해야합니다.(바이트 오더링)

 

데이터를 변경하고 실행을 해봅시다.

레벨이 9000인것을 확인할수 있고 여기서 문제를 맞춰서 진행 해봅시다.

정상적으로 해결이 되었습니다.

플래그 뒤에 숨겨진 코드?가 있습니다 도전해보시고 해당 코드를 찾아보세요

반응형

'reversing > Crack ME 풀기' 카테고리의 다른 글

caeser  (0) 2023.03.15
Easy CrackMe  (0) 2023.03.13
Easy KeygenMe  (1) 2023.03.08

댓글