Location : http://codeengn.com/
Author : Acid Bytes[CFF]
Debugger : Olly Debugger (plugin : ollydump)
Tool : PEiD v0.95
프로그램의 Registration key를 찾는 것이 문제입니다.
파일을 그냥 실행 했을 경우,
위처럼 Unregistered... 부분에는 User name 정도가,
754-GFX-IER-954 부분에는 Registration key가 들어갈 것으로 예상할 수 있습니다.
Serial Key(Registration Key)가 "754-GFX-IER-954"의 형태를 띠고 있다는 것을 알 수 있습니다.
위에서 아무런 입력 없이 그대로 Register now! 버튼을 클릭했을 경우 이런 메시지가 나옵니다.
이제부터 Ollydbg를 이용하여 디버깅해보도록 하겠습니다.
Ollydbg를 이용하여 프로그램을 불러오는데,
해당 파일이 압축 및 암호화되어 있다는 경고 메시지가 나옵니다.
패킹이 되어 있을 가능성이 있습니다.
일단 예/아니요 중 하나를 눌러 진행하도록 합니다.
정상적인 부분 외에 상당히 많은 부분이 "DB00"의 형태로 의미를 알 수 없도록 되어 있습니다.
패킹되어 있는 파일이기 때문에 그런 것임을 짐작할 수 있습니다.
PEiD를 이용해서 패킹 여부와 OEP(Original Entry Point)를 찾아보도록 하겠습니다.
위의 PESniffer 부분을 보면 파일이 UPX로 패킹되어 있음을 알 수 있습니다.
오른쪽 하단에 있는 화살표로 위와 같은 정보들을 알 수 있습니다.
snaker's Generic Unpacker 플러그인을 이용, OEP의 주소가 00441270임을 찾을 수 있습니다.
이제 파일을 언패킹 한 뒤, 디버거로 다시 분석을 하면 됩니다.
snaker's Generic Unpacker를 이용해 언패킹을 하려 했으나, 실패했습니다.
언패킹 할 수 있는 툴은 다양하니 다른 툴을 이용하더라도 문제 없습니다.
따라서 저는 ollydbg의 plugin 중 ollydump를 이용해서 덤프를 씌우겠습니다.
ollydbg를 이용해 파일을 불러온 뒤,
방금 찾은 OEP(00441270)으로 CTRL + G 단축키를 이용해 이동합니다.
00441270에 브레이크 포인트를 설정한 뒤, F9를 이용해 실행시킵니다.
그리고 나서 덤프를 씌우도록 하겠습니다.
Plugin - Ollydump - Dump debugged process
Dump
파일을 새로 저장하면 됩니다. 덤프를 씌운 파일 : DUMP05.EXE 로 저장하겠습니다.
덤프를 씌운 파일을 Ollydbg로 불러옵니다.
처음과는 달리 정상적으로 실행되는 파일들이 보입니다.
CTRL + G 로 OEP인 00441270으로 이동하겠습니다.
문자열 검색을 통해 "의미 있는" 문자열을 찾습니다.
Registered User , GFX-754-IER-954, Congrats!... 등 수상한 부분들이 보입니다.
제대로 된 key 값을 입력했을 경우 출력될 것으로 예상되는 메시지인
"Congrats! You cracked this CrackMe!"로 이동하겠습니다.
00440F39 와 00440F56 에서 각각 JNZ를 통해 Name부분, Registration Key 부분을 검사하는 것으로 보입니다.
Name 부분이 먼저 검사되는 것으로 보아 Registration Key 값이 정확하더라도 Name 부분이 다른 값이면 crack에 실패할 것으로 보입니다.
Name 부분에는 Registered User
Registration Key 부분에는 GFX-754-IER-954를 입력해줍니다.
참고로 처음 파일 실행 시 적혀 있던 Registration Key 값은 754-GFX-IER-954였습니다.
성공했습니다.
'Reversing' 카테고리의 다른 글
[코드엔진] basic 02 (0) | 2020.01.09 |
---|---|
[lena's reversing tutorial] tutorial 6 (0) | 2020.01.09 |
[lena's reversing tutorial] tutorial 9 (0) | 2020.01.09 |
[코드엔진] basic 06 (0) | 2020.01.07 |
[코드엔진] basic 01 (0) | 2020.01.07 |