吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 20771|回复: 59
收起左侧

[其他原创] OD ESP定律插件(OdEsp)的编写

    [复制链接]
zapline 发表于 2010-2-19 12:44
本帖最后由 zapline 于 2010-2-19 12:46 编辑

功能:自动快捷的对ESP所指地址,下四字节的硬件访问断点,运行程序,断下后删除该硬件断点。支持快捷键。

对于写OD插件,一般来说,我们还需要:plugin sdk ,OllyDbg Plugin API v1.10
这里,提供plugin sdk for VC以及OllyDbg Plugin API手册中英文版本:
plugin sdk vc.rar (34.61 KB, 下载次数: 87) API手册.rar (310.4 KB, 下载次数: 147)

新建一个dll:
0.jpg

将Plugin.h和Ollydbg.lib添加到工程目录
加上 /J 设置(工程--设置):
1.jpg

包含库文件:
2.jpg

两个OD插件必须的回调函数:
 
extc int _export cdecl ODBG_Plugindata(char *shortname)
{
strcpy(shortname,"OdEsp");
return PLUGIN_VERSION;
}
extc int _export cdecl ODBG_Plugininit(int ollydbgversion,HWND hw,ulong *features)
{
mHWND = hw;
return 0;
}


添加菜单和菜单消息响应的代码:
 
extc int _export cdecl ODBG_Pluginmenu(int origin,char data[4096],void *item)
{
if (origin == PM_MAIN)
{
  strcpy(data,"0 &ESP Once\tAlt+num9|1 &About");
  return 1;
}
return 0;
}
extc void _export cdecl ODBG_Pluginaction(int origin,int action,void *item)
{
if (origin == PM_MAIN)
{
  switch (action)
  {
  case 0:
   EspOnce();
   break;
  case 1:
   MessageBox(mHWND,"Author: zapline[DFJG]","About",MB_OK);
   break;
  }
}
}


ESP定律功能实现的代码:
 
void EspOnce()
{
t_thread* pcputhread = Findthread(Getcputhreadid());
EspAddr = pcputhread->reg.r[4];
Sethardwarebreakpoint(EspAddr, 4, HB_ACCESS);
Go(0,0,STEP_RUN,0,0);
}
extc void _export cdecl ODBG_Pluginmainloop(DEBUG_EVENT *debugevent)
{
t_status status = Getstatus();
if (status == STAT_EVENT || status == STAT_STOPPED)
{
  Deletehardwarebreakbyaddr(EspAddr);
}
}


实现快捷键功能的代码:
 
extc int _export cdecl ODBG_Pluginshortcut(int origin,int ctrl,int alt,int shift,int key,void *item) 
{
if (ctrl==0 && alt==1 && shift==0 && key==VK_NUMPAD9)
{
  EspOnce();
  return 1;
}
return 0;                          
}

注:strongOD太霸道了,找不到没被使用的快捷键。可以自行修改

下面是生成的插件dll和插件源码:
OdEsp dll.rar (13.93 KB, 下载次数: 220) OdEsp.rar (44.98 KB, 下载次数: 181)

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

kougui 发表于 2010-2-19 14:50
呵呵。确实方便了很多啊……
wuhanqi 发表于 2010-2-19 12:52
哈,就昨天我还嫌每次都hr esp麻烦,就是没人写插件,可惜哦,不会编程...
Allife 发表于 2010-2-19 15:42
wqccj 发表于 2010-2-20 00:16
谢谢楼主,分享..............
glgh 发表于 2010-3-22 11:08
谢谢分享。
liusheng 发表于 2010-5-7 04:57
[s:47]不懂,但也支持下
chenyyui 发表于 2010-5-7 20:29
呵呵不错的创意省去不少麻烦
hzzs 发表于 2010-5-31 11:11
谢谢楼主分享
force8008 发表于 2010-6-2 06:57
谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-15 17:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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