安卓apk反编译的那些事
2016-11-28 20:59
267 查看
众所周知,Android apk可能由Java代码、jar、aar、so、c代码和资源文件编译后生成。 别人可以通过反编译手段得到jar包和资源文件, 但我们不希望别人看到我们的劳动成果该怎么办呢? 有以下几个方法:
第一个方法: 混淆编译,这是常规套路,市面上大部分应用都使用这个技术。 它是Android提供的一个机制,生成的dex文件在反编译后都是以类似a、b、c的方式命名,对于Java高手来说这些信息足够了。 PS:dex2jar、jd-jui用于反编译dex和查看jar文件,apktool用于反编译出资源文件;
或者直接用Android Killer。
第二个方法: 用C语言实现核心逻辑, 编译生成的so文件是无法反编译的。 PS:Native层的C语言比Application层的Java性能更好,一般复杂耗时的运算要在Native层实现。常用的例如Android Bitmap类相关的图片编辑码就是Native层实现的。
第三个方法: Android ODEX优化,一般手机厂商预置apk使用ODEX方式编译,减少apk的大小并提高apk运行的性能;非手机厂商apk不会使用odex这种方式生成apk。 定义:http://baike.baidu.com/link?url=ODjQwdQRtnAPyzsR1S8iB1p2pS6eY2FJY5jSWmb2dcKd4y34gQXnKXYaEjGlfAt5ql4DRsEEOoKKbQQrIWGwHq
第四个方法:Android app加固, 这是目前最彻底的方法。 它将dex文件和资源文件进行加密, 无法反编译出原始数据。 目前有很多公司在做这个事, 比如奇虎360的加固保、腾讯的乐固。 实测360的加固保挺靠谱的, 如下图所示,资源文件和dex都反编译不出源文件。 反编译classes.dex文件后得到这个jar包
,
而且360是免费的!!! 还没试过其它公司的加固方案, 但360加固保不用集成SDK、上传个apk后得到加固后的apk就行了, 操作步骤没法再简单了, 必须赞!!!
综上, Android app使用加固方案是最靠谱的,而且有大公司提供免费解决方案。
PS: iOS不用考虑反编译问题, 因为苹果在安全方面做的非常强大, 即便反编译也只能得到伪代码,然并卵。
第一个方法: 混淆编译,这是常规套路,市面上大部分应用都使用这个技术。 它是Android提供的一个机制,生成的dex文件在反编译后都是以类似a、b、c的方式命名,对于Java高手来说这些信息足够了。 PS:dex2jar、jd-jui用于反编译dex和查看jar文件,apktool用于反编译出资源文件;
或者直接用Android Killer。
第二个方法: 用C语言实现核心逻辑, 编译生成的so文件是无法反编译的。 PS:Native层的C语言比Application层的Java性能更好,一般复杂耗时的运算要在Native层实现。常用的例如Android Bitmap类相关的图片编辑码就是Native层实现的。
第三个方法: Android ODEX优化,一般手机厂商预置apk使用ODEX方式编译,减少apk的大小并提高apk运行的性能;非手机厂商apk不会使用odex这种方式生成apk。 定义:http://baike.baidu.com/link?url=ODjQwdQRtnAPyzsR1S8iB1p2pS6eY2FJY5jSWmb2dcKd4y34gQXnKXYaEjGlfAt5ql4DRsEEOoKKbQQrIWGwHq
第四个方法:Android app加固, 这是目前最彻底的方法。 它将dex文件和资源文件进行加密, 无法反编译出原始数据。 目前有很多公司在做这个事, 比如奇虎360的加固保、腾讯的乐固。 实测360的加固保挺靠谱的, 如下图所示,资源文件和dex都反编译不出源文件。 反编译classes.dex文件后得到这个jar包
,
而且360是免费的!!! 还没试过其它公司的加固方案, 但360加固保不用集成SDK、上传个apk后得到加固后的apk就行了, 操作步骤没法再简单了, 必须赞!!!
综上, Android app使用加固方案是最靠谱的,而且有大公司提供免费解决方案。
PS: iOS不用考虑反编译问题, 因为苹果在安全方面做的非常强大, 即便反编译也只能得到伪代码,然并卵。
相关文章推荐
- 关于 mac 下轻松 反编译安卓apk
- 安卓市场apk中AndroidMainifest.xml的反编译
- 反编译安卓apk
- APK 安卓反编译
- 安卓反编译揭秘(爱加密系列教程十一)伪加密APK文件被破坏
- mac下Android安卓apk反编译最新亲测可用的方法
- 安卓apk反编译、修改、重新打包、签名全过程
- 安卓-APK反编译
- 反编译安卓apk基本步骤
- 安卓反编译揭秘:伪加密APK文件被破坏
- 安卓 apk反编译教程
- apktool 在mac下的使用 -反编译安卓apk文件
- 安卓---apk反编译
- 安卓反编译apk以及smali修改遇到的一些问题
- apktool 在mac下的使用 -反编译安卓apk文件
- 反编译安卓apk
- 关于安卓Apk反编译 再编译回来不能正常安装的问题
- 安卓APK反编译与混淆编译
- 安卓apk反编译之后重新打包
- apktool 在mac下的使用 -反编译安卓apk文件