導航:首頁 > 文檔加密 > eval加密js怎麼運行

eval加密js怎麼運行

發布時間:2022-11-13 18:32:05

⑴ JS加密方法

本文一共介紹了七種方法:
一:最簡單的加密解密
二:轉義字元""的妙用
三:使用Microsoft出品的腳本編碼器Script Encoder來進行編碼 (自創簡單解碼)
四:任意添加NUL空字元(十六進制00H) (自創)
五:無用內容混亂以及換行空格TAB大法
六:自寫解密函數法
七:錯誤的利用 (自創)

在做網頁時(其實是網頁木馬呵呵),最讓人煩惱的是自己辛辛苦苦寫出來的客戶端IE運行的javaSCRIPT代碼常常被別人輕易的拷貝,實在讓自己的心裡有點不是滋味,要知道自己寫點東西也挺累的......^*^

但我們也應該清楚地認識到因為JAVASCRIPT代碼是在IE中解釋執行,要想絕對的保密是不可能的,我們要做的就是盡可能的增大拷貝者復制的難度,讓他知難而退(但願~!~),下面我結合自己這幾年來的實踐,及個人研究的心得,和大家一起來探討一下網頁中JAVASCRIPT代碼的加密解密技術。

以加密下面的JAVASCRIPT代碼為例:
<SCRIPT LANGUAGE="JavaScript">
alert("《黑客防線》");
</SCRIPT>

一:最簡單的加密解密

大家對於JAVASCRIPT函數escape()和unescape()想必是比較了解啦(很多網頁加密在用它們),分別是編碼和解碼字元串,比如例子代碼用escape()函數加密後變為如下格式:
alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

如何?還看的懂嗎?當然其中的ASCII字元"alert"並沒有被加密,如果願意我們可以寫點JAVASCRIPT代碼重新把它加密如下:
%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

呵呵!如何?這次是完全都加密了!

當然,這樣加密後的代碼是不能直接運行的,幸好還有eval(codeString)可用,這個函數的作用就是檢查JavaScript代碼並執行,必選項 codeString 參數是包含有效 JavaScript 代碼的字元串值,加上上面的解碼unescape(),加密後的結果如下:
<SCRIPT LANGUAGE="JavaScript">
var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");
eval(code)
</SCRIPT>

是不是很簡單?不要高興,解密也就同樣的簡單,解密代碼都擺給別人啦(unescape())!呵呵

二:轉義字元""的妙用

大家可能對轉義字元""不太熟悉,但對於JavaScript提供了一些特殊字元如:n (換行)、 r (回車)、' (單引號 )等應該是有所了解的吧?其實""後面還可以跟八進制或十六進制的數字,如字元"a"則可以表示為:"141"或"x61"(注意是小寫字元"x"),至於雙位元組字元如漢字"黑"則僅能用十六進製表示為"u9ED1"(注意是小寫字元"u"),其中字元"u"表示是雙位元組字元,根據這個原理例子代碼則可以表示為:

八進制轉義字元串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("")
</SCRIPT>

十六進制轉義字元串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("")
</SCRIPT>

這次沒有了解碼函數,因為JavaScript執行時會自行轉換,同樣解碼也是很簡單如下:
<SCRIPT LANGUAGE="JavaScript">
alert("")
</SCRIPT>

就會彈出對話框告訴你解密後的結果!

⑵ js中eval的使用問題

eval函數接收一個參數s,如果s不是字元串,則直接返回s。否則執行s語句。如果s語句執行結果是一個值,則返回此值,否則返回undefined。
樓主的例子裡面「123,456」是個字元串,所以作為語句執行。這又涉及到逗號運算符。
JavaScript中逗號運算符(,)是順序執行兩個表達式。
使用方法:expression1, expression2
其中expression1是任何錶達式。
expression2是任何錶達式。
JavaScript中逗號運算符, 運算符使它兩邊的表達式以從左到右的順序被執行,並獲得右邊表達式的值。
所以樓主的例子是將123和456作為2個表達式處理,最後返回的是456
-------------
去掉eval,或者用parseInt來從字元串提取數字

