본문 바로가기

REVERSING/reversing.kr

[reversing.kr] Easy Keygen

Reversing.kr Easy Keygen

2016.12.30.

우선 Easy_KeygenMe 파일을 받아보면 ReadMe.txt.Easy Keygen.exe파일이 있다.

시리얼 값이 저럴 때의 이름을 찾으라고 한다. 일단 IDA로 까보자.

우선 이름을 입력받는 부분이다. 그리고 아직 어디에 쓰이는 건진 모르겠지만 0x10, 0x20, 0x30이 차례대로 들어온다.

그리고 esi3이랑 같거나 크면 xor시켜 0으로 바꿔준다. 앞의 코드에서 xor esi,esiesi 값을 0으로 돌려놓은 상태에서 시작한다.

3이랑 같거나 크면 0으로 바꿔주므로 short loc_40107E로는 항상 점프하도록 되어있는데 가보면

ecxesp+esi+13Ch+var_130 값과 edxesp+ebp+13Ch+var_12C값이 들어간다. 그리고 xor을 시켜주고 16진수로 뱉어낸다. 또 차례대로 inc 명령어로 ebp, esi의 값을 1씩 올려준다. 그리고 다시 401077로 건너뛰는데 esi3을 비교하는 곳이다. 그러니까 ecx, edx에는 각각 1씩 증가되는 esi, ebp가 있다. 그런데 esi3과 같거나 크면 0으로 바뀌니까 ecx의 값에는 0x10,0x20,0x30이 반복적으로 들어가고 edx에는 내가 입력한 Name값의 문자열이 차례로 들어온다.

즉 내가 만약 abcdeName에 입력하면 0x10 xor a, 0x20 xor b, 0x30 xor c, 0x10 xor d, 0x20 xor e를 하고 각각의 결과 값을 16진수로 나타내면 시리얼 값이 된다.

ReadMe에 있던 시리얼은 16진수이다.

이렇게 나누어 하나씩 0x10,0x20,0x30,0x10,...으로 xor 해보자

+) A xor B = C

    B xor C = A

xor해서 나온 값을 아스키코드로 문자로 바꾸면 K3yg3nm3가 된다.

이렇게 제출하고 Congratulations!가 뜬 걸 캡쳐했는데 날렸다;-;

'REVERSING > reversing.kr' 카테고리의 다른 글

[reversing.kr] Music Player  (0) 2017.01.10
[reversing.kr] Easy Unpack  (0) 2017.01.02
[reversing.kr] Easy Crack  (0) 2016.12.23