시리얼이 5B134977135E7D13일 때 이름을 찾으면 된다.
main을 살펴보면 입력받은 이름으로 시리얼을 생성하는 로직을 볼 수 있다.
p = 0;
for ( i = 0; p < (signed int)strlen(name); ++i )
{
if ( i >= 3 )
i = 0;
sprintf(serial, aS02x, serial, name[p++] ^ key[i]);
}
|
xor key는 길이 3으로 [0x10, 0x20, 0x30] 이다.
5B134977135E7D13을 hex decode 해 주고 xor하면 키를 얻을 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
|
import binascii
serial = '5B134977135E7D13'
name = ''
key = [0x10, 0x20, 0x30]
i = 0
for c in binascii.unhexlify(serial) :
name += chr(int(c)^key[i%3])
i += 1
print(name)
|
K3yg3nm3
'Wargame > reversing.kr' 카테고리의 다른 글
reversing.kr / Easy Unpack (0) | 2020.01.12 |
---|---|
reversing.kr / Easy Crack (0) | 2020.01.10 |