Android 加殼App Demo


接上一篇...

本篇也是Android 應用安全防護和逆向分析的一個demo源碼實現,

因為書中寫的源碼地址找不到,寫的也是csdn的,下載極其不便,所以便想參考書里內容寫一個上傳開源。

加殼app主要有三部分,1. 源app 2. 加殼app 3. 加殼工具

其實就是把源apk加一層殼保護起來,反編譯看到的就只是加殼app

這個demo實用性不大,主要用來學習

原理主要是在安裝殼app的時候將源app解密出來重新安裝吧,具體流程沒仔細研究~如有誤請指出

原理和問題有兩篇博客已詳細分析,故不寫了:

https://blog.csdn.net/androidsecurity/article/details/8809542#commentsedit

https://blog.csdn.net/itfootball/article/details/50962459

要注意的地方:

AndroidManifest.xml中

<meta-data android:name="APPLICATION_CLASS_NAME" android:value="com.example.signatureprotect.MyApplication"/>
這里是源app的Application包名和類名
protected void attachBaseContext(Context base) 函數中
RefInvoke.setFieldOjbect("android.app.LoadedApk", "mClassLoader", wr.get(), dLoader);
Object actObj = dLoader.loadClass("com.example.signatureprotect.MainActivity");
源app的包名和類名

加殼app和源app的res文件是一模一樣的

注意這兩個app編譯的resID也要一樣才行,不然會找不到資源,兩個app 的gradle的版本不一樣可能會導致編譯的resID不一樣

加殼工具:

主要是將app按照一定的格式重新組合

我是參考這里改了一點點東西:

https://github.com/vbanqi/shellApk/tree/master/unshell/src/com/android/dexunshell

 

最后,源碼路徑:

https://github.com/george-cw/AppAddShellDemo

因為使用的源碼app是之前的使用簽名保護的app,所以要將加殼app的簽名用於源app的簽名判定~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM