Wing_IDE动态调试IDAPython
参考看雪作者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(名称任意),该文本文件中的内容为: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,文件内容如下:
# filename: sample_debuggee.py
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()
注意这两句代码: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调试了。
不用说,必须收藏,以后会用得上
不用说,必须收藏,以后会用得上 多了一个python调试手段,收藏了,谢谢 这个很是可以的 python调试手段,收藏了,谢谢
不用说,必须收藏,以后会用得上 这家伙也用wind ide for python啊。{:lol:}
页:
[1]