⑶ 介紹一點js加密的方法

一:最簡單的加密解密
大家對於JAVASCRIPT函數escape()和unescape()想必是比較了解啦(很多網頁加密在用它們),分別是編碼和解碼字元串,比如例子代碼用escape()函數加密後變為如下格式:
alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B
如何?還看的懂嗎?當然其中的ASCII字元"alert"並沒有被加密,如果願意我們可以寫點JAVASCRIPT代碼重新把它加密如下:
%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B
呵呵!如何?這次是完全都加密了!
當然,這樣加密後的代碼是不能直接運行的,幸好還有eval(codeString)可用,這個函數的作用就是檢查JavaScript代碼並執行,必選項 codeString 參數是包含有效 JavaScript 代碼的字元串值,加上上面的解碼unescape(),加密後的結果如下:
<SCRIPT LANGUAGE="JavaScript">
var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");
eval(code)
</SCRIPT>
是不是很簡單?不要高興,解密也就同樣的簡單,解密代碼都擺給別人啦(unescape())!呵呵

二:轉義字元"\"的妙用
大家可能對轉義字元"\"不太熟悉,但對於JavaScript提供了一些特殊字元如:\n (換行)、 \r (回車)、\' (單引號 )等應該是有所了解的吧?其實"\"後面還可以跟八進制或十六進制的數字,如字元"a"則可以表示為:"\141"或"\x61"(注意是小寫字元"x"),至於雙位元組字元如漢字"黑"則僅能用十六進製表示為"\u9ED1"(注意是小寫字元"u"),其中字元"u"表示是雙位元組字元,根據這個原理例子代碼則可以表示為:
八進制轉義字元串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("\141\154\145\162\164\50\42\u9ED1\u5BA2\u9632\u7EBF\42\51\73")
</SCRIPT>
十六進制轉義字元串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")
</SCRIPT>
這次沒有了解碼函數,因為JavaScript執行時會自行轉換,同樣解碼也是很簡單如下:
<SCRIPT LANGUAGE="JavaScript">
alert("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")
</SCRIPT>
就會彈出對話框告訴你解密後的結果!

⑷ C#對於 eval加密的JS 有什麼辦法解密獲取跳轉URL

給你個解密函數:
private string Eval(string stringjs)
{
string MyJs = "function Eval(code){code2=code.replace(/^eval/,'');return eval(code2);}";
object[] _params = new object[1];
_params[0] = stringjs;
MSScriptControl.ScriptControl js = new MSScriptControl.ScriptControl();
js.Language = "javascript";
js.AddCode(MyJs);
string result = js.Run("Eval", _params);//NET4.0以下為js.Run("Eval",ref _params).ToString();
return result;
}
~如果你認可我的回答,請及時點擊【採納為滿意回答】按鈕
~~手機提問的朋友在客戶端右上角評價點【滿意】即可。
~你的採納是我前進的動力
~~O(∩_∩)O,記得好評和採納,互相幫助,謝謝。

⑸ js混淆加密後 如何使用

js這種東西,加啥密,還是jq寫的,混淆肯定容易混出問題。
你再怎麼加瀏覽器都要解析出來能跑才行,瀏覽器能跑,就意味著很好解密。

⑹ JAVASCRIPT 里 EVAL的用法

eval顧名思義是執行語句的作用,在瀏覽器地址欄中輸入:
javascript:eval(1+2)
瀏覽器將以寫文檔流方式輸出3.
(有的系統刪除了javascript:協議已注冊的程序,則無法使用javascript:協議)

有時候遇到一個問題,比如說有10個radio元素,它們的ID都是以ye01,ye02,ye03來命名,那麼在循環語句中你就很難動態的取到對象的句柄,有了eval可以先把相同的字元串和01,02..先合並起來再執行後面的語句,就可以取到對象的句柄了.
如:
<script defer>
var a="ye";
b="1818";
c=eval(a+b);
alert(c.value);
</script>
<input id="ye1818" value="你好" />

eval是執行的意思,你把變數賦值這些都放在裡面是不合理的.

