ciscn 逆向wp
First Post:
Last Update:
Last Update:
babyre
需要注意的是密文的顺序,加点逻辑,让他自己打印出来
movAside
先说混淆原理:(66条消息) movfuscator混淆_mov混淆_Cherest_San的博客-CSDN博客
实现:(68条消息) movfuscator混淆_mov混淆_Cherest_San的博客-CSDN博客
这种题解混淆后也很难看,所以逻辑一定是简单的,不然没法逆,一般去看函数表
解决:ltrace 看函数表,可以发现到最后的比较就是输入的flag经过加密后与密文进行逐字符比较,如图:
所以在ida里再在plt表里修改一下,使strcmp调用的时候跳转到put函数,让他把密文打印出来,之后dump(右键->patching->apply patches to)
密文的话进入data段第一个数据就是,(验证了程序本身是简单的),与输出的密文比较一下就看出来了
再使用pwntools的逐字符爆破脚本:
1 |
|
emm,这个脚本嫖的,不太会写,不过原理就是输入一个字符看回显,手动也可以模拟这个过程,把映射表一个一个弄出来就行了……
效果:
ezbyte
学到了 try catch 块处理异常,C++异常处理(try catch)从入门到精通 (biancheng.net),这个网站讲的真不错
DWARF字节码,按栈展开,通过DWARF Expression将代码隐藏在栈展开过程中 (buaq.net)
DWARF字节码,使用readelf 就可以看到r12寄存器的值使用了4个表达式,解出来就是答案,但因为这个题简单可以这样直接手搓字节码,通解是用好几个脚本把栈展开的部分提取出来,并且可以转成伪代码