使用jd-gui查看class文件的時候,經常會發現有一些方法或類,無法正常的顯示出來。
我們可以利用這個bug,來阻止jd-gui反編譯我們的class文件。
首先反編譯一個有源碼的項目,用 jd-gui查看,找到無法顯示的類或方法。對比源碼找到是哪些代碼引起的bug。然后把代碼提取出來。這里拿我找的一段代碼為例。
這段switch代碼由於條件不成立永遠不會被執行。所以我們把這段代碼加到要保護的方法中,也不會影響程序的正常運行。
下面拿一個簡單的apk測試下,Eclipse 新建一個test工程。
假設要保護的是MainActivity中的 onCreate()方法。
我們把引起bug的代碼加入到onCreate方法中。
對工程proguard擾碼,導出Test.apk。
利用dex2jar 把源碼反編譯為jar包。
使用jd-gui打開Test_dex2jar.jar。我們的onCreate方法無法查看了。
更多內容,期待您的探索,請關注愛加密,讓您精彩不斷!
愛加密官方地址:http://www.ijiami.cn/