调试好帮手ODbgScript 入门系列(一)-认识ODbgScript

作者:hnhuqiong

    看到CCDebuger的图文并茂的OD教学系列很受欢迎,这里我也仿照它的教学模式写吧,这样容易让新手
学习,CCDebuger不会让律师给我发版权函吧 :),我感觉看雪如果形成了自己的教学风格也是不错的.

一、ODbgScript 的介绍
   调试程序,程序逆向工作,加密解密都存在大量的重复工作,ODbgScript就是一个让你从重复而又枯燥的
劳动中解脱的一个工具.OllyScript是OLLYDBG的一个功能增强插件(Plugin),OllyScript使用的脚本语言
是一个种类汇编的语言。你使用它来控制OLLYDBG和进行脚本运算.
   它的内部机制是一种解释执行的方式,当然,大侠luocong开发了一个和这个功能相近的插件OM,所不同的
是OM是运行在虚拟机上的,而ODbgScript是解释执行.现在ODbgScript在世界上有大量的使用者和他们发布
了大量的脚本,你能好好的利用它.
   ODBGScript的前身是由SHaG开发的OLLYScript,感谢SHaG开发了这么好的插件,并且开放了它的源码,
SHaG于2004年停止了它的开发,直到今天,还有众多的爱好者在使用它.从2005-11-4开始由Epsylon3继承
SHaG继续开发并变更插件名就是你现在看到的ODbgScript,并且继续开发源码发行.它现在的最后版本是1.47
由于Epsylon3开发的版本最大的变化是出现了调试运行窗口.
   hnhuqiong在ODbgScript开放源码的基础上对其进行了本地化,并且优化(BugFix).如果经原作者同意,
愿意将此插件继续升级.

天工开物,必物尽其用....
   


二、ODbgScript 的安装

ODbgScript 1.48 版的发布版本是个 RAR 压缩包,要解压到OD的plugin目录下,运行OD就可以在插件栏看见
ODbgScript插件了.点击脚本运行窗口就可以看见新弹出一个脚本运行窗口
( 老的OLLYscript0.92版本没有运行调试窗口.)

(插入图片ODbgscript-windows.jpg,图片一)

  ODbgScript中插件窗口的功能如上图。
简单解释一下各个选项的功能,更详细的内容可以看readme.txt中文帮助:

运行脚本:直接调入脚本运行,网络上有大量的各种脱壳和解密脚本文件,你可以在这里直接引入运行。

中止:中止脚本运行。

暂停:暂停脚本的运行。

继续:脚本处于暂停状态下,可以恢复脚本继续运行

单步:单步执行脚本每一句。

脚本运行窗口:这个是新版ODbgScript增加最为有用的一个功能,可以查看脚本的运行状态,观察脚本变量的结果,以及
            控制脚本的运行.上面图片中,就是ODbgScript的脚本运行窗口的模样.

脚本日志窗口:这个模块还不完善,在以后将逐渐完善它.

关于:这里显示的DbgScript的版权信息.


二、 ODbgScript的脚本调试窗口
   (1)脚本调试窗口的介绍:
行号栏:引入脚本后,ODbgScript将脚本复制入这个窗口,并为每一句脚本语言赋予一个行号

命令栏:就是脚本命令显示在这里

返回值栏:就是函数返回值$Result显示在这里,$Result是ODbgScript的一个保留变量名,它一般保存各脚本命令的返回结果.

EIP栏:就是脚本命令现在位置,所控制的OD的EIP值,这里是观察脚本控制OD流程的地方.

计算结果栏:ODbgScript可以让用户使用变量,这里就是显示变量的计算结果


 (2)ODbgScript的右键菜单功能
 
 好了现在我们在ODbgScript运行窗口点击右键,将弹出一个菜单.如图
 
(插入图片ODbgScript run.jpg,图片二)

运行脚本:和插件菜单功能相同,直接调入脚本运行,网络上有大量的各种脱壳和解密脚本文件,你可以在这里直接引入运行。

脚本断点切换(F2):对光标处脚本的命令下一个断点标记,重复一次就是取消断点标记.这个功能的快捷键是F2

光标处下断点并执行(F4):对光标处脚本的命令下一个断点标记,并让脚本运行到这里.这个功能的快捷键是F4.

单步执行(S):单步执行脚本的语句.这个功能的快捷键是S键

继续(SPC空格键):如果脚本处于暂停状态,切换脚本到继续运行状态,这个功能快捷键是  空格键(SPC)

放弃(ESC):放弃脚本运行状态,也就是让脚本复位,重新处于第一行的位置.


编辑变量:ODbgScript有一个功能很好用,就是变量的使用.这里是查看变量和编辑变量的地方.
        如果进入变量,可以看见2个值,一个是0x表示的是16进制值,一个是.表示的是十进制值

手工执行脚本命令:有时候调试脚本的时候,需要手工运行脚本命令,那么这里就是为你提供这个功能的地方.

其它介绍:如果引入了脚本,你会看见一个横条,这个是标号分界条,它利用脚本标号对脚本分界.
        让你的脚本可读性大大加强,建议今后的脚本可以多使用标号.
        
光标条:脚本运行到的脚本命令位置会有一个光标条,当然它的颜色可以根据你的要求来调整. 

好了,从基本上ODbgScript介绍完了,我们来看看它在OD中和其它窗口联合的工作状态.  

(插入图片  OD.JPG,图片三)
  

和ODbgScript配套使用的程序有loveBoom开发的Ollyscript editor 1.0b3.
它是一个ODbgScript语言编辑器.


好了,首篇先到这里,下一篇将介绍ODbgScript的语言和命令.

--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!