从来没有发过破文,就从国外论坛找了一个入门级的小工具来分析,以后会逐步提高难度...,大牛可以飘过...,只是为了引导新童鞋入门...
软件下载是从国外共享软件网站www.cnet.com找到的,学习破解的新童鞋可能从该网站找软件来分析,待破解的小工具就是下面红框框中的
附件 85552
软件基本样子如下:
附件 85553
破解步骤:
1.首先第一步PEID查看
附件 85554
发现居然是汇编写的,而且是无壳...,(*^__^*) 嘻嘻……,相当地适合新人练手哇...当然也有可能PEID检测出来的结果是不正确的,合适的做法是根据程序的入门点特征来判断
是什么语言的编写以及加了何种壳...
2.初探软件注册机制
一般位于关于或者帮助菜单项会有注册的选项,这个软件就是如此.
附件 85555
单击注册按钮来到注册对话框
附件 85556
随便输入一个错误的注册码,看看错误提示是什么...
附件 85557
可以看到是一个消息框,学过win32汇编的童鞋很自然的可以想到是调用了MessageBoxA或者MessageBoxW之类的API函数来弹出这个消息框滴...
一般我们有几种方式可以定位到注册码验证代码附近
1.对于纯SDK程序,我们可以直接下断MessageBoxA和MessageBoxW之类的函数,这个程序就是如此...
2.同样针对于纯SDK程序,可以使用OD搜索字符串,看看能否定位到错误提示字符串,如果可能,那么就万事大吉了,不过,通常这种方式很难奏效,因为软件开发者都学聪明了,
比如现在很多单机游戏里面字符串就是放着加密资源里面,需要使用的时候在从资源里面解密出来,如此使用OD搜索字符串就不能奏效了.
3.针对于MFC等框架程序,你可以编写一个MFC SPY之类的辅助工具来快速定位按钮事件的入口地址,防止陷入到C++框架程序的浩瀚的消息路由里面去了.
4.这对于Delphi程序,可以使用DEDE这款工具来解析按钮事件地址
5.VB以及.net程序可以使用相应的辅助工具来加速定位关键代码
这里因为软件是用win32汇编写的,那么直接在MessageBoxA和MessageBoxW的入口处下断
附件 85558
重新运行软件输入错误的注册码,然后F9跑起来,会断在MessageBoxA处,这个时候可以把你的注意力转到堆栈窗口里面,堆栈里面会显示MessageBoxA的各个参数此时
的值是什么,如果不出意外的话,会是之前弹出的消息框提示那个错误信息
附件 85559
右键单击上图中的13FB28这个地址,选择弹出菜单里面的反汇编窗口中跟随
附件 85560
这个时候反汇编窗口就会定位到调用MessageBoxA指令的下一条语句.
可以看到上面不远处有提示注册成功的提示信息
附件 85561
说明已经在注册码验证的关键位置附近了
这个时候即可以使用OD的动态分析注册验证算法,也可以使用IDA来一览注册算法的全貌...
这里我就直接用IDA来静态分析了
附件 85562
大致浏览一下这个函数的头部你就会发现这个一个消息响应函数... 注册按钮的消息响应也在其中...
这里会惊奇的发现作者居然使用明文注册码,连加密算法都没有,这个老外也忒厚道了吧
简单注释如下
附件 85563
3.验证注册码是否正确
在注册框输入14DC747GL,看看效果
附件 85564
单击OK,提示注册成功,重启之后,查看已经注册了.
附件 85565
总结:
这是第一次写破文,就搞个最简单的吧,以后会常到cnet上面去找软件来写破文的,会包括算法分析以及注册机的编写,难度会逐步提高,望和童鞋们共同进步...
软件下载是从国外共享软件网站www.cnet.com找到的,学习破解的新童鞋可能从该网站找软件来分析,待破解的小工具就是下面红框框中的
附件 85552
软件基本样子如下:
附件 85553
破解步骤:
1.首先第一步PEID查看
附件 85554
发现居然是汇编写的,而且是无壳...,(*^__^*) 嘻嘻……,相当地适合新人练手哇...当然也有可能PEID检测出来的结果是不正确的,合适的做法是根据程序的入门点特征来判断
是什么语言的编写以及加了何种壳...
2.初探软件注册机制
一般位于关于或者帮助菜单项会有注册的选项,这个软件就是如此.
附件 85555
单击注册按钮来到注册对话框
附件 85556
随便输入一个错误的注册码,看看错误提示是什么...
附件 85557
可以看到是一个消息框,学过win32汇编的童鞋很自然的可以想到是调用了MessageBoxA或者MessageBoxW之类的API函数来弹出这个消息框滴...
一般我们有几种方式可以定位到注册码验证代码附近
1.对于纯SDK程序,我们可以直接下断MessageBoxA和MessageBoxW之类的函数,这个程序就是如此...
2.同样针对于纯SDK程序,可以使用OD搜索字符串,看看能否定位到错误提示字符串,如果可能,那么就万事大吉了,不过,通常这种方式很难奏效,因为软件开发者都学聪明了,
比如现在很多单机游戏里面字符串就是放着加密资源里面,需要使用的时候在从资源里面解密出来,如此使用OD搜索字符串就不能奏效了.
3.针对于MFC等框架程序,你可以编写一个MFC SPY之类的辅助工具来快速定位按钮事件的入口地址,防止陷入到C++框架程序的浩瀚的消息路由里面去了.
4.这对于Delphi程序,可以使用DEDE这款工具来解析按钮事件地址
5.VB以及.net程序可以使用相应的辅助工具来加速定位关键代码
这里因为软件是用win32汇编写的,那么直接在MessageBoxA和MessageBoxW的入口处下断
附件 85558
重新运行软件输入错误的注册码,然后F9跑起来,会断在MessageBoxA处,这个时候可以把你的注意力转到堆栈窗口里面,堆栈里面会显示MessageBoxA的各个参数此时
的值是什么,如果不出意外的话,会是之前弹出的消息框提示那个错误信息
附件 85559
右键单击上图中的13FB28这个地址,选择弹出菜单里面的反汇编窗口中跟随
附件 85560
这个时候反汇编窗口就会定位到调用MessageBoxA指令的下一条语句.
可以看到上面不远处有提示注册成功的提示信息
附件 85561
说明已经在注册码验证的关键位置附近了
这个时候即可以使用OD的动态分析注册验证算法,也可以使用IDA来一览注册算法的全貌...
这里我就直接用IDA来静态分析了
附件 85562
大致浏览一下这个函数的头部你就会发现这个一个消息响应函数... 注册按钮的消息响应也在其中...
这里会惊奇的发现作者居然使用明文注册码,连加密算法都没有,这个老外也忒厚道了吧
简单注释如下
附件 85563
3.验证注册码是否正确
在注册框输入14DC747GL,看看效果
附件 85564
单击OK,提示注册成功,重启之后,查看已经注册了.
附件 85565
总结:
这是第一次写破文,就搞个最简单的吧,以后会常到cnet上面去找软件来写破文的,会包括算法分析以及注册机的编写,难度会逐步提高,望和童鞋们共同进步...