【S01E09】Shark恒 零基础破解教程之图文!【CALL是什么】
今天讲的内容主要是汇编语言CALL,为了方便没有汇编语言基础的朋友容易理解,所以我做了些图。有人说,CALL有什么用? 那我简单的讲一下他的重要性。
我们只拿逆向举例吧,其实CALL的作用非常强大,不仅仅是我下面举的一个例子那么单一。
我们在逆向的时候经常听到要找关键CALL,那CALL是什么东西,他是干什么的?
就让我们进入课程吧。
下图是我随便找的一张OD反汇编图,我们只拿这4行代码做讲解。
上图的4行代码,为了没有汇编基础的朋友容易理解,我们变更为下图。
左边4行代码分别对应右边4行代码。
第一行的意思理解为喝咖啡
第二行的意思理解为吃西瓜
第三行的意思是打电话,也就是CALL
第四行的意思是吃橘子
你就是计算机,现在给你的命令就是第一个,喝咖啡。
那么你就要执行第一行代码,喝咖啡,下图箭头方向。
咖啡喝完以后,让你吃西瓜,还是看下图箭头方向。
吃完西瓜,我们可以看到,箭头指向了电话,也就是CALL。看下图。
现在让你打电话,打给谁?CALL的后面已经给你写出电话号码了。看下图。
对应第一张图的OD反汇编代码截图,CALL后面的地址是“00453D28”
然后我们拨打电话,来到地址是“00453D28”处。
这时候要执行的命令是电话那边的事。
电话那边也许是一大堆的数学运算,然后把结果告诉你。
请看下图
你得到结果后,才能继续向下运行。
得到什么结果? 比如我们第二课的注册码,就是关键CALL执行完毕后计算出来的结果。
所以你第二课需要找关键CALL,得到结果后,在判断注册码是否正确之前截获它,也就是获取注册码!
当然,如果程序正在判断的时候你干扰它,那就是爆破!
我们今天讲的内容,也就是跟进CALL里面,看看他是怎么运算的,就可以写出注册机,这就是算法!
OK,看下图,我们得到结果以后继续向下运行。吃橘子。
也许这个吃橘子,就是判断注册码是否正确的那一步,在这里简化成吃橘子这是为了方便理解。
那现在我相信大家通过这一课知道了CALL到底是个什么玩意,他是干什么的也明白了。
如果要写注册机,知道这个软件运算注册码的算法,就要找到这个CALL,进去看看他是怎么运算的。
你就可以写出与那个软件相对应的注册机了。
当然,上面用到的OD反汇编代码并不是关键CALL,只是随便拿4行代码举个例子而已。
怎么样? 汇编语言还是如此头疼的产物吗?
这两课的汇编语言都是逆向非常重要的两条命令,大家有空闲时间的时候,还要多熟悉这两条命令。
另外的那一条命令是第六课内容。
Shark恒图文逆向教程——视频语音版(第一季全)
https://www.52hb.com/thread-2954-1-1.html
(出处: 吾爱汇编论坛)
恒大的帖子 我都要顶
必须顶{:5_190:}
恒大的帖子 我都要顶{:5_117:}
默默学习,谢谢楼主
JMP 与CALL,又学习一个新技能,哈哈,感谢恒大
用心做的。比喻的太好了。容易理解。顶了。
懂了
本帖最后由 hktkzyz 于 2015-2-27 08:55 编辑
如果有一个例子实打实的算一下就更好了,哈哈,谢谢恒大,坚持学习。
额,,,看到第十课知道了,原来注册机还要补充很多知识才行,踏踏实实,一步一行。