BUUCTF——[ACTF新生赛2020]SoulLike——使用angr解

64位无壳。IDApro打开,查看main函数

逻辑很简单,我们来查看sub_83A函数。点进去,toobig

看了其他博客。

我们需要将ida /ctg目录下的hexrays.cfg文件中的MAX_FUNCSIZE=64 改为 MAX_FUNCSIZE=1024

 

 改完看函数

好长:看最后部分,一大堆异或,然后比较

第一个想到了爆破,最近在学angr,尝试用angr解题

脚本:

import angr
p = angr.Project('SoulLike',load_options={"auto_load_libs":False})
st = p.factory.entry_state()
sm = p.factory.simulation_manager(st)
sm.explore(find=0x411176, avoid=0x411195)
print(sm.found[0].posix.dumps(0))


注意:载入之后会有两个warning,第一个提示注意偏移地址,要加上0x400000

第二个是线程局部存储,没搞懂,不管他;

find的地址:也就是判断为flag正确的地址

 void的地址:也就是flag判断错误的地址

 

最后的flag:

actf{b0Nf|Re_LiT!}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值