破解初体验

下面分享的是crackme2。爆破,以及破解自校验。

首先是爆破,寻找关键点。
1、用PEID查看,nothing found,什么也没找到,不用着急,我们还有后续的判断措施;
2、用OD载入,f9,运行程序,发现正常显示了对话框,说明没有设置侦测OD等调试工具的措施。如果该程序设置了反调试函数,则OD无法正常运行程序的,会直接退出;
3、选择内存查看'M',或者按快捷键'alt+M',查看当前代码所在的区块。发现在代码区,没有加壳。如果程序加了壳的话,程序载入的时候,控制权会首先掌握在壳的手里,隐藏真正的入口位置。载入时当前代码就不在代码区了;
20131008_eff014cada3075f2f375NCAn9qrzYkv

4、接着随意填入name,serial值,点击register ,出现消息框提示‘wrong’,什么都不输入,出现'not be empty',输入超过16个字符,出现‘less than 16 bytes’。将这些提示字符串都在参考字符串中搜索,发现都找不到。
现在这个方法不行了,我们再想其他的办法。既然有消息框,那么我们就直接寻找消息框的函数,MessageBox.
5、打开当前模块的名称,或者按下快捷键'ctrl+N',直接输入'MessageBox'。右击选中MessageBox,选择‘反汇编窗口中跟随’,然后在USER32 的领空先下好断点。
20131008_2486f429ab29a2ccff62OQyNZqX4Rle

20131008_fe780d654756d9357822I0T5IwjHOF5

不能直接在输入函数窗口中下断点,输入函数窗口中显示的地址是pe输入表中函数字符串存放的地址。
6、ctrl+f2重新载入,f9运行,输入name和serial,程序断下了,ctrl+f9执行到返回。接着可以看到右边寄存器窗口中字符串'Wrong',还有上面有一个可疑的je跳转,发现上面的call eax就调用了Messagebox。这样,我们在上面的je下断点。
20131008_7c69dc90d7439cd9d81fThlhtiCjevG

再次重新载入运行,输入name和serial,程序直接断下。我们直接将je 改为jmp,直接f9运行,爆破成功,出现恭喜消息框。

20131008_5559fd8789c71e63dc9c4Gigycg7vPN


这样我们就实现了爆破。保存修改后。点击运行发现程序直接跳出。这就是文件自校验了。
文件的自校验手段有文件大小校验,时间校验等等。
这个程序的校验方法,我们依旧采取对比跟踪的思路,但是为了减小工作量,我们直接采用createfile函数下断点的方法进行破解。
createfile函数可以获得一个文件的句柄,从而获取文件的大小等操作。
1、载入破解的程序,ctrl+N打开输入函数列表。找到createfile。这里介绍另一种下断点的方法,右键选择查看“调用树”,里面罗列了所有调用了这个库函数的位置。在第一个位置下断点。
2、f9运行,程序断下,查看堆栈窗口的filename 是本文件的地址。说明在读自己。
20131008_e30a2251e0dda5e6fa4dn7y0u123Qh4

3、od打开原始文件,同样在craetefile位置下断点。接着运行两个程序,进行比对,找到不同的地方。
20131008_3c356278734a2e1679f4Ilxe2m1VDgr

4、发现在PostQuitMessage的地方出现了不同,修改上面的jnz为jmp强制跳转,自校验破解成功。

20131008_9898c7e14c80fd2004b5HDLTN6w0p2W


总结一下:
对于爆破,获取提示信息很重要,通过提示信息查找字符串是一种方法,当这种方法行不通的时候,就打开输入函数列表,查找相关函数下断点。如MessageBox,GetWindowTeXt等,

GetWindowTeXt会获取控件的字符串。一般程序获取输入的用户名密码等等,都会用到这个函数,本程序也可以使用这个方法来找到关键点,朋友们可以试试,只是绕的弯要多一点。不过对于初学的我们,多多的把玩一个程序,多种方法都尝试下,是很有帮助的~




罗列一下看雪里面的一般处理的断点函数:



bpx hmemcpy


bpx MessageBox


bpx MessageBoxExA


bpx MessageBeep


bpx SendMessage



bpx GetDlgItemText


bpx GetDlgItemInt


bpx GetWindowText


bpx GetWindowWord


bpx GetWindowInt




对于破解自校验,比较有效但是花费时间的方法就是OD跟踪对比源文件与破解的文件,寻找不同。为了减小工作量,可以用

createfile来锁定位置。




破解原件下载地址:欢迎大家把玩,以及提出其他好玩的方法来破解~吼吼


http://pan.baidu.com/s/11MPpj


你可能感兴趣的:(破解初体验)