万能断点(xp)

万能断点:在Windows 98下做软件调试时有一个API函数HMEMCPY(俗称为万能断点)解释参考文章

万能断点适用于多数xp系统下的软件,万能断点对多种语言编写的程序都适用,因此调试前可以不用查壳(如果知道程序能够用万能断点处理的话,好吧,显然这是废话),如果其他方法都不能找到关键跳和关键CALL,那么可以试试这个方法。

今天所用到的示例程序仍然是《Shark恒零基础百集VIP破解教程》中的示例程序:

万能断点(xp)_第1张图片

打开软件,发现需要输入注册码。先查一下壳:

万能断点(xp)_第2张图片

无壳,接着载入OD搜索字符串(先试试传统的方法):

万能断点(xp)_第3张图片

这个程序的字符串很少,很容易就可以发现验证错误的提示语句:Incorrect try again!!,转到相应地址,寻找关键跳和关键call:

万能断点(xp)_第4张图片

很容易就看见关键跳,先下断,发现键跳下的一个Push语句有跳转来源,转到这个跳转来源:

万能断点(xp)_第5张图片

将该jnz跳转nop掉,F9运行程序:

万能断点(xp)_第6张图片

输入假码后点击check按钮:

万能断点(xp)_第7张图片

程序破解成功,接下来只需要保存修改内容即可。

下面是利用万能断点的方法,首先记住万能断点的特征码:F3 A5 8B C8 83 E1 03 F3 A4 E8

同样的,将程序载入OD,这次不搜索字符串寻找关键跳:

万能断点(xp)_第8张图片

以下是使用万能断点的具体步骤:

1、程序载入OD后直接运行,输入假码后不点击确定,然后会到OD界面:

万能断点(xp)_第9张图片

万能断点(xp)_第10张图片

2、反汇编窗口中右键-查看-user32,达到系统领空:

万能断点(xp)_第11张图片

万能断点(xp)_第12张图片

3、接着在反汇编窗口中右键-查找-二进制字串(弹出的窗口让输入的是十六进制数即特征码),输入万能断点的特征码F3 A5 8B C8 83 E1 03 F3 A4 E8:

万能断点(xp)_第13张图片

万能断点(xp)_第14张图片

4、确定后来到相应位置,直接下断:

万能断点(xp)_第15张图片

5、接下来,点击程序的check按钮,发现程序在所下断点断下:

万能断点(xp)_第16张图片

6、返回程序领空(执行到用户代码:alt+f9)后单步调试,观察信息窗口、寄存器窗口和堆栈窗口,得到嫌疑字符串:

万能断点(xp)_第17张图片

万能断点(xp)_第18张图片

三个窗口都可以看到可疑字符串:,猜测可能就是注册码。接下来打开程序测试,发现是注册码:

万能断点(xp)_第19张图片

接下来用到Shark恒零基础百集VIP破解教程》中的另一个示例程序:

先查壳,发现peid提示不是有效的PE文件,但软件可以正常打开,这里可能是软件作者对PE头做了处理:

万能断点(xp)_第20张图片

万能断点(xp)_第21张图片

那么直接载入OD,搜索字符串(先尝试寻找关键跳):

万能断点(xp)_第22张图片

万能断点(xp)_第23张图片

发现可以找到关键的字符串,那么先转到该地址,找到关键跳:

万能断点(xp)_第24张图片

此情此景,就很明显了,向上溯源,找到相应跳转nop掉:

万能断点(xp)_第25张图片

万能断点(xp)_第26张图片

修改后保存,打开保存的软件后,发现还是显示未注册,先假装注册一下:

万能断点(xp)_第27张图片

万能断点(xp)_第28张图片

万能断点(xp)_第29张图片

万能断点(xp)_第30张图片

接下来尝试一下用万能断点:

万能断点(xp)_第31张图片

万能断点(xp)_第32张图片

万能断点(xp)_第33张图片

万能断点(xp)_第34张图片

万能断点(xp)_第35张图片

万能断点(xp)_第36张图片

接下来,运行到客户代码,单步调试,寻扎注册码:

万能断点(xp)_第37张图片

发现可疑字符串MP3873416588611047,经测试,发现是注册码:

万能断点(xp)_第38张图片


 
 
 

你可能感兴趣的:(学破解教程笔记)