war game/reversing.kr

[reversing.kr]randomware

shnec 2017. 3. 8. 21:19

분석하면 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()