好友
阅读权限40
听众
最后登录1970-1-1
|
http://ollydbg.de/plug110.zip
插件开发工具包 1.10
下载 PDK 1.10
汇编
要编译您自己的插件,您需要一些 C 或 C++ 编译器(连同链接器和运行时库)。插件接口(文件plugin.h)至少与以下编译器兼容:
Borland 的 C++ 5.5 - 命令行编译器,可从www.borland.com免费获得 (需要注册);
Borland 的 C++ Builder 5 - 基于相同的 C++ 5.5;
Microsoft 的 Visual C++ 5.0 - 相当陈旧但稳固且稳定。
我还没有尝试过任何其他编译器。如果您发现任何不兼容性,请告诉我,如果可能,请向我发送文件plugin.h的更正版本。
Plugin Development Kit includes source code for two fully functional sample plugins: bookmark, that allows to set up to 10 bookmarks in debugged application, and command line, that implements command line interface. Plugins are well documented. You can use them as a template for your own plugins. They are freeware, i.e. your rights to modify and re-use their source code are not limited in any way.
Following compiler settings are required for correct communication between plugin and OllyDbg. For compilers listed above, plugin.h forces or checks some of these rules:
Export all callback functions by name, NOT by ordinal;
If you use C++ compiler, disable name mangling on all callback functions (declare them as extern "C");
强制将标准 C 风格的参数传递给所有 API 和回调函数(将它们声明为 cdecl);
强制在plugin.h 中声明的所有结构的 BYTE 对齐;
将默认字符类型设置为 UNSIGNED。
请记住,您从 OllyDbg 获得的所有指针都可能为 NULL。这是一个非常常见的错误假设相反。
使用直接链接到插件的静态运行时库,否则运行时 DLL 版本之间的差异将使 OllyDbg 不稳定。不要将您的插件不必要地拆分为多个 DLL。如果您需要用户无法修改的数据文件,请尝试将此数据作为资源直接放入您的插件中。
To link your plugin to OllyDbg, you also need import library ollydbg.lib. Some compilers (Borland) include utility called implib that scans executable file (in our case, ollydbg.exe) and produces a special kind of library with a list of all exported functions. Some other products, like MSVC, can generate import library from the definition file (ollydbg.def). Similar products from other vendors are also available. For details, please consult documentation.
And, last but not least, don't waste resources! Don't export unused callback functions and make your program fast! OllyDbg in current version supports up to 32 plugins. If each of them will take only 50 ms to reject a global shortcut, then 50 ms for window-specific shortcut... you DO understand what I mean, don't you?
Contents of plug110.zip
Plugin kit archive contains following files:
Root directory:
bookmark.c - 书签插件 的源代码
cmdexec.c - 命令行插件 的源代码
command.c - 命令行插件的源代码
cmdline.rtf - 命令行插件的帮助 (.hlp) 文件的 RTF 源代码
ollydbg.def - OllyDbg 定义文件, 一些编译器需要它来生成导入库ollydbg.lib
plugin.h - 带有插件接口定义的头 文件
plugins.hlp - 这个帮助文件
目录 BC55:
sample.bpr - BCB 5 的项目文件,生成sample.dll (与bookmark.dll相同)
sample.cpp - sample.bpr 的主文件
bookmark.mak - BC 5.5 的生成文件,生成bookmark.dll
cmdline.bpr - 项目BCB 5 的文件,生成cmdline.dll
cmdline.cpp - cmdline.bpr的主文件cmdline.mak - BC 5.5 的生成文件,生成cmdline.dll ollydbg.lib - OMF 格式的 OllyDbg 导入库
目录 VC50:
bookmark.dsp - Visual Studio 97 的项目文件,生成 bookmark.dll
bookmark.dsw - Visual Studio 97 的项目文件,生成bookmark.dll
bookmark.mak - 为 VC 5.0 生成文件,生成bookmark.dll
cmdline.dsp - 项目文件对于 Visual Studio 97,生成cmdline.dll
cmdline.dsw - Visual Studio 97 的项目文件,生成cmdline.dll
cmdline.mak - 为 VC 5.0 生成文件,生成cmdline.dll
ollydbg.lib - COFF 格式的 OllyDbg 导入库
使用 BC5.5 制作示例插件
要使用 BC 5.5 构建示例 DLL,请执行以下操作:
1.将文件bookmark.c、cmdexec.c、command.c、 plugin.h、 bc55\bookmark.mak、 bc55\cmdline.mak、 bc55\ollydbg.lib复制到同一目录;
2. 假设您的 BC 5.5 编译器安装到 c:\bc55,发出以下命令:
c:\bc55\bin\make -f 书签
.mak c:\bc55\bin\make -f cmdline.mak
3. 假设您编写了自己的插件 myplug,由源文件ac、bc和资源c.rc 组成。您只需将bookmark.mak重命名为myplug.mak并按以下方式修改文件顶部附近的三行:
项目 = myplug.dll
OBJFILES = a.obj b.obj
RESFILES = c.rc
然后命令
c:\bc55\bin\make -f myplug.mak
使用 BCB 5 制作示例插件
BCB 项目必须包含与项目同名的主 C++ 程序和扩展名 .cpp。因此,使用 Builder 创建的书签插件称为sample.dll。当然,这对其功能没有影响。
要构建sample.dll,请执行以下操作:
1、将文件bookmark.c、plugin.h、bc55\sample.bpr、 bc55\sample.cpp 和bc55\ollydbg.lib复制到同一目录下;
2. 在Builder中打开sample.bpr,制作项目。
要构建cmdline.dll,请执行以下操作:
1. 将文件cmdexec.c , command.c , plugin.h , bc55\cmdline.bpr , bc55\cmdline.cpp 和bc55\ollydbg.lib 复制到同一目录下;
2. 在Builder中打开cmdline.bpr,制作项目。
从命令行使用 VC 5.0 制作示例插件
要使用 VC 5.0 构建示例 DLL,请执行以下操作:
1、将文件bookmark.c、cmdexec.c、command.c、 plugin.h、 vc50\bookmark.mak、 vc50\cmdline.mak 和 vc50\ollydbg.lib复制到同一目录下;
2. 在.mak文件中,编辑行
包含=c:\vc\include
LIBPATH=c:\vc\lib
以便它们指向您的包含和库目录;
3. 假设您的 VC 编译器cl.exe和 make 实用程序 nmake.exe位于 c:\vc\bin 中,请执行以下命令:
c:\vc\bin\nmake -f 书签
.mak c:\vc\bin\nmake -f cmdline.mak
从 Visual Studio 制作示例插件
要构建bookmark.dll:
1、将文件bookmark.c、plugin.h、vc50\bookmark.dsp、 vc50\bookmark.dsw 和vc50\ollydbg.lib复制到同一目录下;
2. Open project bookmark in Visual Studio and make it.
To build cmdline.dll:
1. Copy files cmdexec.c, command.c, plugin.h, vc50\cmdline.dsp, vc50\cmdline.dsw and vc50\ollydbg.lib to the same directory;
2. Open project cmdline in Visual Studio and make it.
|
|