用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的批量远程管理和部署工具Fabric用法实例
Jan 23 Python
在Django框架中编写Context处理器的方法
Jul 20 Python
让python在hadoop上跑起来
Jan 27 Python
简单讲解Python编程中namedtuple类的用法
Jun 21 Python
Python走楼梯问题解决方法示例
Jul 25 Python
python+influxdb+shell编写区域网络状况表
Jul 27 Python
python 中的列表生成式、生成器表达式、模块导入
Jun 19 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
通过python 执行 nohup 不生效的解决
Apr 16 Python
Python Web项目Cherrypy使用方法镜像
Nov 05 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
Feb 20 Python
Python函数式编程中itertools模块详解
Sep 15 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
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
php数组排序usort、uksort与sort函数用法
2014/11/17 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
JavaScript中的Math.sin()方法使用详解
2015/06/15 Javascript
15位和18位身份证JS校验的简单实例
2016/07/18 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
利用require.js与angular搭建spa应用的方法实例
2017/07/19 Javascript
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
Python中装饰器学习总结
2018/02/10 Python
Python基础之文件读取的讲解
2019/02/16 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
Pandas的数据过滤实现
2021/01/15 Python
有关九一八事变的演讲稿
2014/09/14 职场文书
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers
golang的文件创建及读写操作
2022/04/14 Golang
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL