驱动管家:安全、高效、精准的专业驱动下载站!

软件破解教程 软件破解新手必须了解的问题和答案

2018-01-20 17:30:15责编:llp   来源:驱动管家     人气:

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系统上的应用

    linux防火墙怎么设置? 防火墙在linux系统上的应用

    iptables 这个指令, 如同以下用 man 查询所见, 它用来过滤封包和做NAT Network Address Translation(网路位址转译), 这个指令的应用很多, 可以做到很多网路上的应用 iptables - administration tool

    详情2018-01-04 08:58:02责编:llp   来源:驱动管家     
  • phpwind论坛存在哪些漏洞?哪个漏洞最严重?

    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系统的电脑怎么查看无线网络?查看无线网络的步骤是什么?

    在Vista系统中只有先启动内置无线服务功能,才可以用系统自带的管理软件对无线网卡进行配置和管理。一、 启动系统内置无线网络服务功能1 右键点击“计算机”,选择“管理 ”。2 选择“服务和应用程序”---

    详情2018-01-14 11:53:56责编:llp   来源:驱动管家     
  • windows系统开机密码可以怎么破解?破解windows系统开机密码有哪些方法?

    windows系统开机密码可以怎么破解?破解windows系统开机密码有哪些方法?

    Windows系统开机密码从Windows 98开始就被人津津乐道,最早的密码保护可以用形同虚设来形容。直到后来的Windows 2000输入法漏洞,微软才意识到问题的严重性,而面对使用范围非常广泛的Windows XP系统来说,密

    详情2018-01-10 14:59:51责编:llp   来源:驱动管家     
  • 怎么入侵unix操作系统?unix操作系统的入侵步骤

    怎么入侵unix操作系统?unix操作系统的入侵步骤

    偶然的机会发现了一篇名为hacking unix的文章,大概看了看觉得价值十分的大,所以决定翻译出来,我觉得这篇文章一定能够成为中国unix黑客的基石 呵呵,也许有点夸大,不过等你看完了这篇文章以后,你的态度绝对会有

    详情2018-01-04 15:53:55责编:llp   来源:驱动管家     
  • sql server怎么加密?如何防范sql注入攻击?

    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注入?sql注入攻击的步骤

    SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没

    详情2018-01-15 09:51:58责编:llp   来源:驱动管家