【crakeme新手必练】简单--->难 by 小雨 2013.06.19
本帖最后由 PoJie_小雨 于 2014-9-14 21:23 编辑【文章标题】:【crakeme新手必练】简单--->难 by 小雨2013.06.19
【文章作者】: xiaoyu
【作者邮箱】:
【保护方式】: none
【使用工具】: PEiD,OllyDbg
【编程语言】:Borland Delphi 6.0 - 7.0
【作者声明】: 主要记录自己的学习过程!欢迎交流学习
【下载地址】: http://pan.baidu.com/share/link?shareid=683056246&uk=892352529
--------------------------------------------------------------------------------
无壳crakeme!
crakeme任务:
1.除去程序开始阶段的NAG窗口
2.暴力破解,让它提示注册成功
3.输入注册码,让它提示注册成功
4.分析算法写注册机
大家可以根据自己的水平 选择不同的难度进行完成
我这里主要讲一下算法分析:
由于NAG窗口调试中很烦,我还是把他去除了:
我们直接把消息框NOP 就好了
如图:
--------------------------------------------------------------------------------
【算法分析】:
经过分析,我们来到这个区段:
--------------------------------------------------------------------------------
这里有2个call 实际上是判断你的name 和serial 是否为空的
我们不管这里,F8
在0040800D下好断点,我们一步一步分析:
--------------------------------------------------------------------------------
点击注册:
--------------------------------------------------------------------------------
相信 喜爱爆破的同学已经看到了关键跳了可以自己试试!
不会爆破的可以看shark的教程,讲得很好
我们进入算法CALL:
单步分析如下:
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
继续单步走分析:
这里一共循环了你的用户名长度次
--------------------------------------------------------------------------------
最后取了前缀和后缀。组合注册码
由此看来 这个算法不难吧·~你是否懂了呢、?
我们来总结下:
【算法总结】
1.依次取name的ASCII码值
2.与6H进行异或计算
3.计算的结果再与ASCII码值相加
4.再加0Ah
5.HZF-计算结果-GDF 即为正确注册码
累啊。。今天刚考完- -貌似大家喜欢入门的东西不知道这个如何?
留一个思考题,name为汉字的时候注册码应该怎么分析呢?
注册机就没写了主要 我不会提取ASCII码值大于128的字符= =
大家会写的可以写下顺便教教我。受教了~
顶一个,goodboy 沫允然. 发表于 2013-6-19 21:18 static/image/common/back.gif
顶一个,goodboy
嘿嘿谢谢支持~~~24号 就出去实习咯~ 小雨师傅流逼啊 膜拜会分析算法的
每次一到算法,人就晕,学习一下 也想学。顶一个 1354669803 发表于 2013-6-19 21:19 static/image/common/back.gif
小雨师傅流逼啊 膜拜会分析算法的
。。。。。请不要这样。。。你猛得一B好吗? 不苦小和尚 发表于 2013-6-19 21:24 static/image/common/back.gif
每次一到算法,人就晕,学习一下
算法哪有那么难- -、、、、、、、、、、、、、、 wqls917 发表于 2013-6-19 21:26 static/image/common/back.gif
也想学。顶一个
加油 没有你相像的那么难!!!!!!!!!!!!!!!!!!!!!!!!! 牛顶,我下载分析试试