九 一擊即中 處理代碼混淆的方法_W_第1頁
九 一擊即中 處理代碼混淆的方法_W_第2頁
九 一擊即中 處理代碼混淆的方法_W_第3頁
九 一擊即中 處理代碼混淆的方法_W_第4頁
九 一擊即中 處理代碼混淆的方法_W_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第九篇 一擊即中 處理代碼混淆的辦法 NightTeam 咸魚 夜 幕團 隊 掃碼查看課程詳情 加密分析流程總結(jié) 1. 查看關(guān)鍵包-分析哪些參數(shù)是加密的 2.0 搜索參數(shù) 參數(shù)名= / 參數(shù)名 = / 參數(shù)名: / 參數(shù)名 : 參數(shù)名 2.1 查看網(wǎng)絡面板的 Initiator(發(fā)起) 2.2 xhr 斷點調(diào)試 2.3 hook 相關(guān)邏輯 3. 分析加密 4. 補全加密邏輯 6樣例一總結(jié) 將 JavaScript 代碼轉(zhuǎn)換成顏文字網(wǎng)絡表情的編碼以達到混淆的目的原理:這類混淆通常都是使用構(gòu)造函數(shù)將字符串作為代碼運行 例如: const sum = new Function(a, b, retur

2、n a + b); console.log(sum(2, 6);解決方法: 1. 直接將混淆后的代碼粘貼至控制臺通過 VM 查看源代碼 2. 刪除代碼結(jié)尾的“(_);”替換為“toString()”或?qū)⑿薷暮蟮拇a粘貼至控制臺運行。 樣例原理 這類混淆的原理都是通過(0)“constructor” )“constructor”(code)()來執(zhí)行代碼的,上面這一串代碼等價于 Function(code)()Function 構(gòu)造函數(shù)創(chuàng)建了一個新的 Function 對象,我們直接調(diào)用構(gòu)造函數(shù)就可以動態(tài)創(chuàng)建函數(shù)了。 就像下面這段代碼 const sum = new Function(a, b,

3、 return a + b); console.log(sum(2, 6);傳遞給 Funtion 的所有參數(shù)按照傳遞順序被視為函數(shù)的形參,最后一個函數(shù)傳入函數(shù)體,調(diào)用執(zhí)行的時候就會創(chuàng)建一個計算兩數(shù)之和的函數(shù)了。 樣例二總結(jié) 將 JavaScript 代碼轉(zhuǎn)換僅由符號組成的代碼以達到混淆的目的原理:這類混淆通常都是使用構(gòu)造函數(shù)將字符串作為代碼運行轉(zhuǎn)換流程大致如下: Function(alert(1) )() (0)constructorconstructor(alert(1)();$ = constructor;$ = alert(1);$_ = ; / 0按位取反就是-1 ($_)$($)(

4、);解決方法: 1. 直接將混淆后的代碼粘貼至控制臺通過 VM 查看源代碼 2. 刪除代碼結(jié)尾的“()”替換為“toString()”或?qū)⑿薷暮蟮拇a粘 貼至控制臺運行。 7 樣例三總結(jié) 將 JavaScript 代碼轉(zhuǎn)換成只有6種字符(,(,),!,+)的編碼,以達到混淆的目的 例如: 0:+1:+!+2:!+!+a:(false+)1 b:(Function(return)()+)2c:(filter+)3解決方法: 1.直接將混淆后的代碼粘貼至控制臺通過 VM 查看源代碼 2.1 刪除代碼結(jié)尾的“()”替換為“toString()”或?qū)⑿薷暮蟮拇a粘貼至控制臺運行。 2.2 將代碼結(jié)尾最

5、后一對的“()”包含的代碼出來單獨運行 7 樣例四總結(jié) 樣例四其實這談不上是加密,只能算是一種編碼(Encode)或者也可以稱為是一種打包(packer),類似于base64這樣的編碼,都是可以以一定方式還原的。 可以看到這個樣例的開頭是 eval ,在 js 中 eval 中接受的參數(shù)是包含有效 JavaScript 代碼的字符串。 這個字符串將由 JavaScript 分析器進行分析和執(zhí)行。所以我們可以斷定Function(p,a,c,k,e,r)或者是function(p,a,c,k,e,d)返回的就是 好的js源代碼,然后傳遞給eval。 所以我們只需要將eval 更改為 alert / document.write / console.log即可解 10密。 樣例五總結(jié) 樣例五可以說是一類混淆程度較為嚴重的例子。 通過將原始的 js 代碼經(jīng)過一系列的標識符混淆、死代碼注入、防調(diào)試注入等操作達到代碼保護的目的。 這類代碼通過調(diào)試還原也可以達到破解的目的,但是會耗費大量的精力。我們面對這類混淆的解決方法: 0. 熟悉這類混淆通用的混淆代碼 1. 找到代碼的入口 2. 將代碼主體扣取出來 3. 去除無用的代碼與環(huán)境監(jiān)測代碼(埋

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論