OllyDbg插件代码2

OllyDbg插件代码2Odb2 插件 cpp 定义 DLL 应用程序的导出函数 include stdafx h include Odb2 插件 h include Odb2 插件 OllyDBG Plugin2 plugin h pragma nbsp comment lib Odb2 插件 OllyDBG Plugin2 ollydbg lib

// Odb2插件.cpp : 定义 DLL 应用程序的导出函数。

//

#include “stdafx.h”
#include “Odb2插件.h”
#include “..\\Odb2插件\\OllyDBG_Plugin2\\plugin.h”
#pragma  comment(lib,”..\\Odb2插件\\OllyDBG_Plugin2\\ollydbg.lib”)
#include


#include


#include “resource.h”
#include

#define PLUGINNAME L”Tennn”
#define MY_PLUGIN L”1.0″
t_table g_Tennn={0};

extern HMODULE g_hModule;
//插件信息查询函数
extc INT __cdecl ODBG2_Pluginquery(int ollydbgversion,ulong *features,
  wchar_t pluginname[SHORTNAME],
  wchar_t pluginversion[SHORTNAME])
{
//检查Olldbg版本
if (ollydbgversion<201)
{
return 0;
}
//设置Olldbg插件名称与版本
StringCchCopy(pluginname,SHORTNAME,PLUGINNAME);//设置插件名称
StringCchCopy(pluginversion,SHORTNAME,MY_PLUGIN);//设置插件版本
//返回需要的API版本
return PLUGIN_VERSION;
}

INT_PTR CALLBACK RightClickMenu1(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE;

case WM_COMMAND:
{
case IDC_BUTTON1:
MessageBox(0,0,0,0);
EndDialog(hDlg, LOWORD(wParam));
}
break;

}
return (INT_PTR)FALSE;
}
HWND g_hwnd;
//插件初始化函数
extc int __cdecl ODBG2_Plugininit(void)
{
MessageBox(0,L”Hello Pediy”,0,0);
HWND hParent=GetActiveWindow();
LPCWSTR lpDlgID=MAKEINTRESOURCE(IDD_DIALOG1);
g_hwnd=CreateDialog(g_hModule,lpDlgID,hParent,(DLGPROC)RightClickMenu1);
return 0;
}
//插件重置函数
extc void __cdecl ODBG2_Pluginreset(void)
{
Deletesorteddatarange(&(g_Tennn.sorted),0,0xFFFFFFFF);
}

//插件关闭函数
extc int __cdecl ODBG2_Pluginclose(void)
{
Writetoini(NULL,PLUGINNAME,L”Restore”,L”%i”,g_Tennn.hw!=NULL);
return 0;
}

//插件销毁函数
extc void __cdecl ODBG2_Plugindestroy(void)
{
Destroysorteddata(&(g_Tennn.sorted));
}

//主菜单1响应
static int MenuFun1(t_table *pt,wchar_t *name,ulong index,int mode)
{
if (mode==MENU_VERIFY)
{
// MessageBox(0,L”MENU_NORMAL11111″,0,0);
return MENU_NORMAL;
}
if (mode==MENU_EXECUTE)
{
MessageBox(0,L”MENU_NOREDRAW11111″,0,0);
return MENU_NOREDRAW;
}
return MENU_ABSENT;
}
//主菜单2响应
static int MenuFun2(t_table *pt,wchar_t *name,ulong index,int mode)
{
if (mode==MENU_VERIFY)
{
// MessageBox(0,L”MENU_NORMAL22222″,0,0);
return MENU_NORMAL;
}
if (mode==MENU_EXECUTE)
{
MessageBox(0,L”MENU_NOREDRAW22222″,0,0);
return MENU_NOREDRAW;
}
return MENU_ABSENT;
}
static t_menu g_stcMainMenu[]={
{
L”主菜单1″,
L”主菜单”,
K_NONE,MenuFun1,NULL,0
},
{
L”主菜单2″,
L”主菜单”,
K_NONE,MenuFun2,NULL,1
},
{
NULL,NULL,K_NONE,NULL,NULL,0
}
};
static int RightClickMenu1(t_table *pt,wchar_t *name,ulong index,int mode)
{
//第一次调用 执行初始化操作
if (mode==MENU_VERIFY)
{
// MessageBox(0,L”MENU_NORMAL11111″,0,0);
return MENU_NORMAL;
}
//第二次调用 执行菜单逻辑操作
if (mode==MENU_EXECUTE)
{
MessageBox(0,L”MENU_NOREDRAW11111″,0,0);
ShowWindow(g_hwnd,SW_SHOW);
return MENU_NOREDRAW;
}
return MENU_ABSENT;
}

static int RightClickMenu2(t_table *pt,wchar_t *name,ulong index,int mode)
{
if (mode==MENU_VERIFY)
{
// MessageBox(0,L”MENU_NORMAL22222″,0,0);
return MENU_NORMAL;
}
if (mode==MENU_EXECUTE)
{
MessageBox(0,L”MENU_NOREDRAW22222″,0,0);
return MENU_NOREDRAW;
}
return MENU_ABSENT;
}
static t_menu g_stcRightClickMenu[]={
{
L”右键菜单1111″,
L”右键”,
KK_DIRECT | KK_CTRL | ‘A’,RightClickMenu1,NULL,0},
{
L”右键菜单2222″,
L”右键”,
KK_DIRECT | KK_CTRL | ‘C’,RightClickMenu2,NULL,1},
{
NULL,NULL,K_NONE,NULL,NULL,0
}
};

extc t_menu* __cdecl ODBG2_Pluginmenu(wchar_t *type)
{
//判断是否为主菜单请求
if (!wcscmp(type,PWM_MAIN))
{
return g_stcMainMenu;
}
//判断是否为CPU窗口右键菜单请求
if (!wcscmp(type,PWM_DISASM))
{
return g_stcRightClickMenu;
}
return NULL;
}



















































































































































































































版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224452.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午11:54
下一篇 2026年3月17日 上午11:55


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号