用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中的推导式使用详解
Jun 03 Python
使用Python导出Excel图表以及导出为图片的方法
Nov 07 Python
Python3.2模拟实现webqq登录
Feb 15 Python
Python File readlines() 使用方法
Mar 19 Python
python 巧用正则寻找字符串中的特定字符的位置方法
May 02 Python
Python实现端口检测的方法
Jul 24 Python
Python3匿名函数lambda介绍与使用示例
May 18 Python
Python多线程threading模块用法实例分析
May 22 Python
python实现查找所有程序的安装信息
Feb 18 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
Mar 20 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
Apr 01 Python
python matplotlib实现将图例放在图外
Apr 17 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危险函数(disable_functions)
2012/02/23 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
Yii配置文件用法详解
2014/12/04 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
PHP使用PHPexcel导入导出数据的方法
2015/11/14 PHP
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
Python Json序列化与反序列化的示例
2018/01/31 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
更新修改后的Python模块方法
2019/03/03 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
浅谈Python小波分析库Pywavelets的一点使用心得
2019/07/09 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
详解python中的模块及包导入
2019/08/30 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
南威尔士家居商店:Leekes
2016/10/25 全球购物
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
企业为何需要商业计划书
2013/12/26 职场文书
银行职业规划书范文
2013/12/28 职场文书
售后求职信范文
2014/03/15 职场文书
幼儿园安全责任书
2014/04/14 职场文书
公司辞职信模板
2015/05/13 职场文书
Python Socket编程详解
2021/04/25 Python