现在什么文件都要加密,exe文件是加壳,asp程序是加编码,碰到个加密的asp文件,因为涉及到个算法,所以用一个名叫 WEBfree_web.exe 进行解密了以后,通过算法来完成破解
解密后的oareg.asp加上算法说明:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
‘其实整个算法就是对主机名进行编码存放,用户名也参与编码,编码的处理就是对每个字符用指定的另一个字符串代替,当编码后的注册号与oarg.asp所存放的不一致时为未注册版,所以如果是已经注册的用户,更改任何一位用户名和注册码或者更换域名将导致显示为非注册用户。
‘下边为详细说明。

set file=server.createobject("scripting.FileSystemObject")
addr1=server.mappath("top1.asp")
addr2=server.mappath("oarg.asp")
If Not file.FileExists(addr1) or Not file.FileExists(addr2) Then//‘这个地方作者进行了判断,如果你把文件top1.asp和oarg.asp删除或改名了,这里就报错并关闭当前窗口。,别理它看后边。
response.write "<script LANGUAGE=‘javascript‘>alert(‘系统发生严重错误即将关闭!!!‘);window.close();</script>"
End If
%>
<!--#include file="oarg.asp"-->
<%
‘这里加载了oarg.asp内容
‘这个文件存放的是注册者的用户名和注册号
‘假设内容如下:
‘<%
‘dim zcn,zcv
‘zcn="okman"
‘zcv=16456787  % >
%>

<%
‘获取主机名
zj=Request.ServerVariables("SERVER_NAME")%>
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<title>注册程序</title>
<style>
td{font-size:9pt;line-height:160%}
body{font-size:9pt;line-height:160%}

