来聊一个launchd新的奇怪机制

首先我们来看一段panic log:
“panicString” : "panic(cpu 1 caller 0xfffffff00dc589a4): “userspace panic: File Radar to: [ launchd | missing executable ]. Set boot-arg launchd_missing_exec_no_panic=1 to work around. Job: ‘aqua.igg.daemon.plist’ Executable: ‘/Applications/iGameGuardian.app/no_gg_daemon’”\nDebugger message: panic\nMemory ID: 0x1\nOS version: 17D5026c\nKernel version: Darwin Kernel Version 19.3.0: Sun Dec 8 21:03:13 PST 2019; root:xnu-6153.80.8.0.1~13/RELEASE_ARM64_T8010\nKernelCache
可以看到由于插件igg创建了一个空守护进程文件守护一个不存在的进程
当checkra1n试图操控launchd加载这个守护进程文件的时候,由于找不到对应的文件,导致panic
解决办法是删掉这个空守护进程文件,或者按提示把launchd_missing_exec_no_panic=1加到boot-args中(未测试)
同时可以看到系统版本号为13.3.1(17D5026c),内核版本号19.3.0(6153.80.8.0.1~13)
这个机制我确定在之前的版本中是不存在的。那么问题来了,苹果为什么要设置这样一个奇怪的机制?恶心len?
开发者只能以后注意一下 不要学iGG开发者搞这种守护空气的守护进程

因为有干掉lockdownd和amfid的你在这里铲土