玩玩破解番外篇1—快速分析汇编代码
(编辑:jimmy 日期: 2024/11/15 浏览:3 次 )
新人朋友们好:
当你学会了通过下断点找关键代码位置以后,你最需要的是什么?
学会分析代码。
但是很多新人朋友对汇编代码不熟悉,看到这么多代码,头就大了。
于是,只是习惯于找大跳转,然后进行不断的修改测试,蒙对了就完成了破解。
对于程序如何验证的?你还是不清楚。
所以,你很难继续提升自我。
为了便于新人朋友进行代码分析,我做了一个“汇编代码自动翻译小助手”,分享给大家使用。
在介绍工具之前,我先简单谈谈分析汇编代码的思路和步骤。
一、掐头去尾
比如我们现在进入一个关键CALL里面,看下面的代码:
前后两个红色方框内的就是一个子程序通常的头和尾,没有分析的价值,可以忽略掉。
二、重点关注什么
1、关注CALL。
在汇编代码中,CALL就是调用一个函数(子程序),你可以理解为每一个call后面的地址就是一个房间的门牌号,
(1)如果你F7跟进房间里,你会看到有很多其他的代码,这些代码共同实现某个功能。
(2)CALL语句的上面如果有push命令,往往就是这个CALL的参数,可以通过CALL语句下面的add esp, ?来判断参数的个数,比如add esp ,0x4就是有一个参数。
(3)CALL内部的第一个局部变量由[esp-4]或[local.1 ]表示,第二个由[esp-8]或[local.2 ]表示。
2.png
2、关注跳转。
跳转分为无条件跳转和有条件跳转。无条件跳转就是一个jmp,有条件跳转有很多不同的指令。
因为程序都是通过跳转指令来实现选择不同的执行流程(正确的或是错误的),所以修改关键的有条件跳转指令是爆破一个软件的基本原理。
因此,我们分析代码要特别关注能够跳到较远的有条件跳转语句,我们称为“大跳转”。
窍门是看到跳转后有“short”就是小跳,没有的就是大跳。
3.png
3、重点关注参数是用户名和假码的CALL。
(1)push 用户名 然后 call 地址 。这样的call一般是取真注册码的CALL(算法CALL)。
(2)push 假码 push 可疑字符串 然后CALL 地址。这样的CALL一般是验证CALL(关键CALL),下面大的跳转大概率是关键跳。
(3)push 假码 或者 mov eax,假码 ,然后CALL地址,你可以进CALL以后,直接在段首把代码改为mov eax,1 ,retn ?。
总结一下:
所谓逆向中分析代码,就是在关键代码段中找到算法CALL、验证CALL、关键跳。
所以分析代码的重点是CALL和有条件大跳。
下面简要介绍这个“汇编代码自动翻译小助手”,你可以试试看?
首先声明一下:
1、我只是利用业余时间写的,只做了简单测试,如果有BUG纯属正常,请见谅。
2、本助手的好处是新人们可以对照汇编代码看中文翻译,时间长了,你就可以不用这个工具直接看汇编代码了,这才是目标。
软件截图:
1、原始汇编代码
5.png
2、自动翻译后的代码:
6.png
7.png
如果您觉得对您有用,请对我继续鼓励和支持,我会继续努力!
玩玩破解,写给新人看(第一集)
玩玩破解,写给新人看(第二集)
玩玩破解,写给新人看(第三集)
玩玩破解,写给新人看(第四集)
玩玩破解,写个新人看(第五集)
玩玩破解,写给新人看(第六集)
玩玩破解,写给新人看(第七集)
玩玩破解,写给新人看(第八集)
玩玩破解,写给新人看(第九集)
玩玩破解,写给新人看(第十集)
玩玩破解,写给新人看(第十一集)
玩玩破解,写给新人看(第十二集)
玩玩破解,写给新人看(阶段练习1)
玩玩破解,写给新人看(第十三集)
玩玩破解,写给新人看(第十四集)
玩玩破解,写给新人看(第十五集)
玩玩破解,写给新人看(第十六集)
玩玩破解,写给新人看(第十七集)
玩玩破解,写给新人看(第十八集)
玩玩破解,写给新人看(第十九集)
玩玩破解,写给新人看(第二十集)
玩玩破解,写给新人看(第二十一集)
玩玩破解,写给新人看(第二十二集)
玩玩破解,写给新人看(第二十三集)
玩玩破解,写给新人看(第二十四集)
闲谈如何破解软件?
玩玩破解——小白实战1,你也行!
玩玩破解——小白实战2,巧搜字符串
玩玩破解——小白实战3,易语言字符串比较通杀
玩玩破解——小白实战4,冰火两重天
对新人们学习《玩玩破解》系列教程的集中解答
玩玩破解—加点油,再前行!
玩玩破解—小白实战5,易语言变脸
玩玩破解——小白实战6,再上一层楼,做个注册机
新年送“心”礼,易语言逆向分析助手6.0
重新认识Delphi程序按钮事件特征码
玩玩破解番外篇1—快速分析汇编代码
玩玩破解之逆向工具篇
下一篇:更新 解决WPS激活密钥失效分析2