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

什么是暴力破解?分析暴力破解的原理

2018-01-24 09:03:44责编:llp   来源:驱动管家     人气:

不可不说一下学习破解的三个阶段:

初级,修改程序,用ultraedit等工具修改exe文件,称暴力破解,简称爆破。

中级,追出软件的注册码。

高级,写出注册机。

先说这爆破。所谓爆破,就是指通过修改可执行文件的源文件,来达到相应的目的。你不明白?呵呵,举个例子好了,比如说某共享软件,它比较用户输入的注册码,如果用户输入的,跟它通过用户名(或其它)算出来的注册码相等的话(也就是说用户输入的注册码正确了),那么它就会跳到注册成功的地方去,否则就跳到出错的地方去。

什么是暴力破解?分析暴力破解的原理

明白过来了吧,我们只要找到这个跳转指令,把它修改为我们需要的“造型”,这样,我们是不是就可以为所欲为了?

常见的修改方法有两种,我给你举例说明:

no.1

在某软件中,这样来进行注册:

00451239 CALL 00405E02 (关键CALL,用来判断用户输入的注册码是否正确)

  0045123D JZ 004572E6 (!!!<--此为关键跳转,如果用户输入的注册码正确,就跳向成功处,即004572E6处)

0045XXXX YYYYYYYYYY

XXXXXXXX YYYYYYYYYY

XXXXXXXX YYYYYYYYYY

XXXXXXXX 执行到此处,就提示用户注册失败

..提示用户注册码不正确等相关信息

...

004572E6 ... <--(注册成功处!!!)

...提示用户注册成功等相关信息

呵呵,看明白了吗?没有的话,我来给你讲一下。在软件执行到00451239处的时候,CALL置0045E02处来进行注册码判断。接着回来后就来一个跳转语句,即如果用户输入的注册码正确就跳到004572E6处,跳到此处,就算是注册成功了。如果用户输入的注册码不正确的话,那么就不会在0045123D处进行跳转,而一直执行下去。在下面等它的,是注册失败部分。

想明白了吗?嘿嘿...没错,我们只要把那个关键跳转JZ给改为JNZ(如果用户输入的注册码错误,就注册成功,输入正确则注册失败)。当然你也可以将JNZ修改为Jmp,这样的话,你输入的注册码无论正确与否。都可以注册成功。

no.2

我们再来讲一下另外的一种情况:

00451239 CALL 00405E02 (关键CALL,用来判断用户输入的注册码是否正确)

0045123D JNZ 004572E6 (!!!<--此为关键跳转,如果用户输入的注册码不正确,就跳向失败处,即004572E6处)

0045XXXX YYYYYYYYYY

XXXXXXXX YYYYYYYYYY

XXXXXXXX YYYYYYYYYY

XXXXXXXX 执行到此处,就提示用户注册成功

...提示用户注册成功等相关信息

...

004572E6 ... <--(注册失败处!!!)

...提示用户注册码不正确等相关信息

你一定看出跟第一种情况不同的地方了吧。没错!它与第一种不同的,就是第一种情况是如果注册码正确,就跳到注册成功处,如果没有跳走,就会执行到失败处。而这一种情况则是如果注册码不正确,就跳到注册失败处,否则将执行到注册成功处。

这种情况的修改,除了把JNZ改为JZ外,还可以将其改为Nop,Nop这个指令没有任何意义,将该条指令修改为Nop后,便可随意输入注册码来进行注册了。

原理以经给你讲了,下面我们再来讲一下具体的修改办法吧。

先说一下虚拟地址和偏移量转换的问题,在SoftICE和W32Dasm下显示的地址值是所谓的内存地址(memory offset),或称之为虚拟地址(Virual Address,VA)。

而十六进制工具里,如:Hiew、Hex Workshop等显示的地址就是文件地址,称之为偏移量(File offset) 或物理地址(RAW offset)。

