请选择 进入手机版 | 继续访问电脑版

C++编程

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1858|回复: 2

od1.1插件的编写

[复制链接]

4

主题

9

帖子

65

积分

码农

Rank: 2

积分
65
发表于 2015-11-17 22:16:26 | 显示全部楼层 |阅读模式
本帖最后由 白菜大哥 于 2015-11-17 22:18 编辑

相信大家都用过od的各种插件,本文讲解一下od插件的编写原理。
首先,od插件一般是以dll形式存在的,只要导出了od规定的那几个回调函数,把我们的dll放倒od的plugin目录下即可自动加载。同时od也提供给我们很多函数可以用来操作od。下面具体讲解编写步骤,最后会附上一份代码(虽然是半成品。但是已经可以正常运行);
1、导入Plugin.h和OLLYDBG.LIB 这是写od插件所必须的。
2、编写一个dllmain函数。为了简单起见。我直接写的简略一些。
BOOL WINAPI DllMain(
  HANDLE hinstDLL,
  DWORD dwReason,
  LPVOID lpvReserved
  ){
  return TRUE;
}
3、导出以下几个回调函数
int __declspec(dllexport) cdecl ODBG_Plugindata(char shortnam[32])        //用来提供我们的插件名(必选,甚至不需要改动代码)
int __declspec(dllexport) cdecl ODBG_Plugininit(int version,HWND hw,ulong *features)   //让od可以加载我们的插件(必须,甚至不需要改动代码)
int __declspec(dllexport) cdecl ODBG_Pluginmenu(int i,char data[4096],void *item)     //让我们的插件以相应的名字在特定的窗口显示出来。i代表各个窗口,具体取值可以看文档
void __declspec(dllexport) cdecl ODBG_Pluginaction(int origin,int action,void *item)    //当我们使用自己的插件时做的操作,这里编写的代码相当于一个消息响应函数,但是仅仅支持一个单击消息

完成了以上这三步,一个od插件便可以正常运行了。但是我们什么功能都没有实现。附件的代码里面包含了一个简单的od插件和所需的文档(中英文),大家编译成功以后对照着文档查询即可。我的主要响应函数是一个WriteToText,就是简单的把od里面选中的一句汇编代码显示出来放倒od目录下的一个txt文件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

31

帖子

323

积分

版主

Rank: 7Rank: 7Rank: 7

积分
323
QQ
发表于 2015-11-18 11:32:57 | 显示全部楼层
录一下视频,讲讲你写的插件实际应用,会更好
VC纵横、磐实编程网

4

主题

9

帖子

65

积分

码农

Rank: 2

积分
65
 楼主| 发表于 2015-11-18 13:20:48 | 显示全部楼层
有没有什么好用的视频软件。最好是可以录制成swf格式的。屏幕录像专家录的太大
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|C++编程  

GMT+8, 2019-12-10 06:00 , Processed in 0.109375 second(s), 38 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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