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