cgy12306

Easy Keygen 본문

Reversing

Easy Keygen

cgy12306 2019. 7. 30. 08:30

ReadMe.txt 파일을 열어보자.
해당 시리얼에 맞는 이름을 찾으라는 문제이다.
string으로 문자열을 검색해보자

이 부분이 main함수 부분이라는 것을 알 수 있다.

EDX에 입력한 값 중에 한 바이트가 들어가게 된다.
근데 ECX와 EDX랑 XOR 연산을 한다.

XOR 연산의 결과 값을 첫번째 오퍼랜드에 넣어준다.
그러면 EDX에 41과 10을 XOR 연산한 것이 들어가게 된다.
두번째 반복을 돌때에는 입력받은 두번째 바이트가 저장된 EDX와 ECX를 XOR 연산한다.

두번째 때에는 ECX에는 20이 들어가 있다.

세번째 때에는 ECX에는 30이 들어가 있다.

네번째 때에는 ECX에는 다시 10이 들어가 있다.
그렇게 쭉쭉 하다 보면 반복문을 탈출하게 된다.
반복문을 탈출하고나서 Serial을 입력한다.


이 지점에서 변환된 처음 숫자와 비교를 한다.


이 지점에서는 두번째 숫자와 비교를 한다.
A는 아스키코드가 hex값으로 41이다. 41과 10을 XOR 연산을 하게 되면 51이라는 값이 나오게 된다. 첫번째 분기문은 5와 5를 비교하니 넘어갈 수 있었지만 두번째 분기문에서는 1과 B를 비교한다.
그러면 우리는 어떠한 값과 10을 XOR 연산해서 5B라는 값을 뽑아내야 한다.
XOR 연산의 특성상 5B와 10을 XOR 연산하게 되면 어떠한 값을 얻어낼 수 있다.
5B와 10을 XOR연산을 하게 되면 4B가 나온다. 그렇게 쭉쭉 Serial값을 비교하면서 변환을 하게 되면 K3yg3nm3이라는 값을 구할 수 있게 된다.

5B 13 49 77 13 5E 7D 13
4B 33 79 67 33 6E 6D 33
K  3    y   g  3   n  m  3
K3yg3nm3




'Reversing' 카테고리의 다른 글

Direct3D  (0) 2019.07.30
ImagePrc  (0) 2019.07.30
Easy Unpack  (0) 2019.07.30
Easy CrackMe  (0) 2019.07.30
[reversing.kr] Ransomware  (0) 2019.07.15
Comments