IT 블로그 !!

Code Engine basic 7 본문

Reversing/Code Engine

Code Engine basic 7

IT_Try 2018. 11. 3. 22:31

 

C드라이브의 볼륨 명을 참조 해, 최종적으로 변경되는 시리얼 킷값을 구하는 것이 목표이다. 우선 C드라이브의 이름을 CodeEngn으로 바꾼 후 프로그램을 실행시켜 봅시다.



입력한 시리얼값이 옳지 않다고 뜹니다.

파일을 열어보겠습니다.



일단 오류메세지박스가 뜨는 부분을 먼저 살펴봅시다.

004010FC를 보게 되면 EAX 0의 값이 0이 나올 경우 JE를 실행하고 성공 창이 뜨게 되도록 설정되어있습니다.

 EAX 0 = 0이 되어야 참이 된다는 소리입니다. 참이 됐을 경우 JE를 통해 00401117JMUP를 하게 됩니다. 00401117은 성공박스가 뜨는 곳이지요. EAX0이 되게 만들어 주어야합니다. 일단 CMP함수에 break를 걸고 실행시켜 봅시다.



보면 EAX의 값이 1이 되어있습니다. EAX1이기 때문에 JE를 실행하지 않고 Error창이 뜨게 된 것입니다.

코드를 위로 올려 조금 더 살펴봅시다.



위의 함수를 보면 이상한 문구가 있습니다. 바로 Enter your serial라는 문구입니다. 이 문구는 이전에

파일을 실행하자 마자 보였던 문구이지요.


그리고 그 밑에 시리얼 키로 보이는 L2C-5781EqfgEngn4562-ABEX가 있습니다.

또 위에 함수를 보게 되면 StringToAdd라는 함수가 있습니다. StringToAdd라는 함수는 문자를 추가한다라는 뜻과 같습니다.

EqfgEngn4652-ABEX + L2C-5781을 추가한 것과 같습니다.

그런데 EqfgEnge4652-ABEX는 어디서 온 것일까요? 일단 문자열을 전부 보도록 합시다.


오른쪽 마우스 -> Search for -> All referenced text strings

을 클릭해서 모든 문자를 보도록 합시다.



EgfgEnge4562-ABEX가 보인다. 더블클릭해서 들어가 봅시다.



 4562-ABEXEqfgEnge에 추가되었습니다.

EqfgEngn은 아까 문제를 풀기 전 C드라이브에 이름을 바꾼 CodeEngn이 뭔가 변형되어서 나타난 것 같습니다.

 

 앞서 문제에서 시리얼이 생성될 때 CodeEngn이 바뀐다 했으므로 시리얼처럼 보이는 L2C-5781EqfgEngn4562-ABEX를 넣어봅시다.



시리얼 키인 L2C-5781EqfgEngn4562-ABEX를 넣어보면 성공창이 뜹니다.

그리고 생성될 때 CodeEngn의 값이 바뀐다고 하였으니 바뀐 값EqfgEngn이 맞습니다.

 





 





'Reversing > Code Engine' 카테고리의 다른 글

Code Engine Basic 9  (0) 2018.11.17
Code Engine Basic 8  (0) 2018.11.03
Code Engine Basic 6  (0) 2018.10.12
Code Enigne Basic 5  (0) 2018.10.12
Code Engine basic 4  (0) 2018.10.07