什么是angr?
-
加载文件
-
初始化入口
-
给入口地址或字节 开始设置模拟执行
-
告诉程序要执行到的地方
-
出结果
-
输出结果
In [1]: import angr
In [2]: p = angr.Project("./signal.exe") # 加载文件
In [3]: init_state = p.factory.entry_state() # 初始化入口
In [4]: sm = p.factory.simgr(init_state) # 给入口 开始设置模拟执行
In [5]: sm.explore(find = 0x004017A5) # 告诉程序要执行到的地方
In [6]: found_state = sm.found[0] # 出结果
In [8]: found_state.posix.dumps(0) # 输出结果
# 出flag
Out[8]: b'757515121f3d478x00x01x08x00x00x00x02Ix19x00x0cx00Jx1ax02x00x02x02x9ax01x00)x02x00x00x00x01x08)*x00x00x08x83x08x00*Fx08x8ax00x08x02x00x08'
-
angr能够让我们省去逆向的时间,但也有不能用的时候,有其局限性。
-
文中并没有多介绍angr,在该题中的应用也只是最简单的应用方法。还有大量的相关知识需要学习。
文章系列链接:
题目链接:
https://pan.baidu.com/s/1Cj3DVssh8ZOiZpWax1UDmQ
提取码:9t5k
(题目出自2020网鼎杯青龙组)
本文始发于微信公众号(山石网科安全技术研究院):CTF逆向专题连载之虚拟机vm混淆(3)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论