所以当我们要通过那些十六进制工具来对可执行文件中的相应指令进行修改的话,先要找到它的File offset。我们没有必要去使用那些专门的转换工具,在W32Dasm中就有这个功能,比如说你W32Dasm中来到0045123D处,在W32Dasm界面下方的状态栏中就会出现该条指令的虚拟地址和偏移地址,即@:0045123D @offset 0005063Dh 后面的这个0005063Dh就是相应的偏移地址。我们得到该地址后,便可用UltraEdit等十六进制工具来对可执行文件进行修改了。比如使用UltraEdit,你先用UltraEdit打开该可执行文件,然后按Ctrl G,接着输入你得到的偏移地址,就可以来到其相应的机器码处。

再给你讲一下机器码,所谓的机器码。就是你看到的那些个十六进制数据了。还记的它们与汇编指令是一一对应的吗?

以下这几个是爆破时要用到的,其它的如果感兴趣,可自行查看相关资料:

JZ=74;JNZ=75;JMP=EB;Nop=90

爆破的时候,只要对以上机器码进行相应的修改就行了,比如第一种情况的时候,可以将74修改为EB,即将JZ修改为JMP。而第二种情况,责需将75修改为90,即将JNZ修改为Nop。

上边讲了爆破的原理,你需要明白的是。爆破只是你学习Crack的开始,是很简单的手段。刚入门的时候可以玩玩儿,但希望你不要就此不前!

其实要找到注册码并不是一件多么难的事,我是指你所针对的软件不太那个的时候 不过你无需惧怕。

刚才我们说爆破的时候不提到过关键CALL吗?一般情况下,这个关键CALL就是对两个注册码(一个是软件自身通过你的注册名或机器什么的计算出来的正确的注册码,令一个就是你输入的错误的注册码)进行比较。我前边提到过,CALL之前一般会把所用到的数据先放到一个地方,CALL过去的时候再从这些地方把先前放入的数据取出来,进行相应的处理。这个关键CALL也是这样,在CALL之前,一般会把那两个注册码放到堆栈或某个寄存器中。嘿嘿,我们只要在调试器中,单步执行到该CALL,在未进去之前通过CALL之前的指令判断其将正确的和不正确的注册码放到哪里了。然后再用相应指令进行查看就成了,我说过不难的。

下面列出两个最常见的情况:

no.1

mov eax [ ] 这里可以是地址,也可以是其它寄存器

mov edx [ ] 同上,该条指令也可以是pop edx

call 00?????? 关键call

test eax eax

jz(jnz)或jne(je) 关键跳转

看明白了吧,在关键CALL之前,软件会把两个注册码分别放入eax和edx中,你只要在CALL处下d eax或d edx就能看到正确的注册码了。

no.2

mov eax [ ] 这里可以是地址,也可以是其它寄存器

mov edx [ ] 同上,该条指令也可以是pop edx

call 00?????? 关键call

jne(je) 关键跳转

以上两种情况最为常见,而那些个不太常见的情况,我们这里就不再提了。到下下一章的时候,我会给你讲相关方法的...

关于查找软件注册码的部分,就到这里。具体内容,下下一章咱们再说。(不是说了吗?我以经可以接到你的砖头了,干嘛还要丢呢? )

最后,再来说最后的所谓的高级阶段,如果你相信自己。并且热爱Crack,那么你一定会熬到这个阶段的,只是时间因人而异。

