banner.gif adie's blog
主页 博客 胭脂泪,相留醉,几时重,自是人生长恨水长东
统计
日志总数: 119
评论总数: 119
日志分类
日志归档
最近日志
最近评论
订阅
rss2.gif

atom.gif

google_rss
yc.gif 【编程】 阅读 10219 次

pydbg 安装

2011-10-22 21:39:47

ollydbg 虽然很强大, 还是无法满足所有的需求, 比如找了很久也没找到的功能就有:

1. 进入某个模块的断点. 即相当于把某个 dll 的所有函数(不光是导出的函数) 入口全部下上断点.

2. 对 COM 组件的函数下断点.

3. 内存断点的条件限制.

...

要解决所有问题的唯一办法就是写自己的调试器, 但是要从头开始写一个调试器并不是一项简单的工作. 这时, 利用 pydbg 库来实现特定的调试需求就非常方便了. 不过 pydbg 的安装也并不容易, 你不光要有 python 还得有 C 编译器才行. 下面是我安装过程的记录:

 1. 下载 libdasm (pydbg 依赖于 pydasm, pydasm 又需要 libdasm)

     http://www.nologin.org/main.pl?action=codeView&codeId=49&

     http://www.adintr.com/down/libs/libdasm-1.5.tar.gz

 2. 用 VC 的命令行进入解压出来的 pydasm 目录. 执行 setup.py install 自动编译后安装.

     如果你从没有编译个 c 源代码的 python 库, 而且你安装的 python 和你的 VC 编译器版本不匹配的话, 可能会出现找不到 C 编译器的错误. 这时就需要手动修改 python 的 Lib\distutils\msvccompiler.py 文件.

 3. 测试安装的 pydasm. 进入 python 命令行, 输入 import pydasm, 出现错误:  ImportError: DLL load failed: 找不到指定的模块.

     使用 dumpbin /DEPENDENTS pydasm.pyd 命令查找它依赖的 dll, 发现有:   MSVCR80.dll,  python27.dll ,  KERNEL32.dll (根据你的 python 版本和 VC 版本可能有不同). 缺少的应该是 MSVCR80.dll 拷贝一份到 python 目录下. 再次 import pydasm, 提示错误: ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。

 4. 没办法了,  只要用我自己用源代码编译出来的 python 版本了. 自己编译出来的版本是把 VC 编译器配置好了的. 直接编译后 import pydasm 就成功了 :)

 5. 下载 pydbg, 源代码在 google code 上, 需要用 svn 下载:  http://paimei.googlecode.com/svn/trunk/.

 6. 进入源代码目录, 执行 setup.py install.

 7. 安装完成后直接 import pydbg 仍然是提示 pydasm 的 dll 无法加载. 需要把 site-packages\pydbg 目录下那一份 pydasm.pyd 文件删除.

 终于可以导入 pydbg 了:

 

 

▲评论

› 网友 匿名 () 于 2016-01-15 22:31:08 发表评论说:
GoogleCode 即将关闭, pydbg 已经转移到 github 上了: https://github.com/OpenRCE/pydbg
X 正在回复:
姓 名: 留下更多信息
性 别:
邮 件:
主 页:
Q Q:
来 自:
职 业:
评 论:


Valid HTML 4.01 Strict Valid CSS!
Copyleft.A!die Software Studio.ADSS
Power by webmaster@adintr.com