외로운 Nova의 작업실

creackme 시리즈 - 3(crackme11.exe) 본문

Computer App Penetesting/Reversing

creackme 시리즈 - 3(crackme11.exe)

Nova_ 2023. 2. 14. 18:26

 

Crackme 11.exe
0.02MB

 

 

- 문제 인식

먼저 실행시켜보겠습니다.

아무래도 키젠프로그램들이니 1234로 키값을 넣어보겠습니다.

그랬더니 이렇게 뜹니다. 이렇게 안뜨고 정상실행하는게 목표인 것 같습니다.

 

- 크랙 설계

먼저 문자열을 비교하는 함수가 무조건 있을 것입니다. strcmp, cmp 등등이 있을겁니다. 이를 어셈블리에서는 call 명령어로 함수를 불러낼 것입니다. 따라서 call 명령어를 검색해서 문자열을 비교하는 부분에 bp를 걸고 어떻게 비교하는지 알아내거나 비교후 점프문을 크랙해보도록 하겠습니다. 

 

- 리버싱

search for - all intermodular calls를 눌러 모든 call 하는 함수들을 검색합니다.

그럼 딱봐도 strcmp 함수가 보입니다. 여기에 bp를 걸고 F9로 run 해줍니다.

이후 1234를 입력하고 ok를 눌러주겠습니다.

그럼 위에 처럼 아까 bp걸은 부분에서 브레이크가 됩니다. 보면, eax에는 제가 입력했던 1234가 있고, ECX에는 677345가 있습니다. 이 둘을 비교하는 구문입니다. 이후 값을 어떻게 처리하는지 보겠습니다.

이후 분기문이 나옵니다. JE이지만 현재 zero 플래그는 1입니다. 그냥 진행하면 jmp될겁니다. 여기서 z 플래그를 0으로 변경하고 진행해보겠습니다.

그럼 이렇게 Bien이라고 뜹니다. 저기 점프문을 크랙해주면될 것 같습니다.

 

- 크랙

아까본 JE 부분을 NOP으로 처리해줍니다.

이후 실행시켜보겠습니다.

크랙이 잘되었습니다. 이제 저장만 하면 끝입니다.

Crackme 11(cracked).exe
0.02MB

 

'Computer App Penetesting > Reversing' 카테고리의 다른 글

creackme 시리즈 - 5(crackme13.exe)  (0) 2023.02.14
creackme 시리즈 - 4(crackme12.exe)  (0) 2023.02.14
RP 2006년 버전 크랙  (0) 2023.02.05
creackme 시리즈 - 2(crackme10.exe)  (4) 2023.01.26
C++와 어셈블리어  (0) 2023.01.23
Comments