160个CrackMe编号002[Afkayas]我会努力更新到160哒 来点热心吧
本帖最后由 huowangwu1949 于 2013-5-11 07:01 编辑{:300_965:}我会努力更新哒 给点热心吧亲{:300_965:}
【文章标题】: 160个CrackMe编号002.1
【文章作者】: huowangwu1949
【下载地址】: 自己搜索下载
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
载入 运行 crackme
输入用户名和假码 确定 弹出错误
F12暂停 ALT+F9执行到用户返回 点击错误提示框 返回到这里
00402622 .8D4D E8 lea ecx,dword ptr ss:
从这里往上看是错误提示
004025E5 > \68 C81B4000 push Afkayas_.00401BC8 ;UNICODE "You Get Wrong"
在网上是正确提示
0040258B . /74 58 je short Afkayas_.004025E5
0040258D . |68 801B4000 push Afkayas_.00401B80 ;UNICODE "You Get It"
00402592 . |68 9C1B4000 push Afkayas_.00401B9C ;ASCII "\r"
看到这里大家最喜欢的jnz 或者je有出现了 nop掉 或者标志位爆破
这个crack很简单 但是下面有提示
004025A1 .68 A81B4000 push Afkayas_.00401BA8 ;UNICODE "KeyGen It Now"
找到我的注册码 keygen it now
别着急 大家记着往上找 这就是要细心了
00402533 .FF15 28414000 call dword ptr ds:[<&MSVBVM50.__vbaStrCm>;msvbvm50.__vbaStrCmp
可以看到这一句
注意 关键的字符“strcmp” 这句的意思就是字符串string cmp 字符串比较
可以猜想到是比较真码和假码的字符串
我们在这里下断 试一下
继续运行 输入假码
断下来了
00402533 .FF15 28414000 call dword ptr ds:[<&MSVBVM50.__vbaStrCm>;msvbvm50.__vbaStrCmp
注意寄存器窗口 里面弹出了 AKA-1268007 测试后这就是用户名对应的注册码 (这个crackme好像就是死码 输入什么都是这个好像
我们可以继续逆推 这里弹出了注册码 那上面可能就是算法
我们继续往上面找 可以看到
00402530 .FFD3 call ebx ;msvbvm50.__vbaStrMove; <&MSVBVM50.__vbaStrMove>
strmove 传递字符串到什么地方
在网上 有
0040251D .68 701B4000 push Afkayas_.00401B70 ;UNICODE "AKA-"
00402522 .51 push ecx ; /String = "$R"
00402523 .FFD7 call edi ; \__vbaStrCat
00402525 .8B1D 70414000 mov ebx,dword ptr ds:[<&MSVBVM50.__vbaSt>;msvbvm50.__vbaStrMove
看到AKA- 可以猜到上面就是对算出来的注册码嵌套上 AKA- 作为开头
我们可以下断 跑一下
0040250A .FF15 04414000 call dword ptr ds:[<&MSVBVM50.__vbaHresu>;msvbvm50.__vbaHresultCheckObj
在这里下断 运行再一次
发现直接跑到了
00402533 .FF15 28414000 call dword ptr ds:[<&MSVBVM50.__vbaStrCm>;msvbvm50.__vbaStrCmp
004024FC . /7D 12 jge short Afkayas_.00402510
004024FE . |68 A0000000 push 0xA0
00402503 . |68 5C1B4000 push Afkayas_.00401B5C
00402508 . |56 push esi
00402509 . |50 push eax
0040250A . |FF15 04414000 call dword ptr ds:[<&MSVBVM50.__vbaHresu>;msvbvm50.__vbaHresultCheckObj
jge 跳过了我们刚才下断的地方
我们可以在jge下断或者段首
00402310 > \55 push ebp
下断来继续调试
就可以看到 这个很2的算法的过程 取huowangwu1949 用户名的 h 到xxxx 算出一个数字 然后retn返回到一个call的下方
几次之后 就出来了这个 AKA-1268007
至此 这个crackme结束了
- -其实算法我根本不懂 只知道他是从那里开始取用户名的一部分开始 算。。。到算出结果
就是这样
为什么呢 大家找一下就可以发现一个判断
--------------------------------------------------------------------------------
【经验总结】
仔细观察 对英文单词敏感 strcmp strmove
--------------------------------------------------------------------------------
【版权声明】: 本文原创于huowangwu1949, 转载请注明作者并保持文章的完整, 谢谢!
2013年05月10日 19:24:52
看不懂呀~好纠结!载入进去不知道该怎么做了 期待算法分析篇{:1_921:} 哟西哟西·!!收藏一下 支持下
这些CrackMe有一些我前几天做过,只不过没你分析得这么细,而且都是搜字符出来的。
期待着下一期。 恩,不错不错~~加油吧 AfKayAs.2.Exe楼主这个Nag去掉了吗,搞两天了一点思路都没有 必须学习学习 0xpeng 发表于 2013-7-19 13:37 static/image/common/back.gif
AfKayAs.2.Exe楼主这个Nag去掉了吗,搞两天了一点思路都没有
现在搞定了没?我也纠结了好久,现在还是搞不定啊~搞定的话交流下吧
支持原创!!!
页:
[1]
2