Lily 发表于 2019-11-26 21:13:15

《哇VM解析》angr符号解析暴力破解

没有用常规解法,用了符号执行

angr的简单教程可以看
https://www.bilibili.com/video/av46689373

附上py3解题脚本
以后遇到VM可以先套这个跑一下,10分钟跑不出来就可以放弃了,这个用了大概5分钟,配置为I7 8750H,16G内存

import angr
proj = angr.Project("easyvm",auto_load_libs=False)      #easyvm为程序名
simgr = proj.factory.simgr()
avoid_list=       #avoid_list为需要避开的地址,如“失败”“错误”等等,需要用IDA等手动查看
simgr.explore(find=0x400BDA,avoid=avoid_list)      #find为需要到达的地址,如“成功”“正确”等等,需要用IDA等手动查看
print(simgr.found.posix.dumps(0))


结果如下



admin 发表于 2019-11-28 19:00:40

这么牛逼的吗?长见识了(说着我就去看视频了··)

admin 发表于 2019-11-28 19:01:05

xuenixiang 发表于 2019-11-28 19:00
这么牛逼的吗?长见识了(说着我就去看视频了··)

这个是啥原理啊

Lily 发表于 2019-11-28 19:38:38

xuenixiang 发表于 2019-11-28 19:01
这个是啥原理啊

原理就是符号执行
看这一篇博客可以大概了解一下
https://www.cnblogs.com/0xJDchen/p/9291335.html
对我来说常见的工具就是angr,Z3貌似也是
angr官方代码和文档在github
https://github.com/angr/angr
我现在也只是会一些简单的操作,停留在脚本小子阶段,并没有理解的很深入,所以推荐不了太多,不过CSDN上有很多博主分析的不错,可以去看一下

admin 发表于 2019-11-28 19:49:44

Lily 发表于 2019-11-28 19:38
原理就是符号执行
看这一篇博客可以大概了解一下
https://www.cnblogs.com/0xJDchen/p/9291335.html


我是不是可以理解为,如果题目的flag特别简短,利用这个符号执行就可以做到无脑穷举爆破解题?

admin 发表于 2019-11-28 19:52:36

xuenixiang 发表于 2019-11-28 19:49
我是不是可以理解为,如果题目的flag特别简短,利用这个符号执行就可以做到无脑穷举爆破解题? ...

等过两年摆脱学校的禁锢,我一定要找个安静的地方研究1年pwn。我最近发现pwn太好玩了,既能秀操作,还能练shell~

Lily 发表于 2019-11-28 20:10:51

xuenixiang 发表于 2019-11-28 19:49
我是不是可以理解为,如果题目的flag特别简短,利用这个符号执行就可以做到无脑穷举爆破解题? ...

应该可以这么理解吧,约束越多求解越快

Lily 发表于 2019-11-28 20:17:29

xuenixiang 发表于 2019-11-28 19:52
等过两年摆脱学校的禁锢,我一定要找个安静的地方研究1年pwn。我最近发现pwn太好玩了,既能秀操作,还能 ...

我寒假也打算研究一下,成为真正的二进制选手不能只靠逆向。我以后想走IOT安全,但是可能不太现实,我不知道自己能不能达到那个水平,就害怕安全没搞好,开发也是半吊子。。。虽然以后不一定从事安全行业,但是目前打CTF给予了我莫大的快乐和荣誉,我还是会继续打下去的{:9_291:}

admin 发表于 2019-11-28 22:40:52

Lily 发表于 2019-11-28 20:17
我寒假也打算研究一下,成为真正的二进制选手不能只靠逆向。我以后想走IOT安全,但是可能不太现实,我不 ...

赞同!{:9_307:}
页: [1]
查看完整版本: 《哇VM解析》angr符号解析暴力破解