首页
社区
课程
招聘
翻译:给OllyDbg写一个VB插件[TT]
发表于: 2005-2-7 02:45 8947

翻译:给OllyDbg写一个VB插件[TT]

2005-2-7 02:45
8947
给OllyDbg写一个VB插件[TT]   
  
    有些人问为什么,我将感到烦恼(译者注:为什么宁愿使用VB而非其它语言)...但是,VB真正地使接口制作变得轻而易举,超快调试,因此我已写的所有代码基础都是用它。
    因此,本文重点叙述为OllyDbg(后面简称OD)制作VB插件的一个方法。该技术同样适用用IDA插件 [(例子1)]。
  OD是用C语言写成,因此其插件API使用了cdel调用习惯。为了能将其与VB结合,我们需要使用stdall函数并使VB运行时(runtime)恰当地被加载和初始化。
    完成这两件事情的最容易的快速方法是:用Cpp为OD创建一个小的stub DLL插件来加载。该stub将处理插件初始化、添加菜单项到OD和当运行插件时启动VB代码。
    该插件stub用一套stdcall函数也响应于提供给VB app,因此它可以访问OD的cdel插件API。
    当正好运行插件时,我们的Cpp代码创建了VB COM服务器的一个实例并在其主要接口上调用了一个方法。该加载和初始化VB运行时,并传送其执行到我们的VB代码。
    通过VB声明函数机制,VB代码从Cpp的dll依次使用stdcall输出。一个基本的模块图如下:

   该例插件将从OD提取所有用户输入的注释。感谢Joe Stewart和他的LabelMaster插件,该插件展示了怎样使用OD插件API取出注释的范例。
    要安装插件,仅需拷贝这两个dll到你的OD插件目录。确保用regsvr32注册VB dll(VbOllyPlugin.dll),因为它是一个COM服务器。这两个DLL必须在同一个目录下以使VB DLL能从stub加载输出。
    我想,下一步就是在OD中结合和使用,使Cpp stub能计数、动态加载和初始化多个VB插件。这里,Cpp OD插件将依次支持其自己的插件框架,该框架围绕VB模块设计以结合到OD中。
   无论如何,我只想怎样结合一个VB UI作为一个OD 插件,因此,下面给出了一个例子:P [例子2]

-dzzie
    -旁注1,这并不仅限于在两个DLL之间运作,你也可以从你的VC EXE输出函数[例子3],并使用相同的技巧
    -旁注2,相同的基本技术也可以用于创建.NET插件。下面是用于IDA的C#插件[例子4]。我曾试图为OD做同样的事情,但很快地,创建的对象总是报错,mscoree试图加载两次。一定是在某个时刻,OD所确定的某些东东与它做了更多的事情:)。
   

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 3686
活跃值: (1036)
能力值: (RANK:760 )
在线值:
发帖
回帖
粉丝
2
支持
2005-2-7 02:46
0
雪    币: 93908
活跃值: (200199)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习加支持
2005-2-7 02:49
0
雪    币: 257
活跃值: (369)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
4
呵呵,我还没有写完,兄弟就来支持了。
stub不知道该怎样翻译好,暂时保留,翻译不妥的地方请大家指教!

另外,这里有几个例子,我也是从网上下载下来的,想打包放上去,但担心我的杀毒软件质量不过关 (虽然查过了),怕给大家染毒或有木马。想征得老大同意后再放上去,先杀毒检测后再给大家放心使用。呵呵,先等哦。
2005-2-7 02:55
0
游客
登录 | 注册 方可回帖
返回
//