国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

JS腳本混淆、加密討論第1/2頁

2024-09-06 12:42:25
字體:
來源:轉載
供稿:網友
新年新氣象!好好研究一把自己關心的專項問題。感興趣的兄弟們請務必踴躍發言。

首先,我拋磚引玉了。

“混淆”也好,“加密”也好,都是為了加強代碼的安全性,防范被人任意查看,在一定程度上保護資源。

請大家注意,在本主題的標題上,我把“混淆”、“加密”這兩個概念堆在一起了,為的是從實現目的的角度著眼,從實踐的角度著手,不主觀地排斥任何手段。所有“混淆”技巧都是為了降低代碼的可讀性;所有“加密”技巧都是要通過“解密”計算過程將代碼還原以后才能執行。

但是,把“混淆|加密”和在一起討論,并不意味著我們要把概念搞混,在這里為了預防接下來的討論中發生因概念不清而導致偏離主題,在先說明我們這里所討論的范疇不包含代碼的encode編碼形式(<script language="JScript.Encode">)。這個既非“混淆”,也非“加密”,而是“編碼”,相應的解碼過程早為業界所熟悉,因而沒有多大的保護意義,最多只是讓人多費一道手續而已。當然我們可以把它當作“混淆|加密”的最后一步,目的為了唬住不了解它的人或者讓了解的人多費一道手續。與此類似的,單純使用escape或encodeURI方法進行編碼也就不用再說了,當然作為步驟使用這些編碼方法都是無可厚非的。

理想的“混淆|加密”應該具有以下特點:
1、沒有確定的破解模式;

2、很難編制自動破解程序(只能手工破解);

3、破解過程繁瑣、耗時;

4、“混淆|加密”后的代碼,比原始代碼長度增加少;
容易想象得出,如果沒有第4條的限制,那么前三條是很容易實現的,只要瘋狂地添加與代碼執行部分無關的字符就可以了。

以上四條是最基本的要求。至于“使人眼從主觀上感覺混亂”可以認為是第3條的一個實現方式,恢復代碼可讀性可能是破解過程的主要工作內容之一。

接下來,我希望大家一起來總結一下現有的“混淆|加密”技巧,以作為我們進一步研究的基礎。任何個人的見識終歸總是有限的,唯有請大家集思廣益才能真正有所突破、建樹經典。

見過這樣一些“混淆|加密”技巧:


1、去除縮進、空行、換行、注釋

這個是混淆的基本手段,太基本了,不想多說。可以縮短代碼。一般根據“;”所在,恢復換行是最常規的破解技巧。


2、變量名替換

將 JavaScript 文件中所有的變量名替換為一組合法的隨機字符串,使其失去自我描述的能力,從而干擾閱讀。

替換方式大概有“縮短”和“改亂”這兩種。

舉例:http://pub.idr.gov.cn/dujid/projects/jsdisturber/  這個是改亂的

有一個叫做Javascript Obfuscator的軟件,充斥在大大小小的軟件下載站上,各位或許用過也說不定。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平山县| 赣州市| 依安县| 琼海市| 婺源县| 安图县| 特克斯县| 九龙城区| 雅安市| 健康| 新昌县| 本溪| 宜兴市| 施甸县| 内黄县| 永宁县| 孝义市| 长丰县| 夏津县| 柳州市| 平潭县| 如皋市| 望奎县| 上犹县| 鄂托克旗| 昌图县| 义马市| 手游| 当雄县| 济阳县| 潼南县| 厦门市| 揭阳市| 延川县| 鄄城县| 江西省| 育儿| 桃园市| 吉隆县| 高唐县| 平陆县|