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

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


相关文章:Android 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.通过第三方平台进行加密,现在都比较稳定安全了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值