本文主要是介绍Fxxk CrackMe 001(未完成 2016/05/02),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
CrackMe 001/160
首先附上160个CrackMe的链接。
链接: http://pan.baidu.com/s/1c1Ekrba 密码: try4
160CrackMe中的第1个,非常简单,且采用纯暴力破解。
先看看这个CrackMe,
随便用一个debugger载入,这里笔者用的是x32dbg,OD载入之后的字符串显示不是很完整。
好,首先从字符串入手。先搜索一下它的string。
可以看到”Congratz !!”以及”Good job dude =)”是我们关心的字符串。一共有两个,分别对应着该CrackMe的两个模式。Press Enter跳转到代码,可以看到,
0042F4D5 | 75 1A | jne acid burn.42F4F1 |
0042F4D7 | 6A 00 | push 0 |
0042F4D9 | B9 64 F5 42 00 | mov ecx,acid burn.42F564 | 42F564:"Congratz!"
0042F4DE | BA 70 F5 42 00 | mov edx,acid burn.42F570 | 42F570:"God Job dude !! =)"
0042F4E3 | A1 48 0A 43 00 | mov eax,dword ptr ds:[430A48] |
0042F4E8 | 8B 00 | mov eax,dword ptr ds:[eax] |
0042F4EA | E8 81 AC FF FF | call acid burn.42A170 |
0042F4EF | EB 18 | jmp acid burn.42F509 |
0042F4F1 | 6A 00 | push 0 |
0042F4F3 | B9 84 F5 42 00 | mov ecx,acid burn.42F584 | 42F584:"Failed!"
0042F4F8 | BA 8C F5 42 00 | mov edx,acid burn.42F58C | 42F58C:"Try Again!!"
0042F4FD | A1 48 0A 43 00 | mov eax,dword ptr ds:[430A48] |
0042F502 | 8B 00 | mov eax,dword ptr ds:[eax] |
0042F504 | E8 67 AC FF FF | call acid burn.42A170 |
jne acid burn.42F4F1
这句就是是否跳转到提示错误的语句。如果上面的serial校验失败的话,就会跳走。否则就会提示正确。这里我们就先不分析serial的生成了,直接暴力破解,将这个jne
语句直接用nop填充了。使得程序不管怎样都会执行到下面的正确的代码,然后返回。将75 1A
改成90 90
即可。然后patch程序,这样无论输入怎样的serial都是显示正确了。
另外一个地方如法炮制即可。
具体的serial生成算法待我有时间继续写好了。
这篇关于Fxxk CrackMe 001(未完成 2016/05/02)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!