【吾爱破解2014CrackMe大赛】【第五组】
本帖最后由 ximo 于 2014-10-28 10:42 编辑1.载入map文件....map文件在附件中
2.载入od,有启动事件和按钮事件
注册试下,老提示错误
3.从启动事件入手
1 00401087机器码算法下去
2 0040113C设置向量异常链表.在每个回调函数中下断
00403C28|.68 C7584000 push CrackMe.004058C7
00403C2D|.68 01000000 push 0x1
00403C32|.B8 0A000000 mov eax,0xA
00403C37 >|.E8 8C990000 call CrackMe.0040D5C8 ;调用API [备注: 不是命令]
00403C3C|.3965 FC cmp ,esp
00403C3F|.74 0D je short CrackMe.00403C4E
00403C41|.68 06000000 push 0x6
00403C46 >|.E8 77990000 call CrackMe.0040D5C2 ;数组下标错误 [备注: 不是命令]
00403C4B|.83C4 04 add esp,0x4
00403C4E|>8965 FC mov ,esp
00403C51|.68 CB614000 push CrackMe.004061CB
00403C56|.68 01000000 push 0x1
00403C5B|.B8 0A000000 mov eax,0xA
00403C60 >|.E8 63990000 call CrackMe.0040D5C8 ;调用API [备注: 不是命令]
00403C65|.3965 FC cmp ,esp
00403C68|.74 0D je short CrackMe.00403C77
00403C6A|.68 06000000 push 0x6
00403C6F >|.E8 4E990000 call CrackMe.0040D5C2 ;数组下标错误 [备注: 不是命令]
00403C74|.83C4 04 add esp,0x4
4. 一直不清楚怎么产生异常的...
不知道这一行这个是不是判断单步中断
00409565|.813B 04000080cmp dword ptr ds:,0x80000004;
试着在按钮事件设置cc和mov ,0
5. 算法:
代码很长,但仔细跟的话,很简单
004095FE 一进来就对注册码进行rc4解密..
0040975D 以"+"为标志,分割解密后的文本
0040981D 判断"数组[末尾]"与"狄邦爱小周周"是否相等
004098AC 这个一个子程序,用数组进行算法.跟进去
0040C98F第一处循环,把字符串转成字节
0040CAB2第二处循环,生成0-0x100的字节. 固定1
0040CB2C第三处循环,循环"wyl"100次. 固定2
0040CC4D第四处循环,计算固定1与固定2.....
0040CE60第五处循环,只要注意这个循环就行了
a. 以第一处循环结果长度做为循环次数
b. 每次从第四处循环取出偶数位. 如第四处循环
c. b+e. // e初始为0
d. 取第四处循环.并且与b互换值
e. c+1
f. 取第四处循环
g. f xor 第一处循环
攻击方式:Keygen
评委评价:Keygen成功,第一名攻破共计1045分钟
得分:210
感谢楼主的精彩分析。请教一下,楼主的map文件是利用IDA生成的吗?难道楼主自己做了FLIRT的签名? 有点看不懂!受教了! 666666666666666 6666666666666666666666 777777777777777777777 有点看不懂!受教了!
页:
[1]