ASP加密解密的原理是将换行/回车符替换成“琳”字,至于那个“输入一个-95~+95之间的数”是为了找一个手动的随机数,在解密的过程也可以用到。
先试用了一下:
我在C:做了个QQ.htm里面的内容是我的网站网址
程序代码
用44作为随机数加密后得到加密.asp
程序代码<%
hu="琳DDDZ4<86;4Z05琳"
execute(UnEncode(hu))
function UnEncode(temp)
but=44
for i = 1 to len(temp)
if mid(temp,i,1)<> "琳" then
If Asc(Mid(temp, i, 1)) < 32 or Asc(Mid(temp, i, 1)) > 126 Then
a = a & Chr(Asc(Mid(temp, i, 1)))
else
pk=asc(mid(temp,i,1))-but
if pk>126 then
pk=pk-95
elseif pk<32 then
pk=pk+95
end if
a=a&chr(pk)
end if
else
a=a&vbcrlf
end if
next
UnEncode=a
end function
%>
其实你把里面的“琳”全改成我的姓“淡”也是一样的功能:)
里面的代码 程序代码but=44就是前面输入的44喽。
再一细查,原来想关的理论早在2004年就有人发在《黑客X》了
为防那个网叶打不开也把内容摘录到本BLOG里~
现在知道了吧,微软的Script Encoder不保险,所以呢,我们要自己写一个程序出来“加壳”。
asp的execute函数是拿来执行字符串的,即是说可以把asp语句写成字符串,然后用execute来执行。比如这行代码:
execute("response.write(""hackerXfiles"")"),执行后的效果等同于执行response.write("hackerXfiles")。这里由
于execute函数里的东东是字符串,故遇到引号要双写。呵呵,既然execute里是字符串,那么我们就可以把里面的东东拿
来加密了。
怎么加密呢?呵呵,就用最简单的移位法好了。请看代码:
[/color] 程序代码but=1
cc=replace(nr,vbcrlf,"胡")
for i= 1 to len(cc)
if mid(cc,i,1)<>"胡" then
pk=asc(mid(cc,i,1))+but
if pk>126 then
pk=pk-95
elseif pk<32 then
pk=pk+95
end if
temp=temp&chr(pk)
else
temp=temp&"胡"
end if
next
temp=replace(temp,"""","""""")
response.write(temp)
这段代码就是asp下的循环移位法。那个变量but就是移位的位数,可修改。呵呵,怎么叫循环呢?因为程序会比较字符的
ascii码,当大于126或者小于32时就会处理,使范围在32~126之间。因为这样可以避免出现windows不能显示的字符。这
也是一开始就把回车换行符替换掉的原因。这里我自己写了一个移位加密的asp程序xor.asp附上,希望对你有帮助。
那就让我们来看看用上面代码把response.write("hackerXfiles")加密后的结果:“sftqpotf/xsjuf)
#ibdlfsYgjmft#*”,嘿嘿,这回神仙也看不懂了吧^_^
既然加了密,当然要解密啦,看解密代码:
程序代码function UnEncode(temp)
but=1 '这个是移位法所移的位数!注意修改此处与加密时使用的一致
for i =1 to len(temp)
if mid(temp,i,1)<>"胡" then
pk=asc(mid(temp,i,1))-but
if pk>126 then
pk=pk-95
elseif pk<32 then
pk=pk+95
end if
a=a&chr(pk)
else
a=a&vbcrlf
end if
next
UnEncode=a
end function
呵呵,现在知道怎么执行了吧,只需调用这个解密函数就是:execute(UnEncode("sftqpotf/xsjuf)#ibdlfsYgjmft#*"))