Reversing

[reversing.kr] Easy Keygen

BIGFROG 2020. 4. 6. 22:43

핵심은 이 부분.

이 루프에서 XOR ECX, EDX연산을 하면서 Serial을 생성하게 된다.

 

특이하게 ECX가 루프마다 변하는데,

10, 20, 30을 반복한다.

 

일단 문제에서 5B 13 49 77 13 5E 7D 13라는 시리얼을 얻을 수 있는데,

내가 입력한 글자당 두 자리의 숫자가 생성된다.

따라서, Name의 길이는 총 8글자이다.

 

따라서 해당 루프도 8번을 돌아야 하므로,

ECX는 10 20 30 10 20 30 10 20 순서대로 변하게 된다.

 

XOR연산을 한 값이 Serial이 되어야 하므로 xor 역연산을 하면 Name을 얻을 수 있다.

즉.. 아래를 계산하면 된다.

0x5b xor 0x10
0x13 xor 0x20
0x49 xor 0x30
0x77 xor 0x10
0x13 xor 0x20
0x5E xor 0x30
0x7D xor 0x10
0x13 xor 0x20

 

 

성공.

 

***저 함수 내부의 스위치문을 분석해보고 추가할 것