伪加密1:apk打开需要密码

成因:修改zip的头,把文件的加密标志设置为ture,还原就把加密标志设置为false.利用了Android处理zip文件不判断头里的加密信息,其他压缩软件,java默认实现的zip api都有检测zip头中的加密信息 

伪加密2:apk压缩文件被破坏

成因:APK在PC上面可以看作一个压缩文件,在Android系统里面它就是一个手机系统软件文件。Android系统对APK的识别是从标志头到标志尾,其他多余数据都会无视。所以说在标志尾添加其他数据对把APK看做压缩文件的PC端来说这个文件被破坏了,所以你要对其进行解压或者查看都会提示文件已损坏,用反编译工具也会提示文件已损坏,但是它却不会影响在Android系统里面的正常运行和安装而且也能兼容到所有系统。使用压缩文件修复工具也能把它修复好让我们做的保护消失。

请输入图片描述

设备管理器不可删除:某app申请到了设备管理器权限后,在设备管理列表隐身,并且不可被卸载,如obad

成因:





    </receiver> 

 如果去掉上面的<action android:name="android.app.action.DEVICE_ADMIN_ENABLED"  /> ,android还是允许app注册成为设备管理器,但是此app会在设备管理列表隐身,且不可被取消设备管理器权限。



  webview漏洞:  Android系统通过WebView.addJavascriptInterface方法注册可供javascript调用的java对象,以用于增强javascript的功能。但是系统并没有对注册JAVA类的方法调用的限制。导致攻击者可以利用反射机制调用未注册的其它任何JAVA类,最终导致javascript能力的无限增强。

举例:

我们利用该漏洞调用SmsManager发送短信(被攻击APK要有短信发送权限)
WebView webview = new WebView(context);
WebSettings webset= webview.getSettings();
webset.setJavaScriptEnabled(true);
webview.addJavascriptInterface(new JSInvoke(), "jsinvoke");
利用该漏洞的外部javascript脚本:

<script> var obj_smsManager = jsinvoke.getClass().forName("android.telephony.SmsManager").getMethod("getDefault",null).invoke(null,null); obj_smsManager.sendTextMessage("159********",null,"test",null,null); </script>
出于安全考虑,为了防止Java层的函数被随便调用,Google在4.2版本之后,规定允许被调用的函数必须以@JavascriptInterface进行注解,所以如果某应用依赖的API Level为17或者以上,就不会受该问题的影响(注:Android 4.2中API Level小于17的应用也会受影响)。

爱加密
250 声望49 粉丝

爱加密是智游网安推出的核心产品,主要提供漏洞分析、应用保护、渠道监测三项服务,APP通过使用爱加密,可以杜绝破解和盗版,防止反编译和二次打包,保护开发者代码安全及产品形象。爱加密为金融和游戏等行业提供...


引用和评论

0 条评论