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()