吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2049|回复: 4
收起左侧

[讨论] 如果我有 C++Builder 10.3(Delphi自带的)能开发OD插件吗?

[复制链接]
冥界3大法王 发表于 2019-8-6 05:46




编译
要编译你自己的插件,你需要一个C或C++编译器(包含连接器和运行库),和插件接口(文件 plugin.h),它至少兼容于如下编译器:

?Borland's C++ 5.5 ?命令行编译器,可免费到www.borland.com下载(需要注册)
?Borland's C++ Builder 5 - BC++ 5.5的基础版
?Microsoft's Visual C++ 5.0 ?非常老但很稳定的VC版本
我并没有测试过其它编译器,如果你发现了不兼容,请你告诉我下,如果可能,请将正确的版本的plugin.h发给我,谢谢!
插件开发包包含两个功能简单的插件:bookmark,它允许在正在调试的应用程序中设置10个书签。和command line,它与命令行接口相通。插件本身就是一份很好的文档,你可以用它用为模板开发你自己的插件,它们都是自由软件,所以,你可能通过任何方式来修改它,就像是你自己的源代码一样。
如下编译器设置是很需要的,用来保证插件和 OllyDbg 正确通讯。适合于上面列出的编译器,plugin.h 将强制检查一些规则:
?应通过函数名输出所有回调函数,而不是序号。
?如果你用C++编译器,在回调函数中不能使用C++式命名(应该声明为extern "C");
?应该在所有API和回调函数强制为标准C风格参数传递(可声明参数传递风格为cdecl);
?在所有结构中强制为 BYTE 对齐,声明于 plugin.h中
?设置缺省字符类型为:UNSIGNED。
始终要记住,你从OllyDbg得到的所有指针必须为NULL,非常普遍的错误就是这个设置有问题。
你可以使用静态直接连接你的插件,否则,你的插件在不同版本的运行DLL之间可能不稳定。如果不必要,不要将你的插件分割到几个
DLL中,如果你需要的数据文件用户没有配置,可以尝试将数据直接移到你的插件或资源中。
要连接你的插件到OllyDbg,你还需要输入库ollydbg.lib。一些编译器(Borland)包含有实用小程序implib,它会扫描可执行文件并列出该库中所有的可用于打包的导出函数表。在其它产品中,像VC,能从定义(ollydbg.def)文件中产生输出表,相似的产品可以参考其具体的文档。
最后、必须特别提醒一下,不要浪费资源!不要导出不会用到的函数,那样是为了让你的程序跑的更快。OllyDbg当前版本只支持32个插件,如果每个插件花50ms去接受全局快捷键,又花50ms去接受窗口的快捷键……你明白我的意思了吗,嗯?

plug110.zip的内容
插件包文档包含如下文件:
根目录:
bookmark.c ?书签插件源代码
cmdexec.c ?命令行插件源代码
command.c ?命令行插件源代码
cmdline.rtf ?命令行插件帮助文件(.hlp)的RTF格式源代码(未编译成HLP文件)
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的make文件,生成bookmark.dll
cmdline.bpr - BCB 5工程文件,生成cmdline.dll
cmdline.cpp - cmdline.bpr的主文件
cmdline.mak - BC 5.5的make文件,生成cmdline.dll
ollydbg.lib - OllyDbg的OMF格式引入库
VC50文件夹:
bookmark.dsp - Visual Studio 97的工程文件,生成bookmark.dll
bookmark.dsw - Visual Studio 97的工程文件,生成bookmark.dll
bookmark.mak - VC 5.0的make文件,生成bookmark.dll
cmdline.dsp - Visual Studio 97的工程文件,生成 cmdline.dll
cmdline.dsw - Visual Studio 97的工程文件,生成 cmdline.dll
cmdline.mak - VC 5.0 的make文件,生成 cmdline.dll
ollydbg.lib - OllyDbg 的COFF 格式引入库
用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 bookmark.mak
c:\bc55\bin\make -f cmdline.mak
3. 假如要写你自己的插件,在你的插件包中包含a.c , b.c 和资源 c.rc ,你需要重命名bookmark.mak 于 myplug.mak 中,并且把如下紧连的三行放于该MAK文件的顶端:
PROJECT = myplug.dll
OBJFILES = a.obj b.obj
RESFILES = c.rc
然后再执行命令:
c:\bc55\bin\make -f myplug.mak
用BCB 5生成简单插件
BCB 工程必须包含与C++程序命名一样的主工程文件且扩展名为.cpp ,正是因为此,书签插件创建并调用sample.dll ,当然,这不会对实际功能有什么影响。
要构建 sample.dll, 可按如下操作进行:
1. 复制文件 bookmark.c, plugin.h, bc55\sample.bpr, bc55\sample.cpp 和 bc55\ollydbg.lib 到同一目录下;
2. 在Builder和make工程中打开 sample.bpr。
要构建 cmdline.dll ,可照如下操作进行:
1. 复制文件 cmdexec.c, command.c, plugin.h, bc55\cmdline.bpr, bc55\cmdline.cpp 和 bc55\ollydbg.lib到同一目录;
2. 在Builder 和 make工程中打开 cmdline.bpr 。

用VC 5.0 构建命令行插件
要用VC 5.0构建命令行插件,可按如下操作进行:
1. 复制文件 bookmark.c, cmdexec.c, command.c, plugin.h, vc50\bookmark.mak, vc50\cmdline.mak 和 vc50\ollydbg.lib 到同一目录;
2. 在 .mak 文件, 编辑行
INCLUDE=c:\vc\include
LIBPATH=c:\vc\lib
这样它就指向了你的包含 include 和库 lib 夹。
3. 假定你的VC编译器; cl.exe, 和 make小程序, nmake.exe,都在c:\vc\bin中,执行如下命令:
c:\vc\bin\nmake -f bookmark.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. 在Visual Studio中打开并编译工程 bookmark 。
要构建 cmdline.dll:
1. 复制文件 cmdexec.c, command.c, plugin.h, vc50\cmdline.dsp, vc50\cmdline.dsw 和 vc50\ollydbg.lib 到同一目录下;
2. 在Visual Studio 中打开并编译工程 cmdline 。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 冥界3大法王 发表于 2019-8-6 06:41
od插件开发包plug1101\Bc55
├(1)BOOKMARK.MAK
├(3)CMDLINE.BPR
├(4)CMDLINE.CPP
├(5)CMDLINE.MAK
├(6)OLLYDBG.LIB
├(7)SAMPLE.BPR
├(8)SAMPLE.CPP
└█
这玩意 打开后编译不了呢?
JuncoJet 发表于 2019-8-6 09:12
冥界3大法王 发表于 2019-8-6 06:41
od插件开发包plug1101\Bc55
├(1)BOOKMARK.MAK
├(3)CMDLINE.BPR

估计你需要BCB6来编译
 楼主| 冥界3大法王 发表于 2019-8-6 09:25
JuncoJet 发表于 2019-8-6 09:12
估计你需要BCB6来编译

打开后发现,F9 运行按钮是灰色的
求你说的那版本 下载地址
xinyuguy 发表于 2019-8-6 10:33
可以的    c++
程序 只要是 在 标准库 层面 是没有什么问题的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-6-1 11:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表