⑺ javascript中eval的用法

JavaScript eval() 函數

JavaScript 全局對象

定義和用法:

eval() 函數可計算某個字元串,並執行其中的的 JavaScript 代碼。

語法:

eval(string)

返回值:

通過計算 string 得到的值(如果有的話)。

說明:

該方法只接受原始字元串作為參數,如果 string 參數不是原始字元串,那麼該方法將不作任何改變地返回。因此請不要為 eval() 函數傳遞 String 對象來作為參數。

如果試圖覆蓋 eval 屬性或把 eval() 方法賦予另一個屬性,並通過該屬性調用它,則 ECMAScript 實現允許拋出一個 EvalError 異常。

拋出:

如果參數中沒有合法的表達式和語句,則拋出 SyntaxError 異常。

如果非法調用 eval(),則拋出 EvalError 異常。

如果傳遞給 eval() 的 Javascript 代碼生成了一個異常,eval() 將把該異常傳遞給調用者。

(7)eval加密js怎麼運行擴展閱讀:

調用eval函數的三種情況:

1、直接調用

直接調用時,eval函數相關的執行環境屬性ThisBinding,LexicalEnvironment,VariableEnvironment的值如下:

a) ThisBinding是調用eval函數時,調用方執行環境的ThisBinding

b) LexicalEnvironment是調用eval函數時,調用方執行環境的LexicalEnvironment

c) VariableEnvironemnt是調用eval函數時,調用方執行環境的VariableEnvironment

2、間接調用

所謂間接調用,即將eval賦值給另一個變數後在調用

3、嚴格模式下的eval

在嚴格模式下,eval的LexicalEnvironment,VariableEnvironment指向屬於eval自己的Lexcial Environment,而不是調用方的Lexical Environment,但是ThisBinding還是調用方的ThisBinding。

同時,在嚴格模式下如果eval直接調用,那麼eval的Lexical Environment的outer指針指向調用方的Lexical Environment,否則,如果是間接調用,那麼eval的Lexical Environment的outer指針指向全局環境的Lexical Environment。

參考資料來源:網路--eval()

⑻ 請清楚、明了地介紹一下js中eval的用法請不要復制十分感謝

最簡單的eval的例子:
s='3+5';
document.write(s,'=');
document.write(eval(s));
你能說出結果嗎?
結果是:
3+5=8
那麼eval是什麼?你試著說一下看。是不是把字元串變數或者常量,作為js的代碼進行解釋,請再回憶一下上面的例子,然後看了下面的例子你就算完全懂eval了:
s='alert(123)';
eval(s);
上面的代碼運行時,會彈出一個提示窗口,內容是123。

⑼ js加密後能在網頁中運行嗎怎麼運行

可以 運行的。加密之後你不需要做其它事情,同樣可以識別的。
http://zh-cn.bin2hex.com/javascript_compressor_obfuscator_encryption.html
這個工具可以加密。上面還有解密工具

⑽ C#對於 eval加密的JS 有什麼辦法解密獲取跳轉URL

解密後eval那段的原文如下(是一個解密函數):function uncodeStr(str){str=str.replace(/\^/g,"%");//把原來字元串里的~符號替換成%號var str_len=str.length-1;//後面數組循環時的最大下標var i;var encodeStr='';for(i=str_len;i>=0;i--){//這個循環是將密文倒轉過來encodeStr+=str.substr(i,1)}return decodeURI(encodeStr) //使用decodeURI解密}varaaa___就是獲取的uncodeStr函數運算後的結果。通過解密過程可以反推出加密過程如下:獲取需要字元串s使用encodeURI(s)將一些特定符號替換為編碼,如空格替換為%20,得到一個新的字元串將新的字元串反轉(第一位變為最後一位,第二位變為倒數第二位。。。。以此類推)將反轉後的字元串里的百分號(%)用波浪線替換後就得到密文了。

閱讀全文

與eval加密js怎麼運行相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151
伊克塞爾文檔怎麼進行加密 瀏覽:893
app轉賬是什麼 瀏覽:163