黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图
您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 软件破解 >> 文章正文
[组图]破解利器Olldbg脚本教学(二)-ODbgScript的命令
      ★★★★★
破解利器Olldbg脚本教学(二)-ODbgScript的命令
文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-10-31

作者:hnhuqiong

总观ODbgScript洋洋洒洒那么多脚本命令,其实它分成了6大类:

1.变量和注释类和杂类 2.断点类 3.系统和操作类 4.流程控制类 5.计算和寄存器操作类 
6.字符串操作和搜索和替换类 

这里我就不那么具体的举例子了,因为那么多命令要是逐一图片讲解将成为天书了.
而具体的例子将在后面的章节来论述.这里将论述的是思想.授人以渔是上策!
文章不短,建议边听音乐边看(建议曲目:喜唰唰,披着羊皮的狼)

一. 变量和注释以及杂类

$RESULT             :这个是系统保留变量,函数和ODS的命令返回都放这里.它还有一个隐含的变量
                     为$RESULT_1,有的返回是2个参数,第二个放这里. 
$VERSION            :返回当前版本号
VAR                 :在脚本中,声明一个变量
AN                  :从指定处,对代码进行分析
CMT                 :在指定地址处,加入注释
MSG                 :将指定消息,显示到一个对话框中
MSGYN               :将指定消息,显示到一个对话框中,这个对话框有“是”、“否”按钮
ASK                 :显示一个提示输入框,让用户输入,并将结果保存转保留变量$RESULT中
                    (如果用户按了取消键,则$RESULT=0)
#INC                :脚本里面包含了另外的脚本

   这是一个小类,它们主要就是做变量和注释工作.其中唯一需要注意的是var命令,它是一个变量声明命令,如果要养成一个好的脚本编辑习惯,你最好将脚本的变量名字命令的通俗易懂,这样,不会到了时间久远而不至于你自己都看不懂你的脚本.
例子: 
var a  :这就不是一个好的变量名,其它人或者时间久了你都不知道它是干什么用的了.
好的例子--var  entrypoint


二.断点类

------普通断点类
BP              :在指定地址设断点
BC              :清除指定地址的断点
------条件断点类
BPCND           :在指定地址处,设置条件断点
BPL             :在指定地址处设置记录断点,将表达式的结果记录到记录窗口中
BPLCND          :在指定地址处设置记录断点,如果条件为真时,将表达式的结果记录到记录窗口中
------硬件断点类
BPHWS           :在指定地址,设置硬件断点
BPHWC           :删除指定地址处的硬件断点
BPHWCALL        :删除所以的硬件断点
------内存断点类
BPRM            :在指定地址处,设置一个内存读取断点
BPWM            :在指定地址处,设置一个内存读写断点
BPMC            :清除内存断点

    对于调试和逆向工作来说,断点是重中之重!只有掌握了断点基本技能,才能说你学会了逆向工作的入门.有过编程经验的人都知道在源代码下调试还是比较容易的,因为你可以在源代码上直接下断点调试.而逆向就
不同了,你面对的是二进制文件,如何找断点,怎么下断点都是靠常年累月积累下来的经验.当然在看雪你能学
到很多很多的下断点技巧.ODbgScript里面提供的断点基本囊括了OD强大的下断点的功能.而如何灵活的组
合和使用它们将让你的逆向水平有质的飞跃.
这一节可以和CCdebuger的OD断点文章相参照学习脚本的编辑和断点使用.

    ODbgScript断点命令是通过OD的API接口向OD下断点命令的,所以,只要你在OD中能下的断点,那么,在
