zoukankan      html  css  js  c++  java
  • 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很多资料
    本文只做总结,不做深入探讨,后继深入部分实际应用

  • 相关阅读:
    论语学习系列(一)
    如何编译生成 dll
    Lua学习系列(二)
    Lua学习系列(一)
    Promise对象
    ... 扩展运算符
    class类
    proxy [ˈprɒksi] 代理
    HBuilder 打包流程
    Generator [ˈdʒenəreɪtə(r)] 函数结构
  • 原文地址:https://www.cnblogs.com/moonflow/p/2276062.html
Copyright © 2011-2022 走看看