用python编写第一个IDA插件的实例


Posted in Python onMay 29, 2018

IDA插件是经过编译的、功能更强大的IDC脚本,与仅仅使用脚本相比,插件能够执行更加复杂的任务。与编写IDC脚本相比,python显得更为轻巧和强大,IDAPython作为IDA的一个插件,具有IDA SDK的大部分功能,能够帮助我们编写实现IDC脚本语言所有功能的python脚本。

本文将以一个简单的例子开始展示如何使用python编写并安装一个IDA插件。

1、编写插件文件msg.py

from idaapi import *
class myIdaPlugin(plugin_t):
 flags=0
 wanted_name="my ida plugin"
 wanted_hotkey="F1"
 comment="my ida plugin"
 help="Something helpful"
 def init(self):
  msg("Ida plugin init called.\n")
  return PLUGIN_OK
 def term(self):
  msg("Ida plugin term called.\n")
 def run(self,arg):
  warning("Ida plugin run(%d) called.\n"%arg)
def PLUGIN_ENTRY():
 return myIdaPlugin()

2、将msg.py文件置于IDADIR/plugins目录,修改IDADIR/plugins/plugins.cfg文件,将plug_name 值设置为IDA菜单栏显示的菜单,plugin_file值设为msg.py文件全称,记得带上扩展名,否则是系统默认的.plw或.p64,保存后重启IDA即可。

以上这篇用python编写第一个IDA插件的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python清理子进程机制剖析
Nov 23 Python
python实现kNN算法
Dec 20 Python
Python冲顶大会 快来答题!
Jan 17 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
Python shelve模块实现解析
Aug 28 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
Sep 16 Python
Python单元测试与测试用例简析
Nov 09 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
python保留小数位的三种实现方法
Jan 07 Python
浅谈Python访问MySQL的正确姿势
Jan 07 Python
使用Python求解带约束的最优化问题详解
Feb 11 Python
浅析python中特殊文件和特殊函数
Feb 24 Python
基于python进行桶排序与基数排序的总结
May 29 #Python
Vue的el-scrollbar实现自定义滚动
May 29 #Python
基于Django与ajax之间的json传输方法
May 29 #Python
django ajax json的实例代码
May 29 #Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
May 29 #Python
PyTorch学习笔记之回归实战
May 28 #Python
Django 使用Ajax进行前后台交互的示例讲解
May 28 #Python
You might like
php正则表达匹配中文问题分析小结
2012/03/25 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
javascript实现汉字转拼音代码分享
2015/04/20 Javascript
jquery判断输入密码两次是否相等
2020/04/22 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
Angularjs实现数组随机排序的方法
2018/10/02 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
js在HTML的三种引用方式详解
2020/08/29 Javascript
[02:43]2014DOTA2国际邀请赛 官方Alliance战队纪录片
2014/07/14 DOTA
Python splitlines使用技巧
2008/09/06 Python
Python中对象的引用与复制代码示例
2017/12/04 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
html5指南-6.如何创建离线web应用程序实现离线访问
2013/01/07 HTML / CSS
物流专业大学生求职信范文
2013/10/28 职场文书
2015年清明节活动总结
2015/02/09 职场文书
2016新春团拜会致辞
2015/08/01 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
只用20行Python代码实现屏幕录制功能
2021/06/02 Python
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android
MySQL添加索引特点及优化问题
2022/07/23 MySQL