逆向分析的新手160个crackme之002
逆向AfKayAs.1**** Hidden Message *****继续往下分析,看到这里获取了输入的假码,同时将固定字符AKA-与780368进行拼接,获取真码AKA-780368。继续往下就到了比较的位置,那么说明真码的计算就结束了。将计算的字符串输入进行检测。
可以看到计算所得的字符串就是正确的。总结下注册码的生成方式:
AKA-+用户名的长度*17cfb+用户首字节十六进制数。
有基础教程吗?春小白!!! zhangjj001 发表于 2017-11-16 21:42
有基础教程吗?春小白!!!
基础教程?论坛里不是有shark恒的免费教程吗?我也是从纯小白开始的。 练习就应该是这样,这才是学习。CM是最适合学习技术的,不一定必须使用什么软件来练习。很多人认为CM是垃圾,新手才玩CM,那真是太愚蠢了。。 Shark恒 发表于 2017-11-16 22:47
练习就应该是这样,这才是学习。CM是最适合学习技术的,不一定必须使用什么软件来练习。很多人认为CM是垃圾 ...
我现在快弄到第十个了,想把做程序的心得都发出来。练习感觉学到好多东西,不会的也越来越多了。 本帖最后由 OSVince 于 2017-11-22 16:22 编辑
我最近也在搞这个CM,本来想把分析过程发到论坛的,但是楼主已经写过了。所以我就不献丑了,另外补充下,楼主写的计算过程不完整,我逆向过来的完整过程是:
第一步:计算输入的用户名(abcdefg)长度,用长度(7)乘以一个固定的16进制数据17cfb,结果(a6add)
第二步:返回用户名第一个字符(a)的字符码(61)。然后用字符码(61)+第一步的结果(a6add)=(A6B3E)。
第三步:设置一个固定值A,用第二步运算得到的结果(A6B3E)除以A,得到结果(10ab9),余(4)
第四步:依次执行第三步,将计算得到的余数存放到内存(0012F2B4)地址位。(电脑不同,地址肯定不同,),
第五步:将以上地址为数据按照倒序,存放到内存(0012F32C)地址位;
第六步:将固定字符串"AKA-"与第五步得到的结果组合起来,就是真正的注册码了。
其中第三步:第一次执行的时候是用(A6B3F),当再次执行的时候,用的是(A6B3F/A)的商,在除以A,以此类推。 谢谢分享小白路过 感谢楼主分享 160个crackme在哪下? 疯子888 发表于 2017-11-26 19:20
160个crackme在哪下?
我有篇里有链接,你也可以百度下