pydbg系列[1]

a.安装pydasm

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

http://code.google.com/p/libdasm/

下载libdasm-1.5.tar.gz并解压取其中的pydasm

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

具体如下所示:

msvccompiler.py: 
...
class MSVCCompiler (CCompiler) :
...
def __init__ (self, verbose=0, dry_run=0, force=0):
...
# comment out here!!
self.__macros = MacroExpander(self.__version) #将这一行注释掉

并且删掉msvccompiler.py对应的.pyc文件

需要环境变量"DISTUTILS_USE_SDK"和"MSSdk"

set DISTUTILS_USE_SDK=1
set MSSdk=1

3.设置和修改完这些后,开始编译

python setup.py build_ext

会出现一些错误,忽略这些错误,只要能够生成pydasm.pyd就可以了。
生成目录为libdasm-1.5\pydasm\build\lib.win32-2.5\pydasm.pyd

4.然后输入python setup.py install
测试安装的 pydasm. 进入 python 命令行, 输入 import pydasm
没有错误表示已经安装成功


b.安装pydbg
1.svn中checkout paimei

http://code.google.com/p/paimei/

取其中的pydbg
2.编译安装

python setup.py build
python setup.py install

输入import pydbg测试是否安装成功

c.初步使用pydbg
摘抄的代码片段

import pydbg
def AESDecrypt_hook(dbg,args,ret):
.....
def AESEncrypt_hook(dbg,args):
.....
dbg=pydbg()
for process in dbg.enumerate_processes():
if(process[1]=="Thunder5.exe"):
pid=process[0]
if(pid==0):
print "process not exist!"
sys.exit(0)
dbg.attach(pid)
addr_AESDecrypt=0xAAAAAAAA #AES decryption function address
addr_AESEncrypt=0xBBBBBBBB #AES encryption function address
hooks=utils.hook_container()
print "Hooking AESEncryption(0x%x)" % addr_AESEncrypt
print "Hooking AESDecryption(0x%x)" % addr_AESDecrypt

hooks.add(dbg,addr_AESEncrypt,2,AESEncrypt_hook,None)
hooks.add(dbg,addr_AESDecrypt,2,AESDecrypt_hook,None)
......
dbg.run()

d、参考链接:
1.http://www.glamenv-septzen.net/en/view/13      pydbg安装,很详细
2.http://www.adintr.com/article/blog/263      pydbg安装
3.http://robindavid.comli.com/?p=433      pydbg hack process
4.https://www.corelan.be/index.php/2010/10/20/in-memory-fuzzing/       pydbg memory fuzzing
5.http://pedram.redhive.com/PaiMei/docs/PyDbg/      pydbg函数详细文档
6.http://pedram.redhive.com/PyDbg/docs/     pydbg详细文档
7.http://dvlabs.tippingpoint.com/blog/2008/11/20/mindshare-utilizing-pydbg-within-ida    ida应用,这篇值得看
8.http://www.openrce.org/blog/view/869/PyDbg_Hacks     pydbg hack
9.http://www.manaware.net/reverse-engineering/soft-hooking-with-pydbg.html        pydbg做hook
10.http://blog.carlosgarciaprado.com/?tag=pydbg      live debugging
11.http://www.openrce.org/blog/view/598/The_Greatness_of_PyDbg       pydbg应用
12.http://www.openrce.org/blog/view/100/Debugger_Debugging_Madness       pydbg应用
13.http://crazylazy.info/blog/?q=content/paimei-tutorial-hands-pydbg-part-1      pydbg精彩文章
14.http://www.linuxidc.com/Linux/2011-11/47734.htm pydbg做hook应用
15.http://hi.baidu.com/oxl6/blog/item/54583d55f48f5c52d009062d.html       pydbg做逆向工程(一系列,很精彩)
16.http://initiative.yo2.cn/archives/category/python 关于paimei的文章多
17.http://hi.baidu.com/int3/blog/item/4d06c151637659888d5430c9.html   跟踪程序流程

另外google 百度 搜索pydbg很多资料
本文只做总结,不做深入探讨,后继深入部分实际应用

原文地址:https://www.cnblogs.com/moonflow/p/2276062.html