文章目录
1.基础知识
- 1.基础知识
- 2.出口
- 3.定义
- 4.作者答疑
本页涵盖了 x64dbg 插件开发的基本原则。有关示例插件和模板,请参阅插件页面。
2.出口一个插件至少有一个导出。必须调用此导出pluginit。有关PLUG_INITSTRUCT更多信息,请参阅和插件标头。其他有效的出口是:plugstop:在插件即将卸载时调用。在此处删除所有已注册的命令和回调。还要清理插件数据。plugsetup:插件初始化成功时调用,这里可以注册菜单等GUI相关的东西。CB*_plugin_registercallback您可以创建一个CDECL具有回调名称的导出,而不是调用。例如,当您创建一个名为 CBMENUENTRY的导出时,这将被注册为您的事件回调CB_MENUENTRY。请注意,您不应在导出名称中使用下划线。CBALLEVENTS导出具有名称的CBALLEVENTS将获取注册到它的每个事件。这是在注册可选的其他导出名称之前完成的。
3.定义初始化导出。
extern "C" __declspec ( dllexport ) bool pluginit ( PLUG_INITSTRUCT * initStruct );
extern "C" __declspec ( dllexport ) bool plugstop ();
extern "C" __declspec ( dllexport ) void plugsetup ( PLUG_SETUPSRUCT * setupStruct );
回调导出。确保只导出您实际使用的回调!
extern "C" __declspec ( dllexport ) void CBINITDEBUG ( CBTYPE cbType , PLUG_CB_INITDEBUG * info );
extern "C" __declspec ( dllexport ) void CBSTOPDEBUG ( CBTYPE cbType , PLUG_CB_STOPDEBUG * info );
extern "C" __declspec ( dllexport ) void CBEXCEPTION ( CBTYPE cbType , PLUG_CB_EXCEPTION * info);
extern "C" __declspec ( dllexport ) void CBDEBUGEVENT ( CBTYPE cbType , PLUG_CB_DEBUGEVENT * info );
extern "C" __declspec ( dllexport ) void CBMENUENTRY ( CBTYPE cbType , PLUG_CB_MENUENTRY * info );
合理的脚本代码可以有效的提高工作效率,减少重复劳动。
4.作者答疑如有疑问,敬请留言。