`

5种常用的APK保护技术——保护应用、游戏APP不被破解

 
阅读更多

原文:http://www.apkbus.com/android-138130-1-1.html

 

由于Java字节码的抽象级别较高,因此Android的APK较容易被反编译,而国内对于网络产品保护不力。如果一款应用APK被破解,那么可能会被他 人植入广告或者病毒以供他人盈利或窃取用户信息;如果一款游戏APK被破解,那么这款游戏可能会从收费版变成免费版,游戏的支付系统也形同虚设。不管是哪 种情况,对于开发者来说,APK被破解绝对是一场噩梦,而自己手动设置各种加密不但耗时耗力,而且不一定能收到很好的效果。本文介绍几种常用的方法,用于 保护Java字节码不被反编译。通常,这些方法不能够绝对防止程序被反编译,而是加大反编译的难度而已,因为这些方法都有自己的使用环境和弱点。

1.隔离Java程序

    最简单的方法就是让用户不能够访问到Java Class程序,这种方法是最根本的方法,具体实现有多种方式。例如,开发人员可以将关键的Java Class放在服务器端,客户端通过访问服务器的相关接口来获得服务,而不是直接访问Class文件。这样黑客就没有办法反编译Class文件。目前,通 过接口提供服务的标准和协议也越来越多,例如 HTTP、Web Service、RPC等。但是有很多应用都不适合这种保护方式,例如对于单机运行的程序就无法隔离Java程序。


2.对Class文件进行加密   

    为了防止Class文件被直接反编译,许多开发人员将一些关键的Class文件进行加密,例如对注册码、序列号管理相关的类等。在使用这些被加密的类之 前,程序首先需要对这些类进行解密,而后再将这些类装载到JVM当中。这些类的解密可以由硬件完成,也可以使用软件完成。   
    在实现时,开发人员往往通过自定义ClassLoader类来完成加密类的装载(注意由于安全性的原因,Applet不能够支持自定义的 ClassLoader)。自定义的ClassLoader首先找到加密的类,而后进行解密,最后将解密后的类装载到JVM当中。在这种保护方式中,自定 义的ClassLoader是非常关键的类。由于它本身不是被加密的,因此它可能成为黑客最先攻击的目标。如果相关的解密密钥和算法被攻克,那么被加密的 类也很容易被解密。


3.转换成本地代码   

    将程序转换成本地代码也是一种防止反编译的有效方法。因为本地代码往往难以被反编译。开发人员可以选择将整个应用程序转换成本地代码,也可以选择关键模块 转换。如果仅仅转换关键部分模块,Java程序在使用这些模块时,需要使用JNI技术进行调用。当然,在使用这种技术保护Java程序的同时,也牺牲了 Java的跨平台特性。对于不同的平台,我们需要维护不同版本的本地代码,这将加重软件支持和维护的工作。不过对于一些关键的模块,有时这种方案往往是必 要的。为了保证这些本地代码不被修改和替代,通常需要对这些代码进行数字签名。在使用这些本地代码之前,往往需要对这些本地代码进行认证,确保这些代码没 有被黑客更改。如果签名检查通过,则调用相关JNI方法。


4.代码混淆

    代码混淆是对Class文件进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能(语义)。但是混淆后的代码很难被反编译,即反编译后得出的 代码是非常难懂、晦涩的,因此反编译人员很难得出程序的真正语义。从理论上来说,黑客如果有足够的时间,被混淆的代码仍然可能被破解,甚至目前有些人正在 研制反混淆的工具。但是从实际情况来看,由于混淆技术的多元化发展,混淆理论的成熟,经过混淆的Java代码还是能够很好地防止反编译。下面我们会详细介 绍混淆技术,因为混淆是一种保护Java程序的重要技术。


5.在线加密
    APK Protect(http://www.apkprotect.com/)是一个在线对APK程序进行加密的网站,可以支持Java和C+ +语言的保护,能达到反调试、反编译的效果,操作过程简单易用:仅需上传你的APK,选择加密项目,等待服务器加密(通常一两个小时左右)后即可下载加壳 的APK,然后再签名上传到应用市场即可。经测试,通过APK Protect加密的APK变得非常难以破解,从而保护了APK。

分享到:
评论

相关推荐

    Android应用——imsi.apk

    Android应用程序,安装在手机后,轻松获取imsi号码,方便开发和测试人员使用。

    App_Usage_Pro_v5.12_b160005129.apk

    更支持对您手机的应用APP设定应用锁,对时间锁定,防沉迷,进行使用时间限制,控制手机时间,并每日对您使用的应用时间排行统计,帮助您远离手机诱惑更好的自律,更好的管理时间,对时间规划,提升个人效率,完成您...

    android 程序自动检测更新

    用于android程序自动检测更新,里面包含检测是否有更新,有更新可以选择更新

    详解Android studio 3+版本apk安装失败问题

    在网上找了一下,发现是studio3.0之后的instant run功能引起的,直接点击绿色箭头按钮烧出来的apk都是不完整的,也就是魅族指的测试版,并且这个apk的路径在app\build\intermediates\instant-run-apk\debug下,而...

    Memrise_Premium_v2.94_18233.apk

    重新打包了Android App Bundle(由KirIif'拆分了APKs Packer v4.3.2): •支持的CPU架构:armeabi-v7a,arm64-v8a,x86; •支持的屏幕DPI:lhdpi [120dpi],hdpi [240dpi],xhdpi [320dpi],xxhdpi [480dpi],...

    App Inventor 2快速入门与实战随书代码

    App Inventor——无需编程的可视化App开发工具,让人人都会开发应用变为现实,13款非专业程序员搭建的App示例,给所有人亲身参与IT技术变革的机会。随书代码分为三个包,其中aia为工程文件,apk为安卓安装包,素材...

    Development.apk(Android Dev Tools)

    2.6 ANR(Application Not Responding)(Stop responding for 20 seconds)——(应用无响应)(停止反应20s) 2.7 ANR starting an Activity(运行一个活动,但是应用无相应) 2.8 ANR recriving a broadcast Intent...

    无需root adb就可卸载智能电视安卓系统应用

    而就算是高级玩家,也可能难以在列表中找到想要禁用的App——Debloater只显示apk包名,并不是那么直观。如果能够显示App的名称,那就更好了。但总的来说,这仍是一款非常实用的软件。免root禁用系统预装App,...

    移动端APP安全资料.zip

    Android APP 渗透测试方法大全 ...APP安全加固技术的讨论——安全小课堂第二十八期 App安全检测指南-V1.0 AppScan Standard Edition 用户指南 iOS客户端安全测试指南 iOS应用逆向工程 微信小程序安全测试指南

    unity2d 游戏开发资源 unity2d 游戏开发资源

    221 12.2 关卡控制机制 224 任务机制 224 场景机制 230 顾客机制 235 第13章 手机游戏上架发布教程 13.1 Android 发布应用的教程 242 Android 环境设置 242 发布 APK 245 发布设置 247 13.2 Unity Remote 4 使用的...

    视美乐购smlg 2020-9-25版.apk

    视美乐购平台采用成交才扣点,不成交开店免费的经营理念,为商家(卖家)降低或节省更多的运营成本。5G时代的来临,将是万物互联智能时代和视频购物较佳的时机……. 视美乐购 ——— 选择美好生活!

    RCMix3D_v4.0_Tweaks汉化版

    自己闲暇时制作 RCMix3D_v4.0——RCMix3D Tweaks汉化版安装注意事项: ...4.复制Tweaks.apk到/system/app/覆盖; 5.检查覆盖后的Tweaks.apk 属性/权限 是否为前2列勾上。如未勾上,请勾上确定保存。 6.退出,完成汉化。

    PDF2SWF_Pages_Suite

    它是传统纸媒进行数字化显示的最佳工具,传统的广告公司、杂志公司、报业等众多行业谐可使用,所有操作界面都是可视化UI操作,无需精通任何网络或编程技术——最常见的应用样式为电子书、电子杂志、缩放式电子产品...

    android群雄传

    1.3.2 应用运行上下文对象 5 1.4 Android系统源代码目录与系统目录 6 1.4.1 Android系统源代码目录 6 1.4.2 Android系统目录 8 1.4.3 Android App文件目录 11 第2章 Android开发工具新接触 13 2.1 Android开发...

    Google Android SDK开发范例大全(第3版) 5/5

    特别是新增加了第11章来专门介绍HTML5技术在Android移动设备里的应用,相信当下两个热门技术的交汇会碰撞出不一样的火花。 《Google Android SDK开发范例大全(第3版)》内容由Android的基础知识到实际开发应用,结构...

    java反编译泄露源码-MobiLogLeak:一种用于检测由于不良日志记录而导致Android应用程序中敏感数据泄漏的工具

    它结合反编译技术和污点流分析来分析应用程序的内容,寻找可能泄露敏感数据的日志语句。 有关详细信息,请参阅以下论文。 如果您使用该工具,也请引用这篇论文: R. Zhou、M. Hamdaqa、H. Cai 和 A. Hamou-Lhadj,In...

    android开发资料大全

    APP应用开发盈利的九种商业模式详细介绍(图) 专题连载一:品牌厂商为什么拥抱App 国内主流Android安卓应用市场简介 个人和小团队APP推广的心得、经验、体会 APP应用在google market和appstore上架的区别分析 APP...

    Google Android SDK开发范例大全(第3版) 1/5

    特别是新增加了第11章来专门介绍HTML5技术在Android移动设备里的应用,相信当下两个热门技术的交汇会碰撞出不一样的火花。 《Google Android SDK开发范例大全(第3版)》内容由Android的基础知识到实际开发应用,结构...

    Google Android SDK开发范例大全(第3版) 4/5

    特别是新增加了第11章来专门介绍HTML5技术在Android移动设备里的应用,相信当下两个热门技术的交汇会碰撞出不一样的火花。 《Google Android SDK开发范例大全(第3版)》内容由Android的基础知识到实际开发应用,结构...

Global site tag (gtag.js) - Google Analytics