Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

Android 安全之如何反编译与加密apk包

$
0
0

apk包真的安全吗?会被反编译吗?如何防止被反编译?


一、查看APK包的源码
        dex2jar 这个工具用于将dex文件转换成jar文件
        下载地址:http://sourceforge.net/projects/dex2jar/files/
        jd-gui 这个工具用于将jar文件转换成java代码
        下载地址:http://jd.benow.ca/

        1.解压apk压缩包,找到classes.dex.
        执行代码: d2j-dex2jar classes.dex
        2.然后使用jd-gui工具打开classes-dex2jar.jar这个文件就可以看到源码了



二、查看和修改apk包资源
        apktool 解压。
        apktool d dujinyang.apk编译出来smail文件,修改之后apktool b dujinyang -o KARL_dujinyang.apk把它编译回去,当然,如果要正常使用的话要使用签名。
        签名使用:

 jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore 签名文件名 -storepass 签名密码 待签名的APK文件名 签名的别名 

        签名之后才可以正常安装到手机上的,当然,你可以优化下包,使用Zip对齐下,如果要深入的话,Zip还有其它用法。
语法:zipalign 4 KARL_dujinyang.apk KARL_dujinyang_ok.apk


三、如何混淆代码防止反编译
        Eclipse的话可以通过Jocky插件、project.properties文件等
        Android Studio的话可以通过借助SDK中自带的Proguard工具,需要修改build.gradle中的一行配置即可。

release {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

        并且还可以起到压缩APK包的作用。




四、混淆sdk/Jar
        1.通过ClassLoader动态加载的方式进行加密。
        2.通过安卓sdk自带/tools目录下的proguard GUI进行配置,执行到最后一步即可。




五、加密apk
        1.通过动态加载时,加入自身加密算法。
        2.通过第三方平台进行加密,现在都比较稳定安全了。

作者:DJY1992 发表于2017/2/15 17:38:42 原文链接
阅读:0 评论:0 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>