js代碼解密代碼
更新時間:2008年06月25日 21:21:27 作者:
在做網(wǎng)頁時(其實是網(wǎng)頁木馬呵呵),最讓人煩惱的是自己辛辛苦苦寫出來的客戶端IE運行的JAVASCRIPT代碼常常被別人輕易的拷貝,實在讓自己的心里有點不是滋味,要知道自己寫點東西也挺累的
五:無用內(nèi)容混亂以及換行空格TAB大法
在JAVASCRIPT代碼中我們可以加入大量的無用字符串或數(shù)字,以及無用代碼和注釋內(nèi)容等等,使真正的有用代碼埋沒在其中,并把有用的代碼中能加入換行、空格、TAB的地方加入大量換行、空格、TAB,并可以把正常的字符串用"\"來進行換行,這樣就會使得代碼難以看懂!如我加密后的形式如下:
<SCRIPT LANGUAGE="JavaScript">
"xajgxsadffgds";1234567890
625623216;var $=0;alert//@$%%&*()(&(^%^
//cctv function//
(//hhsaasajx xc
/*
asjgdsgu*/
"黑\
\
客\
防線"http://ashjgfgf
/*
@#%$^&%667r45fggbhytjty
*/
//window
)
;"#@$#%@#432hu";212351436
</SCRIPT>
至少如果我看到這樣的代碼是不會有心思去分析它的,你哪?
六:自寫解密函數(shù)法
這個方法和一、二差不多,只不過是自己寫個函數(shù)對代碼進行解密,很多VBS病毒使用這種方法對自身進行加密,來防止特征碼掃描!下面是我寫的一個簡單的加密解密函數(shù),
加密代碼如下(詳細參照文件"加密.htm"):
<SCRIPT LANGUAGE="JavaScript">
function compile(code)
{
var c=String.fromCharCode(code.charCodeAt(0)+code.length);
for(var i=1;i<code.length;i++){
c+=String.fromCharCode(code.charCodeAt(i)+code.charCodeAt(i-1));
}
alert(escape(c));
}
compile('alert("《黑客防線》");')
</SCRIPT>
運行得到加密結(jié)果為:
o%CD%D1%D7%E6%9CJ%u9EF3%uFA73%uF1D4%u14F1%u7EE1Kd
相應(yīng)的加密后解密的代碼如下:
<SCRIPT LANGUAGE="JavaScript">
function uncompile(code)
{
code=unescape(code);
var c=String.fromCharCode(code.charCodeAt(0)-code.length);
for(var i=1;i<code.length;i++){
c+=String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i-1));
}
return c;
}
eval(uncompile("o%CD%D1%D7%E6%9CJ%u9EF3%uFA73%uF1D4%u14F1%u7EE1Kd"));
</SCRIPT>
七:錯誤的利用
利用try{}catch(e){}結(jié)構(gòu)對代碼進行測試解密,雖然這個想法很好(呵呵,夸夸自己),因為實用性不大,我僅給個例子
<SCRIPT LANGUAGE="JavaScript">
var a='alert("《黑客防線》");';
var c="";
for(var i=0;i<a.length;i++){
c+=String.fromCharCode(a.charCodeAt(i)^61);}
alert(c);
//上面的是加密代碼,當(dāng)然如果真正使用這個方法時,不會把加密寫上的
//現(xiàn)在變量c就是加密后的代碼
//下面的函數(shù)t()先假設(shè)初始密碼為0,解密執(zhí)行,
//遇到錯誤則把密碼加1,然后接著解密執(zhí)行,直到正確運行
var d=c; //保存加密后的代碼
var b=0; //假定初始密碼為0
t();
function t(){
try{eval(c);}catch(e){
c="";
for(var i=0;i<d.length;i++){
c+=String.fromCharCode(d.charCodeAt(i)^b);}
b+=1;
t();
//setTimeout("t()",0);
}
}
</SCRIPT>
相關(guān)文章
Bootstrap Table從服務(wù)器加載數(shù)據(jù)進行顯示的實現(xiàn)方法
Bootstrap-Table是一個Boostrap的表格插件,能夠?qū)SON數(shù)據(jù)直接顯示在表格中。接下來通過本文給大家分享Bootstrap Table從服務(wù)器加載數(shù)據(jù)進行顯示的實現(xiàn)方法,感興趣的朋友一起看看吧2016-09-09
javascript實現(xiàn)頁面刷新時自動清空表單并選中的方法
這篇文章主要介紹了javascript實現(xiàn)頁面刷新時自動清空表單并選中的方法,涉及javascript中reset與focus方法的相關(guān)使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
webpack5的entry和output配置小白學(xué)習(xí)
這篇文章主要為大家介紹了webpack5的entry和output使用配置小白學(xué)習(xí)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05
javascript實現(xiàn)網(wǎng)頁字符定位的方法
這篇文章主要介紹了javascript實現(xiàn)網(wǎng)頁字符定位的方法,實例分析了javascript頁面元素查找與定位的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
關(guān)于JavaScript中的this指向問題總結(jié)篇
在小編面試過程中經(jīng)常會遇到j(luò)avascript中this指向問題,可以說是前端面試必問,下面小編給大家總結(jié)了一下js中this的指向,感興趣的朋友一起學(xué)習(xí)吧2017-07-07
根據(jù)user-agent判斷蜘蛛代碼黑帽跳轉(zhuǎn)代碼(js版與php版本)
這篇文章主要介紹了根據(jù)user-agent判斷蜘蛛代碼黑帽跳轉(zhuǎn)代碼(js版與php版本),需要的朋友可以參考下2015-09-09

