好友
阅读权限40
听众
最后登录1970-1-1
|
ps520
发表于 2010-2-19 16:28
【文章标题】: 对一个CrackMe的小分析
【文章作者】: Luck[LCG]
【作者邮箱】: 466748210@qq.com
【作者QQ号】: 466748210@qq.com
【软件名称】: CrackMe.exe
【下载地址】: http://www.52pojie.cn/thread-38945-1-1.html
【编写语言】: Delphi
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
刚接触这个CrackMe,看体积我以为是易语言的,直接上OD分析字符串。
字符串居然为空?这个是怎么回事?
模拟执行了下代码,发现点按钮之后如果不是真码就会结束
于是想到Bp ExitProcess
“溯洄从之,道阻且长。溯游从之,宛在水中央。”
但是我愣是没回去找到我的伊人……
麻花疼那个洋芋丝啊……
于是冷静下来,按照一般步骤来搞好了!
Peid查壳,Delphi的。
很好~
既然是Delphi的就请出我们的按钮杀手脚本吧!
var Addr
mov Addr,401000
loop:
find Addr,#740E8BD38B83????????FF93????????#
cmp $RESULT,0
je Exit
add $RESULT,0A
bp $RESULT
add $RESULT,1
mov Addr,$RESULT
jmp loop
Exit:
ret
跑脚本以后F9,输入假码
点按钮
呵呵
成功断下了
004309B0 FF93 20010000 call dword ptr [ebx+0x120] ; crackme.004502A0
F7进Call分析吧!
004502C3 E8 54F1FDFF call 0042F41C
004502C8 837D FC 00 cmp dword ptr [ebp-0x4], 0x0
取机器码里的文本(作者这命名可真……)
004502EB E8 2CF1FDFF call 0042F41C
004502F0 8B45 F4 mov eax, dword ptr [ebp-0xC]
再取
004502FD /75 2E jnz short 0045032D
飞向结束的噩耗,Nop之
0045031A /75 11 jnz short 0045032D
飞向结束的噩耗,Nop之
搞了这俩call,相信正如作者所言,不会有啥麻烦了,放心地按下了F9
程序并未结束
呵呵~
切回程序界面
发现标题已经变成“注册成功”字样了!
人生有时候就是这样~~~~~~
--------------------------------------------------------------------------------
【经验总结】
分析一个程序应该从其语言来考虑,因为每个语言都有其自己的特色,也有独特的分析方法。
经验告诉我们,对于按钮注册,并且没有重启验证的,一般都是下按钮事件断点~
就是这么多了~
顺手写个Loader,演示下自己的代码~
如果编辑框没内容,不会提示成功的。这个小东东就留给各位去搞了吧!
004502E0自己调试下吧
--------------------------------------------------------------------------------
【版权声明】: 本文原创于Luck[LCG], 转载请注明作者并保持文章的完整, 谢谢!
2010年02月19日 16:24:22 |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|