利用几种语言的按钮事件特征破解软件
利用语言的按钮事件特征可以帮助我们破解一些软件,测试软件的强度,为我们的软件安全提供一些思路
首先了解什么是特征码,举个例之:
0047FA10 > $ 55 push ebp
0047FA11 . 8BEC mov ebp,esp
0047FA13 . 83C4 F0 add esp,-0x10
比如说push ebp的特征码就是55, mov ebp,esp的特征码就是8BEC,这就是特征码
1.Delphi和BC++
因为Delphi和BC++的特征码是通用的,我们放在一起说,首先PEID查壳(习惯)
载入od,然后右键---查找-----二进制字符串,输入我们的特征码
那我图片里的?代表什么呢,就我的图片例子而言
0047FA4B . E8 4049FDFF call Delphi.00454390 //E8代表call,而call后的地址是会变动的
0047FA50 . E8 6B43F8FF call Delphi.00403DC0
所以我们就用?代表不断变动的地址,call向哪里的地址无所谓,地址变到哪里我们就用?代替,之后点击确定
出现了如上的画面。在特征码的下面都会有一个call,我们就在call处下断点,之后寻找下一个(CTRL+L),直到显示为没有。为什么要下那么多断点,因为我们也不知道那一个会用上。那如果特征码的情况比较多怎么办,我的建议是使用脚本,能快速的下断点
当我们将程序运行起来,我们输入假的注册码,点击注册,就会发现OD将我们的程序给断了下来,
于是我们F7进所断下来CALL里面,这就是按钮事件的核心代码了,在这里面,你可以追踪注册码,亦或是影响关键的跳转来实现不用注册码就实现登陆。那和Delphi相同,BC++我就不在累述了。
2.VB语言
同样的办法,先查壳,载入OD,右键----查找------二进制字符串,输入816C24,VB语言的特征码
在jmp上下断点,然和右键----查找----下一个,之到没有,因为我的程序比较小,所以就四个,如果是大程序,我们就需要把所有的按钮事件都下上断点
运行程序我们发现程序停在了第一个下断点处,老方法,F7进入,影响关键的跳转,实现程序的爆破
3.易语言
易语言用PEID查壳,你会发现它显示的是VC++6.0语言的
这个就和刚才的不一样了,在二进制字符串上我们输入FF 25之后,点击确定之后出现下面的情况:
我用鼠标选中的代码(黄色部分)就是易语言体,怎么分辨呢?程序下面有一堆jmp(关键),上面还有push 0x520xxxxxx(这个不一定),如果发现没有,就再次进行搜索,直到无法寻找到,否则我们就确定它为易语言体了,这只是确定,之后我们在二进制字符串里输入FF 55 FC 5F 5E,这就是易语言的特征码
在FF55 FC处下断,之后的方法就和上面相同了(寻找下一个),运行程序,输入假码点击运行,观察程序所断位置。F7进入call里进行修改,我们在这里多讲一下,因为易语言在网络验证方面的独特作用,比如说游戏外挂,服务器的验证,我再给大家介绍一个强大的工具e-debug,它的使用方法也非常简单
第一步打开open,选择我们的程序,第二步,开始,输入假码,点击按钮
我们就会发现多出了 一个事件发生:004010A1,这里不一定指的是按钮,也可以是图片其他什么,如果是其他,那就是其他地址。我们记下这个地址,返回到OD CTRL+L输入刚才的地址,下断点运行,输入假的账号和密码,注册或其他,你会发现程序断在我们刚才下断点的地方,那个地方就是我们的核心代码处,是不是很简单。
4.VC++和MFC
我们首先先要区分VC++和MFC之间的区别,因为通过PEID查壳,显示的都是VC++编写的,这时我们ALT+E,VC++显示如下,而MFC显示的则是mfc42.dll,这一点是本质的区别,因为VC++写的程序不会调用mfc42.dll的,这样,易语言,VC++,MFC就能分开了
这个和刚才的不一样了,查找---所有命令 ,输入sub eax,0a,点击确定,双击代码处进入
这个时候你就会发现在特征码后面有一个je跳转,选中je(不是F8)按enter跟随过去,跟随到它的目的地址,会发现下面有一个call,在call处下断点
寻找下一个,之后的和上面的一样运行输入假码点击运行,断下来的地方要注意,那个地方不是核心代码处,我们需要单步运行两次F8到达核心处,实现爆破。那么MFC和VC++是相同的,MFC程序断下来后,F7进call,两次F8让他jmp。
最后附上几种语言的特征码:
VB:
816C24
Delphi & BC++ :
740E8BD38B83????????FF93????????
MFC:
sub eax,0a
VC++:
sub eax,0a
易语言:
FF 55 FC 5F 5E或(e-debug)
我也只是刚刚研究,如果有新的想法,欢迎探讨。
- 上一篇: 获取机器特征码程序
- 下一篇: 查找特征码(简单的病毒扫描)