吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5289|回复: 12
收起左侧

[原创] 发一篇算法不难的CM的分析

[复制链接]
zbnysjwsnd8 发表于 2017-7-18 22:50
本帖最后由 zbnysjwsnd8 于 2017-7-19 19:23 编辑

唔。。。我也是第一次写分析文章 写的不是很好 如果有哪里错了还请大牛们指出来。
直接开始。
程序截图:

图片1.png 图片2.png

寻找按钮事件的起始地址:
从上图可以知道 注册失败的话会弹出一个MessageBox.
不妨OD中给user32!MessageBoxA下断点 然后F9运行,输入假码试试能不能断下。
图片3.png

断下来了。然后F8单步 返回到程序领空

图片4.png

继续F8 返回到按钮事件。来到这里。

图片5.png

然后向上翻 找到函数头。

图片6.png

所以004010A1处就是按钮事件的起始地址

0x1 正式分析

004010A1处下断,删掉MessageBoxA的断点 重新载入程序 F9运行。随便输入一串假码然后点击【注册】 会在004010A1处断下。

图片7.png

可以看到下面有一个call F8直接过去吧(易语言的实在没法看)过去以后 eax寄存器有变化了。

图片8.png

感觉有点眼熟。。。

图片9.png

对比一下 应该是一样的。所以这段代码的功能是获取机器码。来到这里。

图片10.png

这里把eax压入堆栈了 观察一下堆栈。

图片11.png

可以看到两个值其中 0019F38C 的值是eax的值(不用我说也知道为什么吧)然后F8步过这个call.过去以后,浮点寄存器有变化了

图片12.png

178001005352对比一下 发现这个是178001005352的小数形式(精度很高)
因此这段代码是将机器码转换成了双精度小数(从文本转换成双精度小数)
继续往下。
图片13.png

来到这里。可以发现 这个call的地址和之前将机器码转换成双精度小数的call地址是一样的。
F8步过 看看寄存器的变化。

图片14.png

其中424520xA5D4的十进制形式 所以这段代码就是将0xA5D4转换成双精度小数的形式。
继续单步 来到这里:

图片15.png

从图中可知SS:[EBP - 0XC]处的值是178001005352.0000(机器码的双精度小数形式)
继续往下

图片16.png

从图中可知SS:[EBP - 0X14]处的值是42450.0000(0xA5D4的双精度小数形式)然后FMUL就是将这两个数据相乘 然后结果保存到ST(0)中。

图片17.png

这个就是结果(记为a1)

图片18.png

这个00401129的指令则是将ST(0)中的寄存器弹出到SS:[EBP - 0x1C]
有了之前的经验这段代码的意思应该很明显了:

图片19.png

0x7EC6转换成双精度小数的形式;

图片20.png


这个则是将2转换成双精度小数的形式:

图片21.png

图片22.png

然后来到这里:

图片23.png

功能我已经写出来了 继续往下。

图片24.png

执行完这个call 观察一下寄存器

图片25.png

可以得知:这段代码是将a3转换成文本

图片26.png

转换成文本后的a3的地址(00812DD8)保存到LOCAL.16

图片27.png

执行完这个call 观察一下寄存器:

图片28.png

其中123”是我们输入的注册码 也就是说这段代码的意思是获取注册码

图片29.png

注册码的地址(0081DC70)保存到LOCAL.17接下来就是比较注册码:

图片30.png

这里这个JE实现了 如果实现的话就会提示失败 然后程序退出。

图片31.png

点击确定以后 程序退出。重新载入 F9运行 输入之前获取的注册码,点击【注册】 看看效果

图片32.png

因此 这个注册码就是正确的注册码(相对于这个机器码而言)

0x2 注册机

现在总结一下这个CM的算法:

设注册码为a,机器码为b(均为文本型)
则a =  到文本 (到数值 (b) × 42452 + 32454 ÷ 2)



有了这个算法 写出注册机就不难了。

图片33.png


附:注册机源代码
keygen.zip (1.19 KB, 下载次数: 0)



免费评分

参与人数 4吾爱币 +13 热心值 +4 收起 理由
Hmily + 8 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
KaQqi + 3 + 1 满天星斗
a952779523 + 1 + 1 用心讨论,共获提升!
流年回忆 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

KaQqi 发表于 2017-7-19 08:46
楼主就是传说中的满天星斗?这么晚了还在发帖?
膜拜楼主已久呀!
这个算法的难点就在于浮点操作那部分吧。
另外0x7ec6除以2(即32454÷2)楼主为什么不算出来呢,它就是一个常量诶。。
最后问下楼主起床了没。。。
 楼主| zbnysjwsnd8 发表于 2017-7-19 16:55
cqr2287 发表于 2017-7-19 08:46
楼主就是传说中的满天星斗?这么晚了还在发帖?
膜拜楼主已久呀!
这个算法的难点就在于浮点操作那部分吧 ...

{:1_902:}忘计算了
刚刚放学
bysysnet 发表于 2017-7-19 08:01
dazong 发表于 2017-7-19 09:32
厉害了 , 你乃大神也!
野良神 发表于 2017-7-19 23:34
佩服  你有偿带我呗?》
SnowRen 发表于 2017-7-20 00:11
分析的不错,学习了
Brantfang 发表于 2017-7-20 14:51
可以的,分析完美
lwqlwql 发表于 2017-7-21 14:02

可以的,分析完
涟漪前世泪 发表于 2017-7-21 14:15
收藏收藏,楼主很厉害,我要学习学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-24 11:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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