OD插件编写问题
本帖最后由 zishen 于 2024-5-25 11:17 编辑今天学习NCK的OD插件编写时遇到了问题
代码应该没问题,基本上复制粘贴的
将OD放入项目文件夹中,
将DLL文件直接生成到Plugin目录中
但是打开OD时,却根本没有这个插件!有大佬知道是什么问题,该怎么解决吗?
代码如下:但应该不是代码的问题
#include "pch.h"
#include "Plugin.h"
extern "C" __declspec(dllexport) cdecl int ODBG_Plugincata(char* shortname) {
_Mergequicknames();
const char* pluginName = "OD插件例子";
strcpy_s(shortname, strlen(pluginName) + 1, pluginName);
return PLUGIN_VERSION;
}
//OD主界面句柄
HWND g_hOllyDbg;
//************************************
// Method:插件初始化,用于判断当前OD版本号和插件所支持的版本是否一致
// Description:必须的导出函数
//************************************
extern "C" __declspec(dllexport) cdecl int ODBG_Plugininit(int ollydbgversion, HWND hw, ulong * features)
{
if (ollydbgversion < PLUGIN_VERSION)
{
MessageBox(hw, "本插件不支持当前版本OD!", "MyFirstPlugin", MB_ICONERROR);
return -1;
}
g_hOllyDbg = hw;
return 0;
}
//************************************
// Method:显示菜单项
// Description:显示对应的菜单选项
//************************************
extern "C" __declspec(dllexport) cdecl intODBG_Pluginmenu(int origin, TCHAR data, VOID * item)
{
if (origin == PM_MAIN)
{
strcpy(data, "0&顶部菜单子菜单一,1&顶部菜单子菜单二");
}
if (origin == PM_DISASM)
{
strcpy(data, "鼠标右键主菜单{0&鼠标右键子菜单一,1&鼠标右键子菜单二}");
}
return 1;
}
//************************************
// Method:菜单项被点击执行函数
// Description:所有的菜单项被点击都会执行到这个函数
//************************************
extern "C" __declspec(dllexport) cdecl void ODBG_Pluginaction(int origin, int action, VOID * item)
{
//如果是在主窗口点击
if (origin == PM_MAIN)
{
if (action == 0)
{
MessageBoxA(g_hOllyDbg, "顶部菜单子菜单一", "www.bcdaren.com", MB_ICONINFORMATION);
}
if (action == 1)
{
MessageBoxA(g_hOllyDbg, "顶部菜单子菜单二", "www.bcdaren.com", MB_ICONINFORMATION);
}
}
//如果是在反汇编窗口点击
if (origin == PM_DISASM)
{
if (action == 0)
{
MessageBoxA(g_hOllyDbg, "鼠标右键子菜单一", "www.bcdaren.com", MB_ICONINFORMATION);
}
if (action == 1)
{
MessageBoxA(g_hOllyDbg, "鼠标右键子菜单二", "www.bcdaren.com", MB_ICONINFORMATION);
}
}
} ODBG_Plugincata错了吧,确定不是data?你看ide的图里这个导出函数和下边的配色都不一样 感觉都是大神! 代码太模糊看不清 太模糊了,看不清,这个插件的作用是干什么的?
页:
[1]