a:link       { color: #0033CC; text-decoration: none }
a:visited    { color: #0033CC; text-decoration: none }
a:active     { color: #FF0000; text-decoration: none }
a:hover      { color: #000000; text-decoration: underline}
</style>
</head>
<body>
<div align="center">
  <center>
    <br>
    <table border="0" cellspacing="1" width="430" cellpadding="3" bgcolor="#E9E9E9">
        <tr>
          
        <td width="100%" bgcolor="#FFFFFF">
          <p align="center">感谢您使用BJX-OA网络办公系统!</p>
        </td>
        </tr>
      </table>
  </center>
</div><br>
<%
if request("type")="reg" then
if request("check")="yes" then
regname=Request("regname")&bjxroom
regcode=Request("regcode")

if request("regname")="" or request("regcode")="" then
response.write("<script language=vbscript>msgbox ""注册失败:用户名和注册码不能为空!""</script>")
error="yes"
elseif len(regcode)>20 then
response.write("<script language=vbscript>msgbox ""注册失败:注册码不能多于20个字符!""</script>")
elseif IsNumeric(regcode)=false then
response.write("<script language=vbscript>msgbox ""注册失败:注册码只能是数字!""</script>")
else

zj=Request.ServerVariables("SERVER_NAME")
‘假设将本程序放到了绑定的域名为:www.okman.cn 空间上,则
‘zj=www.okman.cn
zj=left(replace(zj,"www.",""),6)
‘zj=okman.      ‘去除www.  同时从左开始取出6位,下边用代码替换每一个字符
zj=replace(zj,"0","a")
zj=replace(zj,"1","b")
zj=replace(zj,"2","c")
zj=replace(zj,"3","d")
zj=replace(zj,"4","e")
zj=replace(zj,"5","f")
zj=replace(zj,"6","g")
zj=replace(zj,"7","h")
zj=replace(zj,"8","i")
zj=replace(zj,"9","j")
zj=replace(zj,"a","40")‘zj=okm40n
zj=replace(zj,"b","41")
zj=replace(zj,"c","52")
zj=replace(zj,"d","53")
zj=replace(zj,"e","64")
zj=replace(zj,"f","65")
zj=replace(zj,"g","76")
zj=replace(zj,"h","77")
zj=replace(zj,"i","88")
zj=replace(zj,"j","89")
zj=replace(zj,"k","20")‘zj=o20m40n
zj=replace(zj,"l","21")
zj=replace(zj,"m","22")‘zj=o202240n
zj=replace(zj,"n","23")‘zj=o20224023
zj=replace(zj,"o","24")‘zj=2420224023
zj=replace(zj,"p","25")
zj=replace(zj,"q","26")
zj=replace(zj,"r","27")
zj=replace(zj,"s","28")
zj=replace(zj,"t","29")
zj=replace(zj,"u","30")
zj=replace(zj,"v","31")
zj=replace(zj,"w","32")
zj=replace(zj,"x","33")
zj=replace(zj,"y","34")
zj=replace(zj,"z","35")
zj=replace(zj,"-","36")
zj=replace(zj,".","37")‘zj=242022402337
  ‘当前zj值为:242022402337
yzcv=zj*(len(zj)+len(zcn&"bjxroom201314"))
  ‘用上边的值代入公式即为:
  ‘yzcv=242022402337*(len(242022402337)+len("okman"&"bjxroom201324")
  ‘yzcv=242022402337*(12+18)
  ‘yzcv=7260672070110
  ‘下边每次减掉100 0000 0000,直到yzcv<=10000000000
Do While yzcv>10000000000
yzcv=yzcv-10000000000
loop
‘结果为:与预存的变量zcv值不等,则是非注册用户
‘yzcv=67207011

regcode=regcode+0
‘加0忽略
‘  // 看这里,下边有一句:if yzcv=regcode then当yzcv和regcode的值相等时就可以成功注册了,再看上边,regcode是用户输入并返回来的值,那yzcv是什么呢?不管是什么都应该使得用户的注册码与它相等才对,这里是作者根据用户的域名加上自己的算法将其加密后生成的字符串。因此,只需要这句if语句前加上两句:
‘response.write "注册码是:" & yzcv
‘response.end
‘再运行本页,呵呵出来了吧,网页上会显示出一段数字,这就是注册码!记下来,再删除添加的这两句,注册去吧。
‘下边的代码不看也罢了....
if yzcv=regcode then  
‘如果yzcv=regcode则是正确的注册码

dim fso,ts1
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set TS1 = FSO.CreateTextFile(Server.MapPath("oarg.asp"), True)
‘chr(37)  %   chr(13) 回车换行  chr(34) "    
TS1.write "<"&chr(37)&"dim zcn,zcv"&chr(13)&"zcn="&chr(34)®name&chr(34)&chr(13)&"zcv="®code&chr(37)&">"
Set TS1 = Nothing
Set FSO = Nothing
response.write("<script>alert(‘注册成攻:!!!恭喜!!!您所填写的信息已成功注册!‘);location.href=‘oareg.asp‘</script>")
response.end
else
response.write("<script language=vbscript>msgbox ""注册失败:用户名或注册码错误!""</script>")
end if
end if
end if
%>
      <div align="center">
        <center>
    <form action="oareg.asp?type=reg&check=yes" method="post">
      <table border="0" cellPadding="3" cellSpacing="1" bgcolor="#E9E9E9">
        <tr>
          <td bgcolor="#FFFFFF" colspan="4"><iframe name=bjx4 marginwidth=0 marginheight=0 src="copyright.htm" frameborder=0 scrolling="auto"  width=100% height=160></iframe>  </td>
        </tr>
        <tr>
          <td bgcolor="#FFFFFF" colspan="4">    
                  <input name="c" type="radio" onClick="S1.disabled=false;" id="c1">
                  <label for="c1">同意协议</label>
                  <input name="c" type="radio" checked onClick="S1.disabled=true;" id="c2">
                  <label for="c2">不同意协议</label></td>
        </tr>
        <tr>
          <td bgcolor="#FFFFFF">用户名:</td>
          <td bgcolor="#FFFFFF">
            <input name="regname" size="20">
          </td>
          <td bgcolor="#FFFFFF">注册号:</td>
          <td bgcolor="#FFFFFF">
            <input name="regcode" size="20">
          </td>
        </tr>
      </table>
  <p><input name="S1" type="submit" value=" 注册到您的服务器<%=zj%>上 " disabled></p>
  </form>
        </center>
      </div>
      <center>
      
      <table border="0" cellspacing="1" width="430" cellpadding="2" bgcolor="#E9E9E9">
        <tr>
          
      <td width="100%" bgcolor="#FFFFFF"> 获得注册号(购买程序)请联系作者: 邹小周(网络用名:伴江行)。<br>
        E-mail:<a href="mailto:bjxoa@21cn.com">bjxoa@21cn.com</a> <a href="mailto:bjxoa@bjxroom.net ">bjxoa@bjxroom.net </a>
        <p>或在线联系QQ:******;或发短信给手机:****** [索取注册码]</p>
        </td>
        </tr>
      
      </table>
      </center>
<%else%>

<%
‘看:这里作者用了同样的办法对主机名进行编码,其实算法和上边一样,可为什么不用一个函数来处理呢?估计作者的用意是为了让代码更多,达到“迷惑”的目的
zj=Request.ServerVariables("SERVER_NAME")
‘假设将本程序放到了绑定的域名为:www.okman.cn 空间上,则
‘zj=www.okman.cn
zj=left(replace(zj,"www.",""),6)
‘zj=okman.      ‘去除www.  同时从左开始取出6位,下边用代码替换每一个字符
zj=replace(zj,"0","a")
zj=replace(zj,"1","b")
zj=replace(zj,"2","c")
zj=replace(zj,"3","d")
zj=replace(zj,"4","e")
zj=replace(zj,"5","f")
zj=replace(zj,"6","g")
zj=replace(zj,"7","h")
zj=replace(zj,"8","i")
zj=replace(zj,"9","j")
zj=replace(zj,"a","40")‘zj=okm40n
zj=replace(zj,"b","41")
zj=replace(zj,"c","52")
zj=replace(zj,"d","53")
zj=replace(zj,"e","64")
zj=replace(zj,"f","65")
zj=replace(zj,"g","76")
zj=replace(zj,"h","77")
zj=replace(zj,"i","88")
zj=replace(zj,"j","89")
zj=replace(zj,"k","20")‘zj=o20m40n
zj=replace(zj,"l","21")
zj=replace(zj,"m","22")‘zj=o202240n
zj=replace(zj,"n","23")‘zj=o20224023
zj=replace(zj,"o","24")‘zj=2420224023
zj=replace(zj,"p","25")
zj=replace(zj,"q","26")
zj=replace(zj,"r","27")
zj=replace(zj,"s","28")
zj=replace(zj,"t","29")
zj=replace(zj,"u","30")
zj=replace(zj,"v","31")
zj=replace(zj,"w","32")
zj=replace(zj,"x","33")
zj=replace(zj,"y","34")
zj=replace(zj,"z","35")
zj=replace(zj,"-","36")
zj=replace(zj,".","37")‘zj=242022402337
  ‘当前zj值为:242022402337
yzcv=zj*(len(zj)+len(zcn&"bjxroom201314"))
  ‘用上边的值代入公式即为:
  ‘yzcv=242022402337*(len(242022402337)+len("okman"&"bjxroom201324")
  ‘yzcv=242022402337*(12+18)
  ‘yzcv=7260672070110
  ‘下边每次减掉100 0000 0000,直到yzcv<=10000000000
Do While yzcv>10000000000
yzcv=yzcv-10000000000
loop
‘结果为:
‘yzcv=67207011

regcode=regcode+0
‘加0忽略
‘yzcv=67207011
‘下边判断是不是与预存的文件中的zcv一样,如果不正确则
if zcv<>yzcv then%>
<script language=vbscript>
aaa=msgbox("系统检测到您所使用的是未注册版本!"&chr(13)&"该版本功能受到限制,"&chr(13)&"如果您想得到所有功能,请注册!"&chr(13)&"是否注册?",vbOKOnly)
if aaa=1 then window.location = "oareg.asp?type=reg"
</script>
<%end if%>
<div align="center">
  <center>
      <table border="0" cellspacing="1" width="430" cellpadding="3" bgcolor="#E9E9E9">
        <tr>
          <td width="100%" bgcolor="#FFFFFF">
          <p align="center">本程序大部份文件加密,不允许作任何修改,皆因盗版严重,请见谅!</p>
          <p align="center">需要修改什么的请与 伴江行 联系</p>  
          <p align="center">手机:******QQ:******</p>
          <p align="center">E-mail:<a href="mailto:bjxoa@21cn.com">bjxoa@21cn.com</a>
            <a href="mailto:bjxoa@bjxroom.net ">bjxoa@bjxroom.net </a> </p>  
          <p align="center">如你在使用程序中有什么问题或好的建议欢迎随时与伴江行联系</p>
          <p align="center">如您需要增加一些功能或者是升级请与我联系,欢迎咨询!<br>
          <br>
          - 请支持正版 -</td>    
        </tr>
      </table>
  </center>
</div>
<%end if%>
<br>
   <div align="center">
    <center>
      <table border="0" cellspacing="1" width="430" cellpadding="3" bgcolor="#E9E9E9">
        <% if zcv<>yzcv then%>
  <tr>  
        <td width="100%" bgcolor="#FFFFFF">
          <p align="center">程序制作:<font color="#FF0000">伴江行</font> 授权予:<font color="#FF0000">未注册</font> 
            注册号:<font color="#FF0000">未注册</font>
            
              [<a href="oareg.asp?type=reg"><font color="#0000FF">注册程序</font></a>]
          
        </td>    
        </tr>
   <%else%>
  <tr>  
        <td width="100%" bgcolor="#FFFFFF">
          <p align="center">程序制作:<font color="#FF0000">伴江行</font> 授权予:<font color="#FF0000"><%=zcn%></font> 
            注册号:<font color="#FF0000"><%=zcv%></font>
          
        </td>    
        </tr>  
   <%end if%>
      </table>
    </center>
</div>
</body>
</html>

posted on 2010-04-08 01:23  sn_wolf  阅读(7886)  评论(0编辑  收藏  举报