好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 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 int ODBG_Pluginmenu(int origin, TCHAR data[4096], 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);
}
}
} |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|