聲明:
1.本文轉載自吾愛破解論壇:http://www.52pojie.cn/thread-428271-1-1.html,若有轉載請注明出處,尊重原創作者。
2.本文僅供學習交流,請勿用於非法途徑。
騰訊殼本身沒對代碼做什么保護,主要就是讓apktool和dex2jar失效而已,其中的反調試更加沒用了,手工修復完全不涉及調試,主要找到方法,處理完成,就跟原來的app一樣了,所以騰訊殼屬於很弱的加固殼
自己已經測試了一個demo和市場上的app,都沒什么問題
本教程不說原理了,自己根據我做的去理解一下
騰訊殼針對apktool做了處理,使之無法反編譯,之前zzage大牛的教程中提到的是manifest中加入了錯誤引用,現版本是處理的resources.arsc,加入了兩個錯誤引用,觸發了apktool的bug
使用shakaapktool可以正常反編譯
1.搜索“fasten”,在attrs.xml和public.xml 中會發現此引用,刪除這兩行
<item type="attr" name="fasten" />
<item type="attr" name="_?m@0x7f010023" />
引號中的”_?m@0x7f010023”根據不同app會不同,是連續的兩行,刪除即可
2.使用AndroidKiller ,導入我提供的腳本,在反編譯完成后運行此腳本,腳本中有配置方法,提示完成后即可
3.刪除smali中的A001.smali文件
4.在smali的目錄下com/tencent/StubShell/TxAppEntry,搜索對此文件的引用,直接搜索TxAppEntry,如果發現在其它smali中調用的此文件,直接刪除那句調用即可,最后刪除stubShell文件夾
可能會在mainifest中發現,直接刪除即可,如果Application標簽的name值被替換成了com.tencent.StubShell.TxAppEntry
直接搜索.super Landroid/app/application,部分app的自定義Appliction可能引用有所出入,根據情況所變,填入程序自身的Appliction標簽名,如果沒有,直接刪除
android:name=”com.tencent.StubShell.TxAppEntry”即可
5.最后就是刪除lib下的libtxRes64.so和asserts下的這5個文件即可
PS:跟原版繼續想比的話,多了殘余的nop語句,但nop不參與程序邏輯,所以無影響,其次部分語句被替換成了
加固版
# virtual methods
.method public clearHeader()V
.locals 1
move-object v0, p0
return-void
.end method
原版
# virtual methods
.method public clearHeader()V
.locals 0
return-void
.end method
觀察語句,在非靜態方法中p0代表this,部分方法中會調用p0,在加固版本中,將this賦給了v0,最終調用的是v0,其實就是p0,也同樣無影響
處理完成后回編譯,至此app可以正常運行,也可以正常使用dex2jar查看源碼了
