博客
关于我
angr学习笔记(3)
阅读量:347 次
发布时间:2019-03-04

本文共 1087 字,大约阅读时间需要 3 分钟。

ANGR系列

ANGR是一个强大的反调试工具,能够帮助开发者在逆向工程过程中更高效地分析程序行为。本文将通过实际案例,展示如何利用ANGR进行漏洞挖掘和验证。

代码1

以下是利用ANGR进行基本漏洞挖掘的代码示例:

```pythonimport angrpp = angrp.Project("00_angr_find")init_state = p.factory.entry_state()sm = p.factory.simulation_manager(init_state)sm.explore(find=0x08048678, avoid=0x08048666)found_state = sm.found[0]print(found_state.posix.dumps(0))print(found_state.posix.dumps(1))```

代码中,`sm.explore`方法用于在程序中搜索特定地址空间中的目标地址(`find`),同时避免进入某些特定地址空间(`avoid`)。`found_state`即为触发漏洞的状态,其`posix.dumps`方法用于dump相关内存内容。

代码2

下面是对漏洞有效性验证的代码示例:

```pythonimport angrpp = angrp.Project("00_angr_find")init_state = p.factory.entry_state()sm = p.factory.simulation_manager(init_state)

def is_good(state):return b'Good Job' in state.posix.dumps(1)

def is_bad(state):return b'Try again' in state.posix.dumps(1)

sm.explore(find=is_good, avoid=is_bad)found_state = sm.found[0]print(found_state.posix.dumps(0))print(found_state.posix.dumps(1))

在本代码中,`is_good`和`is_bad`函数分别检查程序输出中特定字符串的存在情况。`sm.explore`根据条件筛选出符合预期的漏洞状态。

验证

通过上述代码示例,可以验证漏洞的有效性。首先,运行漏洞挖掘脚本,找到触发漏洞的路径;其次,通过验证函数确保漏洞确实带来预期的效果;最后,输出相关内存内容以确认漏洞的存在。

转载地址:http://itve.baihongyu.com/

你可能感兴趣的文章
opencv waitKey() 函数理解及应用
查看>>
OpenCV 中的图像转换
查看>>
OpenCV 人脸识别 C++实例代码
查看>>
OpenCV 在 Linux 上的 python 与 anaconda 无法正常工作.收到未实现 cv2.imshow() 的错误
查看>>
Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)上
查看>>
opencv 模板匹配, 已解决模板过大程序不工作的bug
查看>>
OpenCV 错误:(-215)size.width>0 &&函数imshow中的size.height>0
查看>>
opencv&Python——多种边缘检测
查看>>
opencv&python——高通滤波器和低通滤波器
查看>>
OpenCV+Python识别车牌和字符分割的实现
查看>>
OpenCV-Python接口、cv和cv2的性能比较
查看>>
OpenCV/Python/dlib眨眼检测
查看>>
opencv1-加载、修改、保存图像
查看>>
opencv10-形态学操作
查看>>
opencv11-提取水平直线和垂直直线
查看>>
opencv12-图像金字塔
查看>>
opencv13-基本阈值操作
查看>>
opencv14-自定义线性滤波
查看>>
opencv15-边缘处理
查看>>
opencv16-Sobel算子
查看>>