吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 4221|回复: 85

[原创逆向图文] 用160Crackme之51体验算法的完美逆向 - 学习逆向1周年纪念贴

  [复制链接]
wanao2008 发表于 2021-3-16 20:51 | 显示全部楼层 |阅读模式

本帖最后由 wanao2008 于 2021-3-16 21:06 编辑

今天使用的软件是160Crackme之51:DueList.6.zip

既然是纪念贴,就不设置权限了。如果感觉不错,请给个赞!

前期一直在学习软件的爆破,最近开始研究算法,本着先易后难的原则,我选择用160Crackme来练手。
当练习到第51个程序时,发现它的算法非常独特,感觉除了汇编,没有任何一款编程语言能将它的算法做的这么的简洁、高效。
软件主界面,这里我们输入假码:12345678。
01-软件界面.png
这时点击“Check”按钮,会弹出错误提示对话框,内容为“The activation code you entered is incorrect!”

有字符串的程序,一般我都选择搜索字符串,方法如下:
在OD的汇编窗口点鼠标右键/中文搜索引擎/智能搜索,就能找到错误提示字符串了,双击,来到代码处:
爆破点.png
找到关键跳,NOP填充,成功爆破!

今天不讲爆破,只讲算法,继续,

很明显,算法CALL就是:
0040122A  |.  E8 1CFEFFFF   call DueList_.0040104B
双击,进入CALL里,下断,跟踪,
首先来到判断输入的注册码必须为8个字符长度:
004011FE  |.  83F8 08       cmp eax,0x8
00401201  |.  74 24         je short DueList_.00401227

然后将输入注册码分为两部分,即前4位和后4位。
取它们的ASCII码如下:
前4位为:34333231
后4位为:38373635
这里补充说明一下吧:
      其实被转成的“34333231”和“38373635”被当做循环次数使用了。而我们最终要求的就是正确的循环次数。
      不理解就先往下看。

这时就来到了算法处,
这是前4位的算法:
02-前段算法.png

下面是后4位的算法:
03-后段算法.png

基本一样,只是使用的常量不同。

既然算法找到了,也知道怎么计算了,那就写逆向算法吧!
我试着用VB写了一下,感觉非常的繁琐,
因为汇编里的al,ax,eax非常的容易,到了VB编程语言里就得使用大量的函数才能做到,比如hex(),mid(),asc()等等,就不说了。

即然我们在学破解,那么为什么不做一次真正的逆向呢?
1、用汇编写算法
2、将程序倒过来执行,即原来最后执行的语句让它先执行,先执行的语句到最后
3、原来用常量1“0x36455544”通过算法得到常量2“0x4071885”,那么我们就用逆向算法由常量2得到常量1
4、关键字取反,记得刚吾爱汇编时的“74变75,84变85”吗?这次我们是“rol”变“ror”,“add”变“sub”,“dec”变“inc”

请看:
04-逆向算法与原算法对比.png
你品,你细品,你细细品。

是否品出些不同?

继续,先补全程序,做几个跳转,因为前期测试过,知道会有错误,就把跳转都补全了。
1、先将循环次数设为0,因为最终的答案就是循环次数
2、做一个找到正确值的跳转,并下断点
3、做一个找不到答案的跳转,并下断点
4、做一个结果不正确重新回到循环里继续运行的跳转。

前4位的算法做好了,那就开始计算吧,
05-运行后找到数值.png
虽然正常被断下,但意外还是发生了,
看最下,得到的字符根本没法输入,看来有问题啊!
幸好我们做了继续回到循环的跳转。
07-前段正确.png
再次被断下,这次的应该正确了,得到字符串“isd4”,

下面开始更换常量,做后4位的算法:
06-后段运行后找到数值.png
断下后,看到了字符串“ever”,看来是正确的,

将两个字符串连在一起“isd4ever”,验证一下:
08-验证正确.png
完全正确!!!!!

总结一下:
1、想要写这样的程序的方法,随便拖一个小程序到OD里,在OEP处写就行了。
2、要想反复执行一些代码,就做JMP跳转,跳到你想执行的地方。
3、做过逆向分析后你会发现,其实写汇编其实也不难。

本人嘴笨,不善言词,如果有没看懂的,欢迎回贴交流!




评分

参与人数 32HB +32 THX +12 收起 理由
花盗睡鼠 + 2 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
459121520 + 1
消逝的过去 + 2
yexing + 1
行行行行行行 + 1
temp + 1 + 1
后学真 + 1
纯英文 + 1
冷亦飞 + 1
l278785481 + 1
MoeRay + 1
三月十六 + 1
playboy + 2
ldljlzw + 1
我是好人 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
无极剑圣啊 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
bnjzzheng + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
无野讲 + 1
liugu0hai + 1
boot + 1
拿着雪糕 + 1 + 1
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
hetao8003200 + 1
成丰羽 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
1587665267 + 1
risingsun + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
king51999 + 1 [快捷评语]--评分=感恩!简单却充满爱!感谢您的作品!
aゞ烛火 + 1 [快捷评语]--积极评分,从我做起。感谢分享!
Elizer + 1 [快捷评语]--你将受到所有人的崇拜!
87682678 + 1 + 1 向你学习
zzzxc123 + 4 + 1 [快捷评语]--积极评分,从我做起。感谢分享!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
87682678 发表于 2021-4-12 17:12 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Elizer 发表于 2021-5-18 21:42 | 显示全部楼层

算法比爆破难多了,看着头大,向你学习。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
a83400489 发表于 2021-8-9 10:35 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
kisny 发表于 2021-12-25 18:53 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
king51999 发表于 2021-12-28 22:35 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
乌云 发表于 2021-12-29 00:52 | 显示全部楼层

好东西,感谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
PDWORD 发表于 2022-1-24 00:27 | 显示全部楼层


多谢楼主的分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
消逝的过去 发表于 2022-1-27 09:15 | 显示全部楼层

[快捷回复]-学破解防逆向,知进攻懂防守!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
拿着雪糕 发表于 2022-1-27 12:20 | 显示全部楼层

学习大佬经验
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表