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

首頁 > 語言 > JavaScript > 正文

解javascript 混淆加密收藏

2024-05-06 14:16:14
字體:
來源:轉載
供稿:網友
直接手工解密,比想象中的要簡單不少,花了不到半個小時就搞出來了。
Js解混淆最關鍵的部分:
l eval或者document.write、VBS的EXECUTE、execScript之類的可以運行js的函數
l unescape
js的混淆一般有幾種方法:
1. 把代碼通過escape轉換成hex形式的代碼,讓人看不懂
2. 把代碼進行簡單的可逆加密,然后提供一個解密函數,通過解密函數把代碼解出來,并用eval之類的調用將代碼串交給js引擎運行。
3. 過濾掉代碼中的注釋和空格,修改js代碼中的內部函數/內部變量的名稱,修改成非常難懂的數字或者很容易混淆的串比如數字0和字母O混合的串,讓人很難辨認。
高級一點的辦法,自然是把以上幾個方法結合起來使用。
因此,還原的辦法就是
1.把可見的%XX的字符串用unescape解出來
2.找到eval或者類似的解釋函數入口
3.把傳入eval的參數字符串找出來
4.如果這些字符串也是hex形式的,用unescape解出來
5.循環2-4的過程,直到找出所有的代碼
6.這個時候很可能會發現還有一些變量在解出來的函數中使用,并且這些變量是一些大字符串,這種情況下,這些字符串應該就是被加密了的源碼了。在使用他們的函數的最后的適當位置插入代碼,顯示出他們解密后的字符串,即可得源碼。
這里面最需要注意的就是要看清楚變量名稱,解密部分的代碼很多都是通過類似000O、0O00之類的名稱相加而成的,看清楚這些變量的真正名稱。
注意要保留函數和變量聲明和定義的順序,避免由于移動位置而導致找不到函數或變量。
另外,混淆工具還會在代碼里面添加不少垃圾代碼,可以刪除之。
如果更強一點的混淆工具,還可以在產生的類似垃圾代碼的代碼中插入一些有用的代碼,用于為下面緊接著的亂碼函數提供一些變量,比如解密的key之類,因此要注意不能打亂代碼的順序,如果確認不了是不是垃圾代碼,留著先。
看上去方法3最簡單也最弱智,但實際上這個方法對我們的影響卻最大,嘗試閱讀沒有注釋、格式混亂并且有著一堆亂七八糟名稱的標識符的代碼,對任何一個正常人來講都是噩夢。不過估計是因為“內部”這個標準不太好判斷,有些混淆工具并不提供這樣的功能。
另:解網頁加密
在地址欄或按Ctrl+O,輸入:
代碼如下:
javascript:s=document.documentElement.outerHTML;document.write('<body></body>');document.body.innerText=s;

源代碼就出來了。不論加密如何復雜,最終都要還原成瀏覽器可以解析的html代碼,而documentElement.outerHTML正是最終的結果。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 辽中县| 睢宁县| 正镶白旗| 自贡市| 甘德县| 新乐市| 繁昌县| 且末县| 平顺县| 库伦旗| 乌审旗| 武山县| 彭阳县| 遂平县| 涿鹿县| 乌鲁木齐市| 密山市| 乡城县| 和平区| 珲春市| 阜康市| 黔东| 海伦市| 清丰县| 保山市| 九龙城区| 新竹市| 通江县| 贵定县| 当雄县| 嘉定区| 化德县| 云安县| 禹城市| 女性| 海安县| 凤台县| 磐石市| 永靖县| 抚顺县| 潞西市|