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
성공.
***저 함수 내부의 스위치문을 분석해보고 추가할 것