본 게시물은 리버싱에 대한 이해를 목적으로 제작되었습니다.
리버싱을 위해 제작된 프로그램이다. 인터넷에 찾아보면 구해볼 수 있다.
게임에 돌아다니는 크랙파일들이 어떤식으로 제작되는지 알아보자.
구조는 아이디랑 비밀번호를 입력해서 OK을 눌러야 통과하는 것이다.
비밀번호가 틀리면 위와같은 메시지가 나온다.
프로그램의 주변 글씨같은걸 잘 봐보자.
KeygenME-3,Bengaly,OK,ABOUT 같은 글씨들이 보인다.
일단 F8을 누르다보면 CALL Key4.00401025 에서 프로그램이 실행되는 것을 알 수 있다.
저기 안에 실행되는 명령어가 있다는 뜻이니 F2로 브레이크포인트를 걸고 F7로 들어가본다.
막 내리다보면 다음과 같은걸 발견할 수 있었다.
You Have Entered A Wrong Serial, Please Try Again은 어디서 봤던 문장이다.
아까 잘못된 정보를 입력했을 때 나오는 텍스트창이다.
다시 잘 찾아보면
저 텍스트박스는 텍스트박스에 아무런 글자를 입력하지 않았을 때 나오는 문장일 것이다.
그 위에 보면
JE SHORT Key4.004012DF
JMP SHORT KEY4.004012F6이 있는데
JE 구문은 뭔가를 비교한후에 조건이 맞다면 004012DF로 가는 명령어 같다.
004012DF는 아무런 문장이 입력되지 않았을 때 나오는 MessageBox의 주소이다.
004012F6도 바로 밑에서 찾을 수 있는데 String 구문을 받는 명령어 이다.
따라서 텍스트박스를 보고 아무것도 없다면 메세지박스를 띄우고
텍스트가 있다면 String으로 받는 구조이다.
계속 분석을 해보자
00401341번지를 보면 00401358로 가는데 이것은 실패했을때 메시지를 출력하는 곳으로 가는 주소이다.
바로 아래 00401343번지는
"Great, You are ranked as Level-3 at Keygening now"가 보인다.
이것이 성공했을때 나오는 메세지 일 것이다.
그러면 우리는 JMZ SHORT Key4.00401358의 구문이 실행이 안되게하여
자연스럽게 성공으로 넘어가게 만들면 되는 것이다.
따라서 이곳을 조작하여 점프하지 않게 만든다.
더블클릭을 하여 NOP를 입력한다.
조건구문이 실행되지 않게하여 바로 넘어가게 한다.
이제 F9를 쭉쭉 눌러서 프로그램을 명령어를 끝까지 실행한다.
아무거나 치고 OK만 누르면, 바로 "Great, You are ranked as Level-3 at Keygening now" 구문을 볼 수 있다.
이제 이대로 프로그램을 저장하면 된다.
오른쪽 클릭을 누르고 Copy to executable-All modification
Copy all을 클릭한다.
후에 나오는 창에 Save file을 한다.
Key4가 아까 정상 프로그램이고 Key4_Cracked이 지금 저장한 프로그램이다.
방금 만든 Key_Cracked에 들어가서 아무거나 입력하고 OK를 누르면
아이디와 비밀번호 없이 성공한것을 알 수 있다.
옛날 크랙 파일들이 이런식으로 제작이 되었다.
이것은 기초적인 프로그램 이므로 더 공부할 필요가 있겠다.
'리버싱<기초>' 카테고리의 다른 글
[Reversing]조건문과 플래그 (0) | 2018.04.20 |
---|---|
[Reversing]배열과 변수초기화 (0) | 2018.04.20 |
[Reversing]변수호출 리버싱 구조 (0) | 2018.04.18 |
[Reversing]기본설정과 간단한 Hello World 분석/ 조작 (0) | 2018.04.17 |