首页 > 代码库 > OD: Peimei

OD: Peimei

PE 中漫步—“白眉”

指令追踪技术与 Paimei

程序异常发生的位置通常离漏洞函数很远,当溢出发生时,栈帧往往也会遭到破坏,给动态调试制造很大的困难。

指令追踪最大限度地结合了动态分析和静态分析的做点,能够迅速定位漏洞。其工作流程如下:

1  将目标 PE 文件反汇编,按照指令块记录下来(通常用跳转指令来划分)2  用调试器加载 PE 文件,或者 Attach 到目标进程上,并对程序进行一定操作3  指令追踪工具会在最初记录的静态指令快中标注当前操作所执行过的指令,用户在阅读反汇编代码的同时也能获得程序执行流程信息

最早的指令追踪软件是 Sabre 公司出品的 BinNavi,它工作在 IDA 反汇编的结果之上,能够用图形标注出代码块之间的调用关系,迅速定位程序中某种操作对应的代码。但 BinNavi 是商业软件,连 evaluation version 都没提供。别一款优秀且免费的软件是逆向界的 MetaSploit:Paimei,所说其作者 Pedram Amini 非常崇拜 Kill Bill II 中的中国白眉大侠,所以得名 Paimei。

Paimei 使用 Python 语言开发,模块化和扩展性良好,包含 explore、filefuzz、pstaker 三个模块。其中 pstaker 是用来进行指令追踪的。Pedram Amini 在逆向峰会 RECON2006 上提到后续会加入补丁比较、网络 Fuzz 等模块。

 

安装 Paimei1.2

1 下载以下软件/组件

  Paimei 1.2:https://github.com/OpenRCE/paimei

  Paimei 组件 pydbg:https://github.com/OpenRCE/paimei

  Python 2.6.6:该版本已包含 ctypes

  MariaDB:用来代替 MySQL,MySQL 500 多兆,安装 MySQL 5.6 还需要 .NET 4.0 支持,麻烦臃肿。

  pyparsing

  pydot:依赖于 pyparsing

  wxPython3.0-win32-3.0.1.1-py26.exe

2 解压 paimei,并将下载的 pydbg 包的内容解压到 paimei/pydbg 中

3 安装 Python 2.6.6、MariaDB

4 安装 pyparsing、pydot、wxPython、

OD: Peimei