精華區beta AndroidDev 關於我們 聯絡資訊
看到有版友討論到 apk 的反組譯,所以野人獻曝一下,把自己 google 尋找後的一 些工具以及心得和大家分享。 apk 其實和 jar 檔一樣,其實都是 zip 格式的壓縮檔,可以利用解壓縮的程式解開 ,因此,所有內含的檔案,包含 drawable 內的圖檔,color、layout、mainfest 等等 xml 都可以被看光光XD 不過 xml 的部份有經過編碼再壓進壓縮檔之內,所以解壓縮之後為 binary 檔案, 無法直接讀取辨識,有個工具可以讀進這些檔案,然後還原成原始的 xml。工具請參考以 下網頁: http://code.google.com/p/android4me/ 解決了 res,接下來是 code 的部份,不過就我現在找到的工具,反組譯回來還無法 是 java 檔,頂多是類似組合語言層級的一些東西。工具說明如下: 1.dx: 初識 dx,是因為之前 Android 版上有高手利用 dx 解析 robo defence,再加上 高手的多年經驗,將 robd defence 改得極為有趣,有興趣的可以回 Android 版 爬文。 2.dexdump: 後來尋尋覓覓,發現了這個工具,這個和 dx 一樣,都可以在 Android 的 SDK 之 中找到。 /android-sdk/platforms/android-3/tools/ 下,其中的 android-3, 當然可以換成 android-4, android-5 .... 3.dedexer: 現在我用的是這個,之前提到的 dx 和 dexdump,解開來的檔案相對起來不易閱讀 ,而 dedexer 解開來會根據不同的 package,不同 class,分門別類的把檔案放好 ,而且 inner class 也會存成另外的檔案,方便閱讀。真的是出門在外,破解 dex 的最佳良伴:) dedexer 請參考網頁 http://dedexer.sourceforge.net/ 我抓到的 apk 有 lib,下面有 .so 檔怎麼辦?? linux 下有 nm、objdump,相信不僅可以把人家看光光,還可以像紅外線一樣看到骨 子裡去。 小結: 這樣看來,其實不管程式是用 JAVA,還是利用 JNI 寫 C,其實都是一樣被看光光 的>\\\<,只不過解出來有可能是組合語言,接下來就是看這隻程式值不值得我花時間和 硬功夫去 k 他的組語把他看懂。 或許還是如之前版友 qrtt1 所說,程式榜服務才是正解?? 其實我也不知道XD -- 上面所有,皆是網路 google 而來,我只是做個簡單的整理, 加上一點點小小的心得,歡迎享用:) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.80.94
qrtt1:如果你看過 cih 示範破 xxx 那,就明白混淆器能夠混淆的只是 01/20 15:32
qrtt1:開發者那顆焦慮不安的心,混淆不了駭客的眼睛。 01/20 15:32
nowar100:我不懂為什麼這麼在意要"隱藏"自己的實做 任何程式都可以 01/20 15:43
nowar100:被反組譯成低階語言 就算被混亂過 只要花時間 還是可以看 01/20 15:44
nowar100:出脈落 另外 目前所有安全機制都只是在拖延時間 並沒有保 01/20 15:44
nowar100:證無法被攻破 所以小弟不懂能不能解出原始的組譯碼真這麼 01/20 15:45
nowar100:重要嗎 (就算是付費軟體 也都還是能被破解的阿...) 01/20 15:46
nowar100:分享推一個 :D 01/20 15:54
abccbaandy:"只要花時間" <=這是重點阿XDD 01/20 15:58
abccbaandy:解dex好像滿多的,smali、baksmali也可以 01/20 15:59
yienge:推 好工具的分享 這篇有價值阿XDDD 01/20 16:05
yienge:我想最難破解的應該就是直接用機械碼寫成的軟體了吧=_= 01/20 16:06
yienge:不過也沒有人會這樣做就是了 所以還是都可以破的! 01/20 16:06