Android 加壳App Demo

接上一篇...android

本篇也是Android 应用安全防御和逆向分析的一个demo源码实现,git

由于书中写的源码地址找不到,写的也是csdn的,下载极其不便,因此便想参考书里内容写一个上传开源。github

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

其实就是把源apk加一层壳保护起来,反编译看到的就只是加壳app安全

这个demo实用性不大,主要用来学习app

原理主要是在安装壳app的时候将源app解密出来从新安装吧,具体流程没仔细研究~若有误请指出函数

原理和问题有两篇博客已详细分析,故不写了:工具

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

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

要注意的地方:

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的签名断定~

相关文章
相关标签/搜索