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#*"))