APK在PC上面就被看作一个压缩格式文件,在手机上面它就算一个可执行格式文件。两种格式对它的读取要求也有区别,所以说利用这个区别来实现伪加密。对PC端来讲伪加密的APK没法被解包无法被反编译,但是对android系统来说它完全不会影响正常的安装运行(对4.2以前的系统)。
伪加密的原理:读取APK的字节,找到连续4位字节标记为”P K 01 02”的后第5位字节,如果是0表示不加密,如果是1就表示加密(伪加密就强行改成1 反伪加密就是把1改成0就可以了)。
伪加密前和伪加密后的对比图如下:
伪加密前:
伪加密后:
app发布前,最好做一下扫描和加固,应用扫描可以通过静态代码分析、动态数据跟踪,定位出风险代码(目前好多都是只告诉APK包里面有风险),同时监控敏感数据的异常行为。
加固可以在一定程度上保护自己核心代码算法,提高破解/盗版/二次打包的难度,缓解代码注入/动态调试/内存注入攻击等
但也对应用的兼容性有一定影响,加壳技术不行的话,还会影响程序运行效率.
目前市面上有很多第三方加固的平台, 如果新应用发布前需要扫描或者加固的话,可以先试试免费的,例如腾讯御安全,建议自己先去扫描测试下。
可以对APP进行一个加密,有效得防止APP被破解、反编译。目前有很多APP服务商提供了加密的服务,比如爱加密等。
由于Android系统的开放性,导致Android
APK很容易被他人破解或是反编译,下面给大家介绍常用的APP破解工具和技术要求。同时根据自己以往的防破解经验,跟大家分析下如何防止反编译。
Android
APK运行环境依赖的文件/文件夹
res、DEX、主配文件Lib
只是简单的加密甚至没有任何保护措施。APKtool(一种反编译工具)可轻易将其轻松破解,再配合其他各种工具基本可以做到:源码暴露(代码混淆也几乎起不到任何安全作用)、资源文件裸奔、主配文件可任意修改、核心SO库暴露、暴力破解恶意利用等。部分大公司会对其应用APK包进行防二次打包和防APKtool破解,但其代码都是写在JAVA层,另外APKtool的可升级导致其安全保护级别也是非常低的。
安卓APP加密的方法主要分成三类:源码加密、数据安全和应用保护,而每一类又分成好几个小项。
源码加密包括:Dex文件保护、防二次打包、so文件保护、资源文件保护。以Dex文件保护为例,Dex文件保护又包括:高级混淆、DEX文件加壳、DEX文件加花、动态类加载、内存防dump。
高级混淆:代码混淆,可以降低代码可读性、缩小包大小。
DEX文件加壳:相当于把源码打包至其他文件夹下,逆向工具对加密后的dex文件解析,只能看到壳文件,可以防止解包后看到真正的源码。爱加密利用挖空技术实现函数级加密,安全强度高,启动效率快。
dex加花:由于大部分逆向工具都是线性读取字节码并解析,当遇到无效字节码时就会引起反编译工具字节码解析失败。爱加密插入无效字节码到dex文件之中,同时保证该字节码永远不会被执行,否则程序运行也会崩溃。这样,就能起到反编译的作用了。
dex动态类加载:爱加密加固后的dex文件源码可以动态分离,在运行时,将源码分段加载到内存当中。
内存防dump:程序运行时会释放代码,内存防dump可以防止程序运行时被劫持。
应用安全包括:log日志输入屏蔽、应用清场。清场技术依赖于云端黑名单、白名单DB,应用每次启动后便自动进行本地的黑名单、白名单DB数据更新,若检测到有异常情况,则可对用户进行提示。
数据安全包括:页面防劫持、本地数据保护、截屏保护、内存数据防查询、协议加密、虚拟键盘。
加固的过程中需要三个对象:1、需要加密的Apk(源Apk)2、壳程序Apk(负责解密Apk工作)3、加密工具(将源Apk进行加密和壳Dex合并成新的Dex)主要步骤:我们拿到需要加密的Apk和自己的壳程序Apk,然后用加密算法对源Apk进行加密在将壳Apk进行合并得到新的Dex文件,最后替换壳程序中的dex文件即可,得到新的Apk,那么这个新的Apk我们也叫作脱壳程序Apk.他已经不是一个完整意义上的Apk程序了,他的主要工作是:负责解密源Apk.然后加载Apk,让其正常运行起来。
安卓保卫萝卜1.0.9版本的 有没有BUG能不能刷饼干和牛奶啊 这个bug应该是没有吧,话说保卫萝卜给的饼干牛奶确实是太少了。首先, 你一定要打到深海第9关卡,我刷饼干和牛奶还有怪物窝都是在这里刷的....
为什么打开奇奕画王说需要wacom数位板,可是我已经插上了 您好!Wacom所捆绑的奇奕画王软件的启动是要搜索Wacom产品驱动的,如果您的驱动程序没有安装成功,奇奕画王就无法启动,请您看一下驱动是否...
谁知道象棋残局——《代子入朝》的解法 带子入朝;ID=8712本局是一则十分优秀的排局,最早刊于《蕉竹斋象棋谱》(第100局),局名为“五子夺魁”,(1976年福州魏子丹根据稀有的象棋艺人脚本《蕉竹斋...
梦见和喜欢的人告白被拒绝的预兆 1、怀孕的人梦见和喜欢的人告白被拒绝,预示生男,夏占生女,慎防动胎气。出行的人梦见和喜欢的人告白被拒绝,建议改变行程为佳。做生意的人梦见和喜欢的人告白被拒绝,代表不可大...
汉王c330如何清空管理员?管理系统里的清空管理员一直失败。管理员走了... 选择某个已设定的管理员,可以对该管理员进行修改或删除。系统预留了5个管理员身份,挨个删除即可。在考勤机上按“MENU”键;...
如何破解咒语 ...怪死人1你可以去寺庙请和尚或者道士做法事叫他为你祈福驱邪啊2养鬼护生要么简单点也可以3其实有真有估计也是因为他家是江西的山沟沟烂地方一些古老的巫术类的鬼神通才能流传下来不然其实古代...