软件破解教程 软件破解新手必须了解的问题和答案
1.软件怎么判断我们是否注册了?
不要忘了,软件最终是按照人的思维做的,我们回到自身来,“如果是你,你怎么判断别人是否注册了呢”,“我要别人输入用户名和注册码啊”,聪明的想法,很多软件也是这样做的,如豪杰超级解霸。(但是不是所以的软件,方法太多了,友情提示:这个世界没有完全通用的东西,除了你聪明的大脑)
具体一点呢??????????
我们把用户名按照某种方法运算得到一个真正的注册码和用户输入的进行比较不就知道了吗?Yeah,也就是
真正的注册码=f(用户名)
和Y=f(x) 是一样的
然后就是很经典的比较了,为什么说经典呢?
因为大概有60%的软件是这么做的,到底是什么比较呢,看看
请注意这里会有错误处理的噢,在这之前呢,就是经典比较啊,如果这里的错误处理提示我们诸如:注册错误之类的东西,我们就很容易定位到经典比较了。
那么上面的流程在汇编语言里面是怎么实现的呢? 比较有2种方式,直接和间接,直接就是用:
cmp x, y
je (jne) label
这里的x和y只是一个符号,实际上可能是寄存器和存储器
间接的呢?调用一个子程序比较,如下面的代码
if (strcmp(&x, & y))//如果strcmp返回值是1
printf(“right”);
else……………..//当然是错误拉
这里的strcmp也只是一个符号,现实可能有变化
用汇编语言描述呢?
push &y;
push &x;
call strcmp;
test ax,ax;判断返回值(也就是出口参数,也可以在子程序里判断)
je……
2.为什么可以调试可执行程序呢
可能很多菜鸟有我这样的疑问,呵呵
调试可执行程序的理论基础:
我们都知道在汇编语言里面可以用debug来调试程序。但是为什么可以?
其实和简单,因为机器只识别的是0和1(准确的说你高电平和底电平,你可以简单的理解为灯泡亮和黑),我们称之为机器码,而我们的汇编语言与机器码是一一对应的,所以我们可以根据机器码得到对应的汇编代码,也可以反过来通过汇编代码得到对应的机器码,
如:在debug下我们可以看到
用debug测试一下:
-a
1370:0100 mov ax,bx
1370:0102
-u100
1370:0100 89D8MOV AX,BX
这里的89D8就是MOV AX,BX的机器码
3.破解教程都告诉我们,找到错误提示上面的第一个有条件跳转,改掉就可以爆破,为什么呢?
因为程序是顺序执行的,只要我们找到提示出错的地方,那么在此之前必定已经比较完了,所以再往前面找找就看到了关键的比较,关键的地方就是上面的比较,如果我们改变的判断条件呢?如果改成不相等就注册成功,那么。。(嘿嘿,某同志传来不怀好意的笑声),那么不管我们输入什么都是“正版”的了,没有交钱的“正版”,这就是我们改变跳转的原因,也就是改变改变的判断条件
4.下面我们开始实战演习
虽然这只是一个简单的用S-Demo做的动画,但是看完了下面的文章你还是会收获很多,不相信,我晕,把简单的事情做到极限就成功了,呵呵
(1).爆破
这个很简单就不多讲了,运行程序,随便输入密码,确定,提示:“password wrong”,
用ollydbg载入这个动画,查找程序用到的字符串,找到password wrong,下个断点,还记得前面的理论吗?
再向前找找就可以找到比较的关键地方了(条件跳转),好的,找到的地址是:0040203F
0040202A|. FFB6 A4000000PUSH DWORD PTR DS:[ESI A4] ; /s2
下个断点,看看到底压入了堆栈什么
00402030|. 8D45 CCLEA EAX,DWORD PTR SS:[EBP-34]; |
00402033|. 50 PUSH EAX ; |s1
00402034|. FF15 E0234100CALL DWORD PTR DS:[] ; \_stricmp//这里看到了什么,stricmp,难道这就是传说中的关键比较吗?
但是比较之后没有跳转啊,是吗?仔细看看,比较之后的结果放在那里,eax !
下面不是有一个je吗?
0040203A|. 83C4 20ADD ESP,20;平衡堆栈
0040203D|. 85C0 TEST EAX,EAX;测试返回值
0040203F|. 74 15JE SHORT test.00402056
修改为jne,保存,运行,ok,搞定,请你再次回顾前面的流程图
(2).寻寻觅觅找密码
还记得前面的流程图吗?如果我们在程序比较的时候中断程序会有什么发现呢?呵呵,这个时候会看到真正的密码,重新用ollydbg载入这个动画,下断点00402034
为什么要在这里下断点?好问题,因为这里看到了call DWORD PTR DS:[],看看流程图,明白了吗,呵呵
这里我们在堆栈区域可以看到我们输入试炼码和真正的密码,为什么在堆栈区域,因为在windows下通过堆栈传递参数。请看上面的简单分析,破解补丁的编写
(3).文件补丁的编写(c语言简单实现)
前面我们把je改成了jne,随便输入密码都可以了,实质是把机器码由74h改成75h,因为机器码和汇编指令是一一对应的,那么我们只要写个小东西,修改就可以了。我已经写好了,很短,很好懂。Crack.c,我们分析一下
#include
#include
int main(void)
{
FILE *fp_out;//要写入的文件
printf("\n\t\t\t\t Copy Right by ngaut\n");
printf("Cracking......\n");
//打开文件test.exe
if ((fp_out = fopen("test.exe", "r "))==NULL)
{
printf("error!!!Can not open test.exe!!!\n\n");
printf("Press any key to continue\n");
getchar();
exit(0);
}
//定位到要修改的地方,这里是 0x203f,为什么呢?下面给出回答
fseek(fp_out, 0x203f, SEEK_SET);
fputc(0x75, fp_out);//写入数据0x75,也就是把机器码74改为75,
//汇编则是 je 改为了jne
fclose(fp_out);
这里 0x203f = 0x0040203F – 0x00400000
(4).让程序自动弹出正确的密码
linux防火墙怎么设置? 防火墙在linux系统上的应用
iptables 这个指令, 如同以下用 man 查询所见, 它用来过滤封包和做NAT Network Address Translation(网路位址转译), 这个指令的应用很多, 可以做到很多网路上的应用 iptables - administration tool
详情2018-01-04 08:58:02责编:llp 来源:驱动管家phpwind论坛存在哪些漏洞?哪个漏洞最严重?
PHPWIND 论坛是一款流行的PHP 论坛,界面美观,功能也比较强大。但大家仔细看一下会发现不论是从界面功能还是代码风格,它和 DISCUZ 都非常相似,具体原因我想也就不用说了,毕竟 DISCUZ 出来比它要早很多
详情2018-01-13 13:59:36责编:llp 来源:驱动管家打开电脑的六种方法 原来打电话也能开计算机
如果有人问:“你会开计算机吗?”你肯定会说:“不就是按一下 Power 键吗?这有谁不会?开机,不只从这里开始如果再问你:“除了按 Power 键开机外,你还会用其他的方法开机吗?”你肯定会一愣。开机六种玩
详情2018-01-12 08:50:40责编:llp 来源:驱动管家网络交换机的密码如何被破解?网络交换机的密码被破解过程
交换机和路由器都需要有一定的安全保证,也就是说要及时为他们配置合理的密码,那么如果这个密码忘记了怎么办呢?笔者就遇到过这么一次,由于岗位调动,以前的网络管理员离开了本部门,却把交换机上设置了密码,而
详情2018-01-15 13:28:59责编:llp 来源:驱动管家安装vista系统的电脑怎么查看无线网络?查看无线网络的步骤是什么?
在Vista系统中只有先启动内置无线服务功能,才可以用系统自带的管理软件对无线网卡进行配置和管理。一、 启动系统内置无线网络服务功能1 右键点击“计算机”,选择“管理 ”。2 选择“服务和应用程序”---
详情2018-01-14 11:53:56责编:llp 来源:驱动管家windows系统开机密码可以怎么破解?破解windows系统开机密码有哪些方法?
Windows系统开机密码从Windows 98开始就被人津津乐道,最早的密码保护可以用形同虚设来形容。直到后来的Windows 2000输入法漏洞,微软才意识到问题的严重性,而面对使用范围非常广泛的Windows XP系统来说,密
详情2018-01-10 14:59:51责编:llp 来源:驱动管家怎么入侵unix操作系统?unix操作系统的入侵步骤
偶然的机会发现了一篇名为hacking unix的文章,大概看了看觉得价值十分的大,所以决定翻译出来,我觉得这篇文章一定能够成为中国unix黑客的基石 呵呵,也许有点夸大,不过等你看完了这篇文章以后,你的态度绝对会有
详情2018-01-04 15:53:55责编:llp 来源:驱动管家sql server怎么加密?如何防范sql注入攻击?
SQL Server上内置了加密术用来保护各种类型的敏感数据。在很多时候,这个加密术对于你来说是完全透明的;当数据被存储时候被加密,它们被使用的时候就会自动加密。在其他的情况下,你可以选择数据是否要被加密。S
详情2018-01-16 08:54:03责编:llp 来源:驱动管家万能多媒体播放软件:暴风影音的视频程序模块有漏洞
暴风影音是在中国非常流行的万能多媒体播放软件。暴风影音所使用的视频加速程序模块是通过设置浏览器代理实现的,这个代理服务器(HttpServer dll)会在本机开8089端口监听处理请求。因为此端口绑定的地址不是loc
详情2018-01-20 14:05:34责编:llp 来源:驱动管家什么是sql注入?sql注入攻击的步骤
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没
详情2018-01-15 09:51:58责编:llp 来源:驱动管家
- 网站被黑的经过 怎么防止网站被黑?
- 小米平板为什么不支持AVI格式的视频?小米平板支持视频格式
- 移动练歌房录歌功能在哪儿?移动练歌房怎么录制自己唱的歌?
- 为什么ipad连不上wifi?ipad连不上wifi怎么解决
- 小米出的这款车载充电器到底好不好呢?看下这个就知道了
- global.asa木马怎么清理?为什么会出现global.asa木马?
- linux文件系统为什么会变成只读的方式?怎么修复
- iso是什么文件?两种方法快速打开iso文件
- 国行iphone5支持4g吗?国行iphone5升级4g的方法
- 华为手机解锁忘了密码找得回吗?怎么找回?
- 为什么ipad显示不在充电?ipad不充电怎么解决?
- 路由器的网关地址在哪儿?路由器网关地址怎么找?
- 病毒清除软件:1kb文件夹快捷方式病毒清除专用附件
- 怎么用电炉抓肉鸡?电炉抓肉鸡有哪些步骤?
- 淘宝店铺的名称起过之后可以修改吗?淘宝店铺名称怎么修改?
- 微信朋友圈转发怎么操作?微信朋友圈怎么转发?
- 诺基亚920无线充电的充电原理是什么?
- 智能充电器哪家强?关于智能充电器的介绍
- 一招教你设置无线wifi防止别人来蹭网
- 教你在xp系统下如何使用u盘修复工具portfree production program