分类: WINDOWS
2009-09-25 17:37:59
转载自http://hi.baidu.com/bloodmonsterhl/blog/item/50d2b7f9e5e67507d8f9fd2f.html
Foreword:
白眉的安装非常复杂,网上基本上也没有系统的讲解,为了方便广大的漏洞爱好者,Ivan在此做了一份详尽的安装使用手册,希望对大家有帮助。
What is PaiMei?
PaiMei is a reverse engineering framework consisting of multipleextensible components.
The goal of the framework is to reduce the timefrom "idea" to prototype to a
matter of minutes, instead of days.PaiMei is written entirely in Python and exposes
at the highest level adebugger, a graph based binary abstraction and a set of
utilities foraccomplishing various repetitive tasks. The framework can essentiallybe
thought of as a reverse engineer's swiss army knife and has alreadybeen proven effective
for a wide range of both static and dynamic taskssuch as: fuzzer assistance, code coverage
tracking, data flow trackingand more.
白眉,非常棒的代码分析工具,完全由Python开发,扩展方便。上面看不懂,没关系....接着走
1.安装支持(一下带版本号的都与其他软件的支持相关,希望注意!)
1)Python 2.4
2)MySQL4.0
以上的软件都装好以后
PaiMei下载地址:
把我们下载的Paimei解压到你要安装的目录中,解压这个东东。然后运行Paimei目录下的__install_requirements.py这个文件。它会帮你检测其他的支持软件,省去你手动下载,除了上面的安装支持,基本上都能自动下载成功。
注意【如果不能成功,用记事本打开__install_requirements.py这个文件自己找地址下载(Python语言很简单),然后安装。如果不能下,自己复制名字到迅雷上去下,这个该会吧
。我给一个需要下载的软件列表1)Python ctypes 2)MySQLdb 3)WxPython 4)uDraw 其它的没下就不管了,反正可以用了,直接忽略。】
做完上面的步骤,我们的支持软件就都安装完成了,接下来运行Paimei目录下的__setup_mysql.py这个文件,它会在MySQL数据库中创建需要的数据库和表。
1.需要软件IDA Pro 和 IDA Python支持。
注意【IDA Pro和IDA Python的版本一定要对应,一般是IDAPython0·9·0forWindows,IDAPro5·0,and Python2·4。】
下载后1)把IDA Python里面的python文件夹拷到IDA Pro目录下;
2)把IDA Python里面plugins文件夹中的python.plw文件拷到IDA Pro的plugins目录下。
2. 启动uDraw
uDRAW在命令模式下开启:C:\Program Files\uDraw(Graph)\bin)uDrawGraph.exe -server 2542 (C:\Program Files\uDraw(Graph)\bin)是环境变量)
或者把uDrawGraph.exe 的属性改成“uDrawGraph.exe -server 2542”,以后每次就可以双击打开,方便多了。
3. 启动MySql service
安装后一般开机就自动启动了。
4.运行Paimei安装目录下console目录里的PAIMEIconsole.pyw这个文件,就能启动Paimei了。
1.首先完成白眉的启动(如上),然后连接MySql和uDraw。
连接:1)白眉的左上角——>Connections->MySql connect;弹出对话框,输入Passwd,点击connect,白眉状态栏(下面)就会显示是否连接成功。如图:
2)白眉的左上角——>Connections->uDraw connect;弹出对话框,Host为127.0.0.1,Port为2542,一般是设置好的,直接点击connect,白眉状态栏(下面)就会显示是否连接成功。
2.大体讲解,白眉左边有一栏,分别是PAIMEIdocs(白眉基本绍,要仔细读);
PAIMEIexpore, PAIMEIfilefuzz ,PAIMEIpstalker(PE漫步者)。
3.如何使用PAIMEIpstalker(PE漫步者):以Windows自带的计算器calc.exe为例进行指令追踪。
(以下知识参考《0day安全》)
1)IDA 自动分析calc.exe完后,使用Alt+9或者在IDA菜单中Edit——>Plguins——>IDApython中启动Paimei 安装目录下的“pida_dump.py”脚本,即将IDA分析的结果保存成Paimei所使用的数据格式pida文件。
确定后选择full:
然后保存在pida文件夹中。
2)单击Paimei左侧的“PAIMEIpstalker”,进入指令最终模块的界面。
3)连接uDraw和MySQL。
4)单击Paimei的“Add Module”按钮,将刚才用IDA导出的静态代码读入Paimei。
右键单击“Avaliable Targets”,选择“Add targets”,新建一个追踪目标,取名calc。
右键单击新添加的追踪目标,选择“Add Tag”。取名test1.【Tag用于区别一次指令追踪操作,可以在一个追踪目标下建立多个Tag以表示不同的追踪操作】
右键单击新添加的Tag,选择“Use for Stalking”
5)加载进程。有两种方式:可以通过单击“Browse”按钮来选择PE文件直接加载,也可以单击“Refresh Process List”按钮来选择已经启动的进程进行Attach。
6)单击“Start Stalking”按钮,开始指令追踪
模块数位52块。
7)右键单击当前的tag选择“load hits”,Paimei会将执行到的指令块读入并显示详细的信息;如果选择“Sync with uDraw”,Paimei会在uDraw的界面下绘制刚刚执行过的指令块及其之间的调用关系。
8)迅速定位特定功能对应的代码。
例如,我们想知道计算器中单击“c”(清零)按钮是程序所执行的代码,可以首先追踪calc.exe
的启动过程。
右 键单击这个tag,选择“Filter Tag”,将这一次追踪设置为filter,然后新建一个tag,命名为test2,进行新的一轮追踪。这次追踪Paimei将忽略test1中命令的指 令块,当calc.exe启动后,点击一下按钮“c”,Paimei将只记录这次单击操作所执行过的指令,总共命中6个指令块。
总 结:通过这种方法,我们能够迅速地定位某种特定功能的操作所对应的代码从而集中精力有重点地进行逆向分析。在漏洞分析时,我们可以首先在程序正常执行时进 行指令追踪,然后用这次追踪作为filter,再去追踪漏洞被触发时的执行流程,就能迅速定位漏洞代码的位置了。虽然Paimei能够极大地提高逆向分析 的工作效率,但是它也存在一些不足之处。比如Paimei的指令追踪依赖于IDA,所以其分析结果也依赖于IDA分析的正确性