吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7682|回复: 5
收起左侧

[转贴] Ollydbg 2.01 alpha 4 不支持舊版插件的原因

[复制链接]
newbing 发表于 2011-8-10 09:04
簡略的閱讀了插件頭文件plugin和插件例子Bookmark之後,不支持舊版插件的原因如下:
一.OllyDbg 2.01版僅支持UNICODE編譯的插件.
以vc++ 6.0為例,在工程-設置-C/C++窗口預處理程序定義中刪除_MBCS,並且添加上UNICODE和_UNICODE,否則編譯過程中會出現如下錯誤:
"This version must be compiled with UNICODE on"
二.Plugin輸出接口的改變.
開發過OD插件的朋友都知道,在OD舊版插件中我們必須導出一下幾個函數:

extc int  _export cdecl ODBG_Plugindata(char shortname[32]);
extc int  _export cdecl ODBG_Plugininit(int ollydbgversion,HWND hw,
                        ulong *features);
extc void _export cdecl ODBG_Pluginmainloop(DEBUG_EVENT *debugevent);
在Ollydbg 2.01版不支持舊版的最大原因就是接口的改變,這些以ODBG_為前綴的關鍵函數改變為ODBG2_:

pentry (int)     ODBG2_Pluginquery(int ollydbgversion,
                   wchar_t pluginname[SHORTNAME],
                   wchar_t pluginversion[SHORTNAME]);
pentry (void)    ODBG2_Pluginanalyse(t_module *pmod);
#ifdef DEBUG_EVENT                     // Requires <winnt.h>
pentry (void)    ODBG2_Pluginmainloop(DEBUG_EVENT *debugevent);
#endif
初始化函數從原來的ODBG_Plugininit改變為ODBG2_Pluginquery,反彙編查看舊版插件你就會發現這些函數名的字節大都在一起的,如果想直接修改函數名來達到新版比較麻煩,比如新版Script插件的函數名如下:

.rdata:10033213 a_odbg_pausedex db '_ODBG_Pausedex',0   ; DATA XREF: .rdata:off_1003319Co
.rdata:10033222 a_odbg_pluginac db '_ODBG_Pluginaction',0 ; DATA XREF: .rdata:off_1003319Co
.rdata:10033235 a_odbg_plugincl db '_ODBG_Pluginclose',0 ; DATA XREF: .rdata:off_1003319Co
.rdata:10033247 a_odbg_plugincm db '_ODBG_Plugincmd',0  ; DATA XREF: .rdata:off_1003319Co
.rdata:10033257 a_odbg_pluginda db '_ODBG_Plugindata',0 ; DATA XREF: .rdata:off_1003319Co
.rdata:10033268 a_odbg_pluginde db '_ODBG_Plugindestroy',0 ; DATA XREF: .rdata:off_1003319Co
.rdata:1003327C a_odbg_pluginin db '_ODBG_Plugininit',0 ; DATA XREF: .rdata:off_1003319Co
.rdata:1003328D a_odbg_pluginma db '_ODBG_Pluginmainloop',0
.rdata:1003328D                                         ; DATA XREF: .rdata:off_1003319Co
.rdata:100332A2 a_odbg_pluginme db '_ODBG_Pluginmenu',0 ; DATA XREF: .rdata:off_1003319Co
.rdata:100332B3 a_odbg_pluginre db '_ODBG_Pluginreset',0 ; DATA XREF: .rdata:off_1003319Co
.rdata:100332C5 a_odbg_pluginsh db '_ODBG_Pluginshortcut',0
直接修改前綴_ODBG到_ODBG2字節數增加,原本空間不夠,不過還是還是有修改的辦法,修改輸出函數名得偏移量,增大空間使得夠字節修改這些函數名.
這兩個原因是新版OD不支持舊版插件的主要原因,當然還有其他,比如插件版本號升級到"2.00.00" 等等,這個還需要你進行發掘.

原帖地址:http://0mblogger.blogspot.com/2011/08/ollydbg-201-alpha-4_09.html

免费评分

参与人数 1热心值 +1 收起 理由
Hmily + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

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

xylguagua 发表于 2011-8-10 09:49
顶一个、最新的OD.如果是我就下
panti 发表于 2011-9-6 14:24
milian520 发表于 2011-9-6 16:53
sausasasa 发表于 2011-9-19 11:16
楼主辛苦。。。这个要支持。。。
lanble 发表于 2012-3-18 09:52
楼主辛苦。。。这个要支持。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-15 12:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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