作者: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,这个是什么?我不知道,我是菜鸟级别,不敢往
这个上面发言....
那么,这四小类断点和其它命令的的组合将带你进入五光十色的逆向世界!!!
| 另类破解鸽子连接密码 | 03-21 | |
| 教菜鸟写注册机 | 12-27 | |
| QQ聊天记录察看器 5.2算法分析 | 12-04 | |
| 如何汉化一个软件 | 12-02 | |
| 扭曲变换加密 【目前防止软件被破 | 11-02 | |
| 破解利器Olldbg脚本教学(二)- | 10-31 | |
| 破解利器Olldbg脚本教学(一)- | 10-30 | |
| 破解|利器|ollydbg|教学|Run tra | 10-28 | |
| 破解WebEasyMail v3.6.2.1 企业版 | 10-24 | |
| 破解利器OllyDBG入门系列(五)- | 10-18 | |
| 破解利器OllyDBG入门系列(四)- | 10-17 | |
| 揭开高级游戏黑客的面纱,轻松打 | 10-17 | |