ida plug-in helloworld

复制代码
#include <ida.hpp>
#include <idp.hpp>
#include <loader.hpp>
#include <kernwin.hpp>

int __stdcall IDP_init(void)
{
  //在这里做一些校验,以确保您的插件是被用在合适的环境里。
  if ( 0 )
  {
    error("sorry!");
    return PLUGIN_SKIP;
  }
  return PLUGIN_KEEP;
}

void __stdcall IDP_term(void)
{
  //当结束插件时,一般您可以在此添加一点任务清理的代码。
  return;                                                                       
}

// 插件可以从plugins.cfg文件中,被传进一个整型参数。
// 当按下不同的热键或者菜单时,您需要一个插件做不同的事情时,这非常有用。
void __stdcall IDP_run(int arg)
{
  // 插件的实体
  msg("Hello world!\n");
  return;
}

// 在Edit->Plugins 菜单中,插件的现实名称,它能被用户的plugins.cfg文件改写
char IDP_name[] = "My plugin";
char IDP_comment[] = "This is my test plug-in";
char IDP_help[] = "My plugin";
char IDP_hotkey[] = "Ctrl-Alt-X"; // 启动插件的热键

// 所有PLUGIN对象导出的重要属性。
plugin_t PLUGIN =
{
  IDP_INTERFACE_VERSION, // IDA version plug-in is written for
  0, // Flags (see below)
  IDP_init, // Initialisation function
  IDP_term, // Clean-up function
  IDP_run, // Main plug-in body
  IDP_comment, // Comment – unused
  IDP_help, // As above – unused
  IDP_name, // Plug-in name shown in Edit->Plugins menu
  IDP_hotkey // Hot key to run the plug-in
};
复制代码

 

posted @   IAmAProgrammer  阅读(394)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示