Pixel 3 刷入AOSP改良版 FartExt 脱壳机实录
Pixel 3 刷入AOSP改良版 FartExt 脱壳机实录
FART作为 ART 层面的主动调用脱壳方案,在解释器中逐方法执行并 dump CodeItem,做到「抽取壳克星」。本文基于 CrackerCat/FartExt(FART 改良版)修改编译。
一、问题
原版 FART 脱壳时,子线程疯狂持有mutator_lock+ 频繁触发 GC → 主线程饥饿 →应用直接闪退,大厂加固跑不完。
一句话:子线程跑得越欢,主线程死得越快。
二、脱壳样板
三、解决思路
锁内只做最小提取,dump + IO 全丢锁外,再加主动 yield 让出 CPU。
Thread t=newThread(newRunnable(){@Overridepublicvoidrun(){// 降到 nice +19,把 CPU 让给前台 UIProcess.setThreadPriority(Process.THREAD_PRIORITY_LOWEST);Thread.currentThread().setPriority(Thread.MIN_PRIORITY);...}});t.setDaemon(true);t.setName("fart-worker");t.setPriority(Thread.MIN_PRIORITY);t.start();loadClassAndInvoke(...);Thread.yield();// 每个类都让步if(idx%10==0)Thread.sleep(5);// 每 10 个类 5msif(idx%100==0)Thread.sleep(50);// 每 100 个类 50ms四、效果
改良版——全程稳定跑完
出现run over表示所有类脱壳完成(包含主动调用)。
五、脱壳产物
修复后的 Dex 直接拖入 Jadx,业务代码逻辑一览无余。
⚠️ 合规声明
本文仅供安全研究与学术交流,未经授权对第三方应用逆向属违规行为,责任自负。