脚本中就能一样下同样的断点.所不同的是一个是你手工下,一个是脚本帮你下!可以这样说,逆向和解密
是不断的靠近自己所需要的核心地带,只要真正的找到了核心地带,那么剩下的就是程序等待你的肢解和解
剖了.而这个过程就是如何利用断点来靠近它.而让人痛苦的是,常常你要经过无数次的实验和验证你才会
靠近你所需要的核心地带.没有ODbgScript以前,这个是一个让人痛苦不堪的过程,特别是如果程序有大量
的干扰和anti,你必须手工小心翼翼的越过这些障碍,爬山涉水千艰万险的来到程序某个地方,一不留神被
ANTI打倒,你必须重头再来,这个过程任何玩逆向的人都深有体会.特别是在没有OD以前,记得多年前我在2.8
版的SICE上,为记录很多东西不得不鬼画桃符的写的到处都是记录.而一旦"失手",那么很多过程是不得不再
做一遍.其中的艰辛不是能描述的.

      而有了ODbgScript你就不同了,anti也好干扰也好,它能让你过去的工作在瞬间帮你完成.你就能集
中力量寻找你的核心地带,而不会被已经分析过的各种干扰,anti所打倒!它就是我们对付ANTI和虫海战术的
利器!!!可以说一个软件或者一个壳无论你有多复杂,无论你多虫海,只要有一个人有真正进展!并公布工作
脚本,尽管是半成品那么其它人就可以利用脚本不断的站在前人的肩膀上,向你进攻!壳是相对静态的防守,
这就是加密和加壳软件的悲哀!你是anti是利用不为人知的后门,就有无数人想方设法靠近你的命门,那么
你的"专利"就大白天下了.你是多么复杂的算法,多么变态的VM,那么只要每天有人在算法上进步一点点,
点点滴滴的积累将会铁棒磨成针,不要小看逆向界人的耐心!!!!

    由于后门和有效ANTI越来越少,加密和加壳开始向虫海方向发展,也就是利用反复的加密算法和动态解码
,以及VM(虚拟机)来产生大量的垃圾代码,反复和你斗你的耐心,从个人角度来说,的确逆向界开始遇到了一
堵厚实的墙.但大家要相信一句话,自古有矛就有盾!!!.我还相信一句就是众志成城!!!
这也是我想发展ODbgScript的初衷和下力气写这篇文章的动力.
罗嗦了半天,我自己都感觉我像缠脚的老太婆了.
其实我们用ODbgScript的一个主要目的就是-----直奔主题!  
好了,我现在也回来直奔主题.我说到哪里里了??(各种砖头都来了)

    这里,我们来演示一下断点的设置,看看在ODbgScript中下一个断点,那么OLLYDBG中有什么反应???
    
我们调出你的编辑器,先写一个简单的脚本如下,然后保存成txt或者osc文件:
bp 40a910
bc 40a910

然后调出脚本运行窗口,引导你刚才写的脚本进来,按下S键,我们看看ODbgScript和OD中的断点窗口各有什么反应.

(插入图一:2-bp.jpg)

脚本窗口里面一按S,马上OD的断点窗口就产生了一个断点.再按一下S,OD中的断点窗口中的断点又消失了.
哈哈,我再按,我再按.哟,怎么没有反应了?当然就2句命令,你按那么多抽风呀???
(被一顿暴打,教学就教学,哪来那么多怪话)

    那么,现在我们知道了,ODbgScript和OD之间通过 Plug-in API接口能很好的沟通.最起码比OD断点窗口里面你要手工设断点激活或者删除强多了吧?要知道偷懒的人多了去了(被无数人怒目而视,寒~~~~),能省下时间干什么去??直奔主题!!!!每次开会看见我们单位的头我都在假想,他会逆向多好呀....

    OD中断点主要分为4小类,普通断点,内存断点,硬件断点,条件断点.我不打算讲解断点的原理,有兴趣大家
可以看看雪大量的文章,大侠级别的,断点玩的都不叫断点叫INT,这个是什么?我不知道,我是菜鸟级别,不敢往
这个上面发言....
那么,这四小类断点和其它命令的的组合将带你进入五光十色的逆向世界!!!

[1] [2] [3] 下一页  

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886