用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实现简单状态框架的方法
Mar 19 Python
使用rpclib进行Python网络编程时的注释问题
May 06 Python
Python中Django发送带图片和附件的邮件
Mar 31 Python
Python之读取TXT文件的方法小结
Apr 27 Python
pygame实现俄罗斯方块游戏
Jun 26 Python
python自动化生成IOS的图标
Nov 13 Python
django+mysql的使用示例
Nov 23 Python
在Pycharm中使用GitHub的方法步骤
Jun 13 Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 Python
python实现logistic分类算法代码
Feb 28 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
简述python四种分词工具,盘点哪个更好用?
Apr 13 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中使用Oracle数据库(5)
2006/10/09 PHP
PHP中文汉字验证码
2007/04/08 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
dedecms中使用php语句指南
2014/11/13 PHP
JavaScript基础知识学习笔记
2014/12/02 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
vue编译打包本地查看index文件的方法
2018/02/23 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
[01:44]Ti10举办地公布
2019/08/25 DOTA
python学习 流程控制语句详解
2016/06/01 Python
Django学习教程之静态文件的调用详解
2018/05/08 Python
对python 自定义协议的方法详解
2019/02/13 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
上海中网科技笔试题
2012/02/19 面试题
护士见习期自我鉴定
2014/02/08 职场文书
党员岗位承诺书
2014/03/25 职场文书
行风评议整改报告
2014/11/06 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
求职信如何撰写?
2019/05/22 职场文书
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL
Windows7下FTP搭建图文教程
2022/08/05 Servers