越狱检测与反检测及越狱社区未来发展

大家好, 2021新年快乐!


随着ios系统本身的逐步完善以及智能手机的发展步入成熟阶段, 普通用户对于越狱需求的逐步降低, 整个越狱社区略显疲态,  形成一个恶性循环, 这无论对于我们喜欢搞机爱好者, 还是喜欢研究的开发者来说, 都不是一个好消息.  


其中特别是一些主流APP,如银行类, 游戏类, 抖音等使用技术手段进行越狱检测以区别对待不同用户群体的做法, 利用自身的市场垄断地位, 逼迫用户二选一, 给越狱社区的发展蒙上了一层阴影.


所以基于此,我想邀请大家建立一套持久的, 深层次的, 不可检测的反越狱检测模块. 以促进越狱社区的发展.  


重点我们可以参考android系统的magisk hide,  当然由于ios本身的越狱和android的root还是有较大差异,  android的root目前主要以厂商解锁bootloader后刷入自定义的boot镜像, 在启动阶段进行patch, 只需要获取到用户态的root身份即可.   而ios的越狱目前主流则以通过用户态的APP利用内核漏洞获取到内核权限patch内核代码实现.  并且root过程会产生和越狱行为相关的文件到磁盘. 所以综合来说, ios的越狱状态相比android会对系统造成更大的变化, 也更加容易被检测.  



目前主流的越狱检测方式如下(水平有限莫喷):


1:基于文件的检测,  上面提到, 越狱过程中会产生一系列和越狱相关的文件到磁盘, 以及越狱后安装的各种框架, 插件, APP等.  

虽然普通APP在沙盒中无法读写这些文件, 但是可以获取到这些文件的状态, 例如: 是否存在, 文件大小, 是否为符号链接等.   由此可以比较准确的判断手机是否被越狱过(可能无法区分当前越狱是否激活).


2:基于系统相关API的行为变更,  上面提到,  越狱需要利用内核漏洞patch内核相关代码,  以及可能会对系统其它相关服务进程进行patch修改, 那么必然会导致一些系统API的行为产生可预期的变化.

例如: fork,  system等, (以及越狱程序一般会patch代码签名相关的组件, 也许可以检查这一点)


3:基于检测相关越狱框架和app的方式, 比如检测cydia的 url scheme是否可用,  检测当前进程是否有加载mobile substrate基板模块,越狱相关进程等.



基于此,我们便有了相应的通用处理方案,  先说第3点, 对于检测越狱相关app等, 可以采取随机改名移位, patch系统相关服务组件隐藏app等方式, 相对来说比较好处理,  而对于基板检测,  目前有substrate,substitute,libhooker等,我不确定是否默认会自动注入到所有APP进程,  可以通过改进过滤等方式, 针对需要隐藏越狱的APP不注入基板模块即可解决.  



而对于第2种检测方式, 则可以通过patch内核和相关系统服务组件进程的方式, 针对需要隐藏越狱的APP, 执行原有代码流程逻辑, 即可规避该种检测方式.  



对于第1种检测方式,  个人认为则是最难以处理的,  ios系统越狱后, 不同的越狱程序, 安装了不同的越狱APP, 框架, 插件等, 对磁盘文件的改动, 都是不一样的. 我们既不能直接针对需要隐藏越狱的APP阻止访问磁盘系统,  也比较难以用通用性的方式隐藏所有和越狱相关的磁盘文件.  

其中目前有一款开源的隐藏越狱插件kernbypass,

开源地址(https://github.com/akusio/KernBypass-Public) ,我大概看了一下原理和流程, 其注入了一个tweak到所有进程,  检查当前APP是否在需要隐藏越狱的名单中, 则暂停当前APP进程, 并通知其deamon程序通过内核端口tfp0修改内核中该APP进程的相关数据, 实现chroot当前APP进程的根目录到/private/var/MobileSoftwareUpdate/mnt1, 然后再恢复APP进程继续执行.

这款插件目前在我的iphone手机中测试对建行APP并不能有效, 而且其注入到每个进程的tweak dylib也极容易被针对性检测, 以及/private/var/MobileSoftwareUpdate/mnt1 在我的ios系统中查看到该目录为空, 是否意味着目标APP无法访问到任何根目录中的文件, 这也及其容易被针对性检测.


让我们来回想android的magisk hide是如何做的,  magisk由于patch了boot启动文件, 在系统启动的早期阶段, 其利用linux的namespace mount构建了一个虚拟文件系统附加到系统原生的文件系统之上.

但是遗憾的是,目前来说ios的越狱都不是在系统的早期阶段, 而且ios的XUN内核也不支持namespace mount功能.


好在天无绝人之路,从ios10.3开始,  苹果采用了APFS磁盘文件系统格式,  APFS有一个快照功能, 可以将一个磁盘分区的状态固定在某一个时间点, 并且支持单独以只读方式挂载磁盘快照(本身ios的rootfs就是以这种方式挂载的system分区). 所以我们也可以利用这一点, 针对特定APP来实现类似于systemless的反越狱检测方式.  


当然一个人的力量是有限的,整个越狱社区的发展离不开众多开发者, 用户以及第三方的支持,  只有我们开发者使用技术的力量,  协助第三方壮大整个越狱生态,  才能让更多的用户选择越狱, 不排斥越狱. 才能避免被部分APP以强迫性行为倒逼我们用户进行二选一, 进而促进整个越狱社区的良性循环.  



有兴趣的小伙伴可以加入我的越狱研究小群(703156427).

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • iOS的越狱检测和反越狱检测原理剖析 为什么要检测越狱?因为越狱后会大幅降低安全性。对于一些金融类的APP或者游戏...
    萝卜_7fad阅读 13,805评论 3 19
  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,598评论 1 180
  • 如果你看完书中的所有例子,你很可能已经做完你的实验和在已经越狱的iPhone上的研究。因为和许多人一样,几乎所有的...
    fishmai0阅读 15,788评论 2 42
  • 1. 前言 若干年前,大家看到iPhone互相问好的第一件事是“你越狱了吗”。据不完全统计,早期有80%左右的iP...
    nongjiazhen阅读 3,786评论 0 5
  • 1. 前言 若干年前,大家看到iPhone互相问好的第一件事是“你越狱了吗”。据不完全统计,早期有80%左右的iP...
    Wind_Z阅读 13,130评论 3 40