虽然知道ImmDbg的调试器是从OD的源代码的基础上改进来的,SDK差别也不是很大,但是从网上找了一下却始终没有找到下载的地方。直到今天下载一个Imm插件的时候从源代码里找到了1.83的SDK,当然对于最新的ImmDbg这个sdk开发的插件也是可以用的。
其实整个SDk在OD的基础上对一些函数进行了封装,如是而已,那么如果有源代码将代码从OD迁徙到Imm还是比较容易的:
////////////////////////////////////////////////////////////////////////////////
//////////////////////////// IMPORTANT INFORMATION /////////////////////////////
// 1. Export all callback functions by name, NOT by ordinal!
// 2. Force 4 byte alignment of immDbg structures!
// 3. Set default char type to unsigned!
// 4. Read documentation!
#ifndef __PLUGIN_H__
#define __PLUGIN_H__
#pragma pack(push, 4) // Force 4 byte alignment of structures
#ifndef _CHAR_UNSIGNED // Verify that character is unsigned
#error Please set default char type to unsigned (option /J)
#endif
#define ODBG_Plugindata IMMDBG_Plugindata
#define ODBG_Plugininit IMMDBG_Plugininit
#define ODBG_Pluginmainloop IMMDBG_Pluginmainloop
#define ODBG_Pluginsaveudd IMMDBG_Pluginsaveudd
#define ODBG_Pluginuddrecord IMMDBG_Pluginuddrecord
#define ODBG_Pluginmenu IMMDBG_Pluginmenu
#define ODBG_Pluginaction IMMDBG_Pluginaction
#define ODBG_Pluginshortcut IMMDBG_Pluginshortcut
#define ODBG_Pluginreset IMMDBG_Pluginreset
#define ODBG_Pluginclose IMMDBG_Pluginclose
#define ODBG_Plugindestroy IMMDBG_Plugindestroy
#define ODBG_Paused IMMDBG_Paused
#define ODBG_Pausedex IMMDBG_Pausedex
#define ODBG_Plugincmd IMMDBG_Plugincmd
////////////////////////////////////////////////////////////////////////////////