분석하면 key를 순환하면서 file을 읽어들여 xor한다.

readme.txt에서 file은 .exe라고 했으니 .exe 포멧임과 exe파일의 널바이트 공간을 참고해서 키를 게싱했다.


encoding decoding에서 고생했다.ㅠ


from codecs import *
import binascii
f=open('./file','rb')
f2=open('./decfile','wb')
#cont=f.read()
key='93 9A 8B 8C 8F 93 9E 86 9C 97 9A 8C 8C 93 9A 8B 8C 8F 93 9E 86 9C 97 9A 8C 8C'.split(' ')
i=0
keylen=len(key)
for i in range(21780):
	a=f.read(1)
	a=int(binascii.hexlify(a).decode(),16)
	k=int(key[i%keylen],16)
	d=a^k
	print('{} ^ {} = {}'.format(hex(a),hex(k),hex(d)))
	f2.write(bytes.fromhex(hex(d)[2:].rjust(2,'0')))
f2.close()

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

[reversing.kr]windows kernel  (0) 2017.03.17
[reversing.kr]crc1  (0) 2017.03.16
[reversing.kr]twist1  (0) 2017.03.09
[reversing.kr]position  (0) 2017.03.09

+ Recent posts