飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3132|回复: 7

[Decompilers] Wing_IDE动态调试IDAPython

[复制链接]
  • TA的每日心情
    奋斗
    2024-2-26 08:50
  • 签到天数: 259 天

    [LV.8]以坛为家I

    发表于 2019-11-20 22:23:37 | 显示全部楼层 |阅读模式
    参考看雪作者sonnzy的文章:利用wing ide动态调试ida7 python插件,做了一些完善。
    看雪sonnzy的文章:https://bbs.pediy.com/thread-224627.htm
    小白一枚,望大牛不要见笑。

    0x00 准备工作
    (1)安装IDA_Pro_v7.0(勾选安装或自己手动安装python2.7.13-x64)。
    (2)安装Wing IDEPro(版本无特殊要求,但要支持python2.7.13-x64)。
    (3)将Wing IDE Pro安装目录下的wingdbstub.py复制到X:\xxxxxx\IDA7.0\python目录中。
    (4)把本地Windows的"C:\Users\用户名\AppData\Roaming\Wing IDE x\ "目录下的wingdebugpw文件复制X:\xxxxxx\IDA7.0\python目录中,与wingdbstub.py在一个目录。这个文件是密码文件,WingIDE为了安全性而搞的,必需。
    (5)python2.7.13-x64安装目录下,在X:\xxx\Python27-x64\Lib\site-packages目录中新建文本文件xxxx.pth(名称任意),该文本文件中的内容为:
    [Bash shell] 纯文本查看 复制代码
    X:\xxxxxx\IDA7.0\python
    X:\xxxxxx\IDA7.0\python\lib\python2.7\lib-dynload\ida_32
    X:\xxxxxx\IDA7.0\python\lib\python2.7\lib-dynload\ida_64
      把IDA自己的Python库文件连到Python2.7中,这样Wing_IDE就能找到IDAPython的库文件了。

    0x01 开始测试

    1.1 测试用例

    在X:\xxxxxx\IDA 7.0\plugins 新建sample_debuggee.py,文件内容如下:

    [Python] 纯文本查看 复制代码
    [/font][/size]
    [size=2][font=Times New Roman]
    [/font][/size]
    [size=2][font=Times New Roman]# filename: sample_debuggee.py[/font][/size]
    [font=Times New Roman] 
    import idaapi
    import ida_idaapi
    from idc import *
    import wingdbstub
     
    def my_debugged_function():
        # Set breakpoint here!
        var1='aaa'
        var2='bbb'
        msg(var1)
        msg(var2)
     
    class SamplePlugin(idaapi.plugin_t):
        flags = idaapi.PLUGIN_PROC
        comment = "Sample Debuggee"
        help = "Sample Debuggee"
        wanted_name = "Sample Debuggee"
        wanted_hotkey = "Shift+D"
     
        def init(self):
            return idaapi.PLUGIN_KEEP
     
        def term(self):
            pass
     
        def run(self, arg):
            wingdbstub.Ensure()
            my_debugged_function()
     
    def PLUGIN_ENTRY():
        return SamplePlugin()

    注意这两句代码:
    [Python] 纯文本查看 复制代码
    import wingdbstub
    wingdbstub.Ensure()
    被调试代码需要import wingdbstub;Wind_IDE中需要在wingdbstub.Ensure()语句之后下断点,才可以中断下来。


    1.2 添加断点

    用Wing_IDE打开X:\xxxxxx\IDA 7.0\plugins\sample_debuggee.py,F9下断点(如在“msg(var1)”这行下断),在Wing_IDE左下角选中“accept debug connections”。如下图所示:




    1.3 载入文件

    启动IDA,随便载入一个idb或PE文件,点击运行前面建的IDAPython文件“sample_debuggee.py”,Edit→Plugins→sample debuggee,点击后你会发现Wing_IDE已经捕捉到并断下来了,现在就可以用Wing_IDE调试了。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    昨天 11:17
  • 签到天数: 2380 天

    [LV.Master]伴坛终老

    发表于 2019-11-21 00:12:28 | 显示全部楼层
    不用说,必须收藏,以后会用得上
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2020-1-9 10:13
  • 签到天数: 136 天

    [LV.7]常住居民III

    发表于 2019-11-21 09:51:10 | 显示全部楼层

    不用说,必须收藏,以后会用得上
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 18:59
  • 签到天数: 2346 天

    [LV.Master]伴坛终老

    发表于 2019-11-21 10:04:58 | 显示全部楼层
    多了一个python调试手段,收藏了,谢谢
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-14 12:16
  • 签到天数: 337 天

    [LV.8]以坛为家I

    发表于 2019-11-21 15:38:47 | 显示全部楼层
    这个很是可以的
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-12-19 22:05
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2019-12-2 22:01:05 | 显示全部楼层
    python调试手段,收藏了,谢谢
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-1-8 11:54
  • 签到天数: 112 天

    [LV.6]常住居民II

    发表于 2020-3-3 22:48:56 | 显示全部楼层


    不用说,必须收藏,以后会用得上
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    4 天前
  • 签到天数: 608 天

    [LV.9]以坛为家II

    发表于 2022-2-23 22:54:32 | 显示全部楼层
    这家伙也用wind ide for python啊。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表