今天開始研究 Ajaxplorer 這個 Open Source Project,結果令人傻眼的居然將關鍵的 ajaxplorer.js 給編碼了,他採用的是 Dran Edwards 所提供的編碼方式,還好[1] 提供了解碼方式,我將他稍微修改整理成如下步驟(我用 FF3.5)
- 連線到 http://dean.edwards.name/packer/
- 將 javascript:for%20(i=0;i<document.forms.length;++i)%20{for(j=0;j<document.forms[i].elements.length;++j){document.forms[i].elements[j].removeAttribute(%22readonly%22);document.forms[i].elements[j].removeAttribute(%22disabled%22);}} 貼到網址列並執行
- 將編碼的 js 複製到下方的文字方塊並執行「Decode」
- 複製下方解碼厚的內容
- 連線到 http://tool.chinaz.com/Tools/JsFormat.aspx
- 將解碼後的程式碼貼在文字方塊
- 執行格式化
- 複製格式化結果
- 完成
備註:[1] 有使用 Javascript Tidy 進行後處理,可是我的測試結果是會導致 js 錯誤
2013/1/30 更新
新版混淆方式破解可參考 [2],可將 “while(c–){if(k[c]){p=p.replace(new egExp(‘\\b’+e(c)+’\\b’,’g’),k[c])}}return p"片段的 return p 改為 console.log(p) 即可取得 source code, 在透過 jsFormat 就可完全還原
參考資料
[1] http://www.red-root.com/code/decompressing-packed-javascript-files/
[2] http://www.cnblogs.com/wangchunming/archive/2012/04/01/2429455.html
發表留言