逆向源码(IDA)

用ida直接打开exe,观察到一下函数,字符串长度是16位,本质就是流密码,流密码就是动调获取密钥流的思路,当然也可以爆破流密码但是我觉得麻烦

snow

snow

伪RC4的流密码

snow

snow

动态调试对a2

snow

输入1*16 的密文

主要内存一开始记录的是地址

snow

写逆代码

snow

t = [ord('1')] * 16
tm = [0xFC,0x24,0x23,0xF7,0x27,0xF2,0x31,0x13,0x13,0x15,0xF,0xA,0x29,0x1F,0x15,0x28]
m = [0x2E, 0x67, 0x58, 0x29, 0x65, 0x25, 0x65, 0x46,0x14, 0x14, 0x0F, 0x12, 0x28, 0x24, 0x15, 0x2D]
k = [(t[i] - tm[i]) & 0x3F for i in range(16)]

plaintext = ''.join(chr((m[i] + k[i]) & 0xFF) for i in range(16))

print(plaintext)  
#输入出ctfcoded20190616

snow

snow

版权声明:如无特殊说明,文章均为本站原创,转载请注明出处

本文链接:http://www.secsnow.cn/blog/subject/article/crackme-wp/

许可协议:署名-非商业性使用 4.0 国际许可协议