Skip to content

标签:android

Android Cydia Substrate hook用法

前一段时间给Saurik发了几封邮件,想让Substrate for Android开源,以更好地支持Android 5.0,可惜Saurik一直没回我。Substrate文档较少,又没有开源社区支持,再加上Frida出来了,估计以后用Substrate的会更少。这里分享一下Substrate的各种方法,供参考。

Substrate hook步骤:

1. 在Manifest里进行权限的声明

<permission
        android:name="cydia.permission.SUBSTRATE"
        android:label="modify code from other packages"
        android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS"
        android:protectionLevel="dangerous" />
<uses-permission android:name="cydia.permission.SUBSTRATE" />

 

1 Comment

PC端利用masterkey漏洞和jdi接口进行root

最近要实现PC端root的方案,逆了某客户端后发现可以通过masterkey漏洞来完成4.3版本系统(+之前)的大部分root。具体调研之后发现其实是2013年的技术,最先应该是Saurik提出的,他的Cydia Impactor中已经实现了该方案。

该方案主要的原理是:在我前面分析masterkey漏洞的文章里提到,利用masterkey漏洞的主要方法是替换文件,然后在替换后的文件里做一些事情。这样的方法有一些局限性。Saurik提出可以通过替换AndroidManifest.xml提权为sytem用户,然后再通过一些方法提权为root用户,这样就可以只通过替换AndroidManifest.xml完成root。

2 Comments

Android Native So加壳技术

目前市面上针对Apk的保护主要是基于Dex,公开的有DexGuard、梆梆、爱加密、ApkProtect等,私底下相信很多涉及到技术保密的App开发商都在做自己的保护策略。

而针对so的保护就相对滞后了一些,这里有so在app中扮演的角色的原因,也有so自身特点的原因。

我个人理解,elf文件相对Windows的PE来说松散一些,物理磁盘上的文件和内存里的文件镜像差异更大,所以在处理上要解决的问题较多。再加上Arm汇编指令的特点,在处理跳转时考虑的问题较多,所以导致针对Android So的保护成本较高。

Android so加壳主要需要解决两个问题:
1. 对elf文件加壳
2. 对Android So的加载、调用机制做特殊处理

1 Comment

基于编译水印的山寨应用检测

山寨应用是目前国内Android应用的一大问题,山寨应用主要存在于以下三个场景:

1. 类似于GingerMaster的基于服务器端多态的重新打包的病毒
2. 第三方开发者修改其他正版应用添加广告等
3. Appk破解。

这里所说的山寨应用,大体可以分为两类:
1. Apktool重新打包
2. 假冒应用

132 Comments

Android 4.3中SE Android展望

Android 4.3中增加了一些功能,比如OpenGL SE 3.0。但是大部分报道中却没有提到安全性方面的一个改进:SEAndroid。Android在4.3中"正式"引进了SEAndroid,这将对Android系统未来的安全体制带来不可忽略的影响。

SEAndroid是SELinux in Android。SELinux全称Security Enhanced Linux,即安全增强版Linux,它并非一个Linux发布版,而是一组可以套用在类Unix操作系统(如Linux、BSD等)的修改,主要由美国国家安全局(NSA)开发,已经被集成到2.6版的Linux核心之中,现已有十几年的开发和使用历史,是Linux上最杰出的安全子系统。

Leave a Comment

Android 第二个签名漏洞 #9695860 揭秘

注:本文谢绝盗用和转载。

在android master key (#8219321)签名漏洞爆出来不久,国内的安全团队"安卓安全小分队"在其博客(http://blog.sina.com.cn/u/3194858670)发布文章称发现另外一个android签名漏洞,但是小分队提出的利用该漏洞的方法存在一定的局限性,所以理论上可行,但是实际危害并不大。不久之后,Cydia创始人saurik在其网站(http://www.saurik.com/)上发布文章,称其发现了利用这个漏洞更好的方法。可能是因为构造特殊zip包的难度较大,也或者Master key的影响还未散去,这个新发现的漏洞虽然比Master key具有更大的破坏性,却一直没得到重视。

该漏洞(编号9695860)的主要原理是,android在解析Zip包时,C代码和Java代码存在不一致性:Java将short整数作为有符号数读取,而C将其作为无符号数。

2 Comments

Android签名漏洞#8219321揭秘

上周,移动安全公司Bluebox Security研究人员宣布他们发现了一个Android严重漏洞,这个漏洞允许攻击者修改应用程序的代码但不会改变其加密签名。据说,这个漏洞自Android 1.6(Donut)以来就一直存在,隐藏长达4年之久,当今市场上99%的Android产品都面临这一问题。

每个Android程序是一个apk文件,从文件格式上来说,apk其实是一个zip压缩包。这个压缩包里包含了android程序的所有内容,包括配置文件,编译后的程序代码(classes.dex),程序依赖的资源文件,以及加密签名。Android 系统会根据这个签名来验证apk文件是否合法,以防止正常软件被非法篡改。同一个应用(指包名相同)如果签名不同则不能覆盖安装。所以,可想而知,如果一旦签名被绕过,android应用就会真假难辨。

1 Comment