其实分析软件的算法,是有好多技巧在里面的。呵呵,最起码我刚开始的时候就摸不着头脑,那么多CALL,每个看起来,都很重要,都追一遍?结果连好多API都被追了进去。等你自己真正用心分析了一个软件的算法,并写出了注册机后。你就会明白其中的道理了。

  • 安装vista系统的电脑怎么查看无线网络?查看无线网络的步骤是什么?

    安装vista系统的电脑怎么查看无线网络?查看无线网络的步骤是什么?

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

    详情2018-01-14 11:53:56责编:llp   来源:驱动管家     
  • 自动sql射入工具sqlmap注入技巧介绍

    自动sql射入工具sqlmap注入技巧介绍

    sqlmap 是一个自动SQL 射入工具。本文收集了一些利用Sqlmap做注入测试的TIPS,其中也包含一点绕WAF的技巧,便于大家集中查阅,欢迎补充、分享。TIP1当我们注射的时候,判断注入http: site script?id=10 http:

    详情2018-01-22 10:11:07责编:llp   来源:驱动管家     
  • 大部分被黑网站根源在于该网站有隐藏的后门脚本

    大部分被黑网站根源在于该网站有隐藏的后门脚本

    你的网站为什么被黑了?经过网络安全公司Sucuri的安全专家的调查,有大约68%的被黑网站存在着隐藏的后门backdoor脚本。这些后门脚本就是为入侵者提供的秘密通道,即使管理员改变安全口令或更新了安全补丁,只要没

    详情2018-01-19 14:07:30责编:llp   来源:驱动管家     
  • 避免漏洞暴露被入侵后台,必须隐藏nginx版本号

    避免漏洞暴露被入侵后台,必须隐藏nginx版本号

    出于安全考虑,决定隐藏nginx的版本号。因为暴漏了版本号,也就相当于告诉了别人你的漏洞,别人可以通过这个版本所对应的漏洞利用程序来入侵你的后台。就像我知道你的操作系统内核版本为2 6 18或者我知道了你apac

    详情2018-01-14 16:58:47责编:llp   来源:驱动管家     
  • oracle数据库教程 电脑高手入侵oracle数据库有哪些常用的命令?

    oracle数据库教程 电脑高手入侵oracle数据库有哪些常用的命令?

    最近遇到一个使用了Oracle数据库的服务器,在狂学Oracle 请教高手后终于搞到了网站后台管理界面的所有用户密码。我发现Oracle操作起来真是太麻烦,为了兄弟们以后少走些弯路,我把入侵当中必需的命令整理出来。1

    详情2018-01-13 20:02:40责编:llp   来源:驱动管家     
  • unbelievable!dedecms模板被植入一句话木马

    unbelievable!dedecms模板被植入一句话木马

    应该是前几天出的那个dedecms的0day 官方的网站被日,然后被在风格模板里面值入了一句话木马。XXOO。

    详情2018-01-14 16:04:54责编:llp   来源:驱动管家     
  • 路由器怎么设置才可以防止arp攻击?这里有防止arp攻击教程

    路由器怎么设置才可以防止arp攻击?这里有防止arp攻击教程

    第一步:打开网吧路由器的管理界面,在左侧的菜单中可以看到:“IP与MAC绑定”,在该项来设置IP和MAC绑定。第二步:打开“静态ARP绑定设置”窗口如下:注意:默认情况下ARP绑定功能是关闭,请选中启用后,点击保

    详情2018-01-23 14:45:41责编:llp   来源:驱动管家     
  • jsp网站存在哪些问题?jsp网站怎么入侵?

    jsp网站存在哪些问题?jsp网站怎么入侵?

    在用JSP制作的电子商务网站多如牛毛。但是对于JSP网站而言,安全性真的能够让人放心吗?面对层出不穷的黑客攻击和病毒袭击,JSP网站的服务器能够比其他网站的服务器器更加安全吗?前段时间,应朋友之邀,我对他们

    详情2018-01-18 08:52:50责编:llp   来源:驱动管家     
  • 域名服务器的欺骗技术 域名服务器的欺骗原理

    域名服务器的欺骗技术 域名服务器的欺骗原理

    概述:什么是DNS欺骗?DNS欺骗是一门改变DNS原始指向IP的艺术。为了更好的理解,让我们先来看一个例子。如果你想用浏览器去google搜索一些信息,毫无疑问的你会在地址栏里输入www google com的网址然后回车。那么

    详情2018-01-09 19:14:07责编:llp   来源:驱动管家     
  • 验证码识别的原理是什么?验证码识别怎么破解?

    验证码识别的原理是什么?验证码识别怎么破解?

    对于比较复杂的验证码,比如DZ论坛最新的验证码,处理起来相对麻烦一些,但是原理还是和普通的识别一样的,无非多了个背景处理的方案,看如下对DZ论坛的验证码的识别的思路首先我们要去除它的背景,对于这样稍微

    详情2018-01-03 13:52:23责编:llp   来源:驱动管家