angr符号执行用例解析——CSCI-4968-MBE

用例源码以及二进制文件链接:https://github.com/angr/angr-doc/tree/master/examples/CSCI-4968-MBE/challenges

本次用例代码压轴的crackme0x05非常棒,前面比较简单可以跳过去。

crackme0x00a

这个就是一贯的套路了,确定start_addr,find_addr, avoid_addr,然后创建simulation_manager,explore所有满足路径,求解就可以了。

不过,不过啊。这个用例代码比以前要简单多了,它并没跳过scanf函数,所以说angr是可以执行scanf函数的?那以前为什么还有跳过啊?这点把我搞蒙了。

而且它根本不需要创建什么符号变量,也不需要找start_addr,直接利用sm就可以执行。最后输出满足约束的程序输入。

(看来以前的代码是有可以改进的点的,可以将前面几个用例代码也改写为这样的方式,看能够得到正确结果。不过,一道题肯定有多种解法,它给出这么多解决fangs,主要还是为了让大家深入了解各个方法。)

用例源码:

import angr

FIND_ADDR = 0x08048533 # mov dword [esp], str.Congrats_ ; [0x8048654:4]=0x676e6f43 LEA str.Congrats_ ; "Congrats!" @ 0x8048654
AVOID_ADDR = 0x08048554 # mov 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值