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.pyd4.然后输入python setup.py install
测试安装的 pydasm. 进入 python 命令行, 输入 import pydasm没有错误表示已经安装成功 b.安装pydbg1.svn中checkout paimeihttp://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 process4.https://www.corelan.be/index.php/2010/10/20/in-memory-fuzzing/ pydbg memory fuzzing5.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 hack9.http://www.manaware.net/reverse-engineering/soft-hooking-with-pydbg.html pydbg做hook10.http://blog.carlosgarciaprado.com/?tag=pydbg live debugging11.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很多资料
本文只做总结,不做深入探讨,后继深入部分实际应用