一、Android开发App如何进行加固
1.避
免技巧:使用内部API。即便我们总是建议不要这么做,但还是有一些开发者选择使用那些不支持或者内部的API。例如,许多开发者使用内部的亮度控制和蓝
牙切换API,这些API出现在1.0和1.1版本上。一个Bug——在Android
1.5上进行了修正——允许App在不需要请求权限的情况下使用这些API。结果,使用了这些API的App在1.5上挂掉了。如果你在App中使用了这
些内部API,你需要做的是:停止这一做法,更新你的程序。
2.避
免技巧:直接操作Settings。严格来讲,这一条不算,因为我们可以通过Android本身进行操作。但之所以我们加上了这一条,是因为一些开发者做
了一些调皮的事情:一些App悄无声息地修改了系统设定,而没有通知用户。例如,一些App没有询问用户就直接打开了GPS,而另外一些则可能直接打开了
数据传输。
因此,应用程序不能直接操作某个特定的系统设定值,即便是它们之前能这么做。例如,App不能直接打开或关闭GPS。不是说使
用会导致App崩溃,而是不应该使用这些API。代替的,App需要发出一个Intent来启动相应的Settings配置画面,这样用户可以手动地修改
这些设定。详细情况可以参考android.provider.Settings.Secure类,你可以在1.5_pre(和之后的)SDK文档中找
到。注意,只有那些移动到Settings.Secure类中设定受到影响。其它的,还会像Android 1.1那样有着相同的功能。
3.避
免技巧:过分布局。由于View渲染部分的变化,在布局中,过于深(超过10层左右)或过于多(超过30个左右)的View树层次可能会导致程序崩溃。过
于复杂的布局总归是有危险的,尽管你可以认为Android
1.5已经好于1.1。大多数开发者不需要对此担心,但如果你的App有着非常复杂的布局,你还是应该对其“瘦身”。你可以使用一些高级的布局类,如
FrameLayout和TableLayout,来简化你的布局。
4.避
免技巧:不好的硬件假设。Android
1.5支持软键盘,因此,不久就会有很多设备不再包含物理键盘。如果你的程序假设物理键盘存在(例如,如果你创建一个自定义的View,并接收键按下消
息),你必须保证在只有软键盘的设备上也工作正常。想了解更多关于这方面的信息,请继续关注这个Blog,我们将会有更多关于处理软键盘的详细资料。
5.避
免技巧:无意识的旋转。运行Android
1.5(及以上)的设备能够根据用户手持设备的方向自动地旋转屏幕。一些1.5的设备默认这么做,而其它的需要用户手动设置。应用程序自己的重定向在某种
程度上会导致不可预期的行为(不论是使用加速度计还是其它一些东西)。这种情况通常发生在应用程序假设有物理键盘时才能旋转;如果设备没有物理键盘,这些
App就不能进行重定向,而这明显就是个编码错误。开发者应该明确应用程序能在任何时间都能处理重定向。
同样,App可以使用加速度计做到与系统
相同的事情——直接重定向自己,这也会引发奇怪的结果。一些App使用加速度计来监测像晃动动作什么的,而又不将其方向锁定为垂直或水平,经常会导致在方
向上来回翻动。而这就会激怒用户。(你可以在manifest文件中使用android:screenOrientation特性来锁定App的方向为垂
直或水平。)
二、APK加固原理是什么如何进行android apk加固
APK加固是对APK代码逻辑的一种保护,原理是将APK文件进行某种形式的转换,包括不限于隐藏、混淆、加等操作,进一步保护软件的利益不受损坏。
常见APK应用加固主要有DEX文件、SDK文件、SO文件加固这三类。DEX加固技术包括混淆代码、整体DEX加固、拆分DEX加固、虚拟机加固、Java2C加固,当前性能最强的加固方案是Java2c,将java指令转成c/c++指令,并做虚假控制流、字符串加密等处理,逆向难度最高。SO库文件一般存放着核心算法、重要协议等重要信息。SO加固大概可以分为有源保护和无源保护,有源保护分为自解密、混淆、源码VMP等,无源保护分为加壳、VMP保护。
APK加固后,可以降低被逆向破解风险,目前有些云安全平台提供系统的APP加固服务,如网易易盾、360加固、阿里云等,想要系统提升APK安全等级可以了解下。
三、Android最新的VMP加固技术一般是怎么实现的
Android APP二次打包”则是盗版正规Android APP,破解后植入恶意代码重新打包。不管从性能、用户体验、外观它都跟正规APP一模一样但是背后它确悄悄运行着可怕的程序,它会在不知不觉中浪费手机电量、流量,恶意扣费、偷窥隐私等等行为。http://www.ijiami.cn/newsInfo?id=341
爱加密的加密保护是全方位的,目前提供的服务有:DEX加壳保护、DEX指令动态加载保护、高级混淆保护,SO库保护,主配置文件保护,资源文件保护,二次打包防护。爱加密的基础保护就包含对资源文件的加固保护,通过混淆代码的方式,可以阻止打包党读取资源文件的信息。此外,一个APK的唯一正版识别是通过包名+签名共同的方式来判断。
四、Android加固和签名的那些坑(防掉坑技巧)
上个月公司一个项目突然要找第三方进行安全漏洞的检测,于是打包了一个apk文件,发到第三方结构进行了安全检测,这项目我入职前就已经快完成的阶段,我后面基本是维护和小更新.比较坑的是之前的哥们连混淆都没有,更不要说加固了,最后扫出了30多个漏洞,看到检测报告都懵逼了.
自己对混淆和加固之前也只是知道皮毛没有深究,这次修复漏洞踩了不少坑,都是边上网搜资料边踩坑,总算搞定了,写出来防止后人踩坑,这里主要讲加固签名的坑,混淆这里不说了(自己对混淆还不熟)
很容易理解,ture是已签名,false是未签名,都为true的话说明v1,v2都成功签名了.
然后把两个md5的值进行比对,如果一致说明你的签名没用错秘钥--||
4.手动进行签名操作:
java-jar apksigner.jar sign--ks/Users/xxxx/Desktop/key.jks--ks-key-alias test--ks-pass pass: 123456--key-pass pass: 123456--out/Users/xxxx/Desktop/签名后的安装包.apk/Users/xxxx/Desktop/需要进行签名的安装包.apk
上面的命令会执行同时执行v1,v2签名
注意仔细看上的命令行:进了黑色加粗的文字需要替换成实际的信息
说个小插曲,我们的项目找的是一个规模很大的公司进行检测,开始用了网上的免费的加固工具加固拿去检测,别人拿去测试之后全部都脱壳了,说这种免费的加固安全没有保障,要用他们的加固服务可以解决,要收费..呵呵,因为项目比较特殊只能答应了,打包签名了apk,发到他们那边进行了加固后他们把apk发回来让我重新签名,签名后apk用不了,闪退....老板说别人大公司应该不会出现这种小问题,是我的问题.恩,自己也怀疑是我的错.当天折腾到凌晨才下班,经历了上面的一顿折腾后发现v1,v2都签名了,并且md5值也没问题.这时就有底气的去质问那家公司,最后发现是他们的加固出问题.
一般来说进行了上面的方法重新签名并且检查md5值没错,应该不会出问题了这时候可以去质疑一下加固方的问题.
github参考链接1
github参考链接2
先写这些记录一下,后面有需要再更新,有什么问题可以在下面留言讨论.
好了,文章到这里就结束啦,如果本次分享的Android各代加固总结_android 加固和Android开发App如何进行加固问题对您有所帮助,还望关注下本站哦!