반응형

Reversing.kr Easy Keygen 풀이



압축파일로 주어진다. 압축을 풀자.


압축을 풀면 두개의 파일이 나온다.


- Easy Keygen.exe

- ReadMe.txt



ReadMe.txt 의 내용이다.


ReversingKr KeygenMe



Find the Name when the Serial is 5B134977135E7D13



Easy Keygen.exe 을 실행하면 콘솔창이 띄워지고 Name을 입력받고 Serial을 입력받는다.



패킹은 되어 있지 않으니 올리디버거로 까보자.




strings를 확인해보니 "Correct!"와 "Wrong"이 보인다. 해당 부분으로 이동해주었다.





바로 위 분기점에 bp를 걸었다.



더 위로 올라가면 Serial을 입력받는 부분이 나온다. 입력 받고 난 후에 bp를 또 걸어주었다.


실행하고 name에 1234를, Serial에는 5678을 넣어주었다.




EAX에 5678이 들어갔고 ESI에 21120324가 들어갔다.

ECX에 들어간 값이 name의 값을 어떻게 연산해서 만들어진 값으로 추정된다.


그리고 두개의 값을 비교한다.



그렇다면 name의 값을 연산시켜 나온 값이 Serial의 값과 같아야된다는 것을 알 수 있다.


name을 입력받고 난 후의 코드를 보면 name의 값을 연산하는 루틴이 보인다.



name값에서 한바이트씩 가져와 0x10, 0x20, 0x30과 xor연산을 한다.

0번째 바이트는 0x10과,

1번째 바이트는 0x20과,

2번째 바이트는 0x30과,

3번째 바이트는 0x10과 ....


1234를 입력했을 떼 21120324가 나왔다. Serial 값으로 21120324를 넣으니 Correct가 출력된다.





그럼 이제 Serial이 5B134977135E7D13일때 name의 값을 구하면 된다.


name xor {0x10, 0x20, 0x30} = Serial 일때

name = {0x10, 0x20, 0x30} xor Serial 이므로 name의 값을 구할 수 있다.



이렇게 구한 name의 값은 K3yg3nm3이다.







반응형

'WAR GAME > Reversing.kr' 카테고리의 다른 글

Reversing.kr [Music Player] 풀이  (0) 2018.11.03
Reversing.kr [Easy Unpack] 풀이  (0) 2018.09.19
Reversing.kr [Easy Crack] 풀이  (0) 2018.06.19

+ Recent posts