Skip to content

G111 从真实客户端实现判断是否值得设备资格试验 ​

1. 目标与当前事实 ​

基线4048253/main、工作区干净;Owner同AI方案/实现/测试/自复核,不是第三方。G110已核真实vmtracking服务谱系,但没有ABI/无注入/physical footprint字段/读点/实际速度证明。原全54、500ms发布、五轮各120槽、连续/有效100%、独立2MiB或5%、完整准备20/40MiB转换/尾部与所有失败保持;formal0/5、accepted0/54。源诊断不冒充指标验收。

Owner要求自行退出自有测试App,已另次使用现有SDKProcessControl一次退出且连续两次确认、连接关闭,私有记录单列;此操作不是G111采集/验收,旧PID/出生仅作历史,后续测试须重新绑定新进程。G111不自动重启目标、不采Session、不信号手机。已装129和唯一DMG不变,内部公证暂免不等于最终公证/GPL关闭。

2. 只读限定输入与路径 ​

先固定G110已留存MemoryPlugin原件和本机DVTInstrumentsFoundation.framework真实Mach-O原字节。后者4656816B超过G1104MiB文件限,所以本批预先单文件8MiB/总24MiB/最多8个已定位输入;不延用旧预算。静态读取,不动态加载厂商私有类、不执行其方法、不猜远端selector。不全盘/全Xcode扫描,不读Session/大blob。真实ObjC class/method编码与IMP地址、限定XRVMInstrument/XRVMRun/XRVMState和实现侧vmtracking相关client路径,必要时至多24个短方法片段,每片≤16KiB机器码/输出≤1MiB、总选择片段≤384KiB;不能把host ObjC签名自动视作DTX远端ABI。

关注真实调用链:service与selector→参数/类型→target权限/无注入行为→输出字段/单位→采样时刻绑定与配置周期,优先给出可决定去留的实现证据,不无限堆字符串名。候选遗漏/压缩/间接调用即unknown,不用负向字符串搜索证明全平台没有能力。

3. 控制、资源与停止 ​

O(固定有限Mach-O与输出字节),串行1;元数据otool/nm/工具帮助各60s/树256MiB,单元数据stdout≤16MiB;选定反汇编单段30s/树256MiB/≤1MiB。解析/控制120s/树128MiB,预计静态≤30s;总静态工具≤180s,不新建环境/worktree/常驻服务。既有监督器仅终止本批自启工具树;资源超限即停并保留失败,不重跑同一device attempt。本批没有device attempt。

实际输入前运行解析反例:类限定不跨类/同名方法消歧、编码不当remoteABI、IMP有界和节段映射、缺失字段/单位/读点unknown、快照名不证明gauge读点、region量不偷换footprint、间接未知call不作为无注入证明。保留实际元数据和反汇编完整片段、文件SHA/精确行与行SHA;解析失败保留旧输出,新版必须另名并声明。

4. 决策门 ​

只有可追溯实际客户端调用契约与非侵入行为证据足以支持,才另立一次有界自有目标资格测试;不运行含Allocations的Game Memory组合,不以self权限代替商店App。若真实VM Tracker只产region或需要目标修改,明确拒其作为当前scalar physical-footprint产品替换,不换RSS/dirty求和、不放宽500ms/误差或缩54。若仍有具体缺口,限定下一真正实现检查路径而不是重复名字审计。

其他53项保留在总目标和参考设计;首项未过不称后项验收完成。公证/GPL/电学温度缺仪器、GUI/独立准确、绝对100µs成本、A1OPEN/HybridFROZEN/G9OFF保持。

5. 交付闭环 ​

新增私有g111输入pin/原字节/受控解析/限定实现片段/资源/报告/清单,旧G110全部原件不变;产品SDK/Fixture/已装129全tree与唯一DMG不变。计划追加实际结果,同步goal/串行清单/status/handoff/知识页和总览/HomeExtras/时间线,新增不可回改HTML。站点仅build300s/树3GiB,不发布;窄文档提交后GitHub/GitLab各一次、单Webhook、失败partial不重试不阻断。目标持续active,不以此静态审计替代正式五轮与逐指标验收。

Scope Update · 2026-10-07 · 静态工具异常保留与选择片段修正 ​

首metadata解析误把classrefs当重复classlist而停;r1已限section,但原始selref含chained-fixup而不是普通地址而停;r2使用otool已解码selrefs并核section长度/逐项字符串一致,16控制后4类121方法成功。首dis-symname工具exit0却报Can't find,非成功反汇编;随后的--arch默认Mach-O模式忽略start/stop,实际输出10230197B全text,超过预先1MiB选择片段限,按本批执行偏差记partial,不能用exit0冒充预算通过。两件原日志/监督资源保留,不删、不改旧预算。未发生手机调用/产品改变。

后续仅从已pin原字节提取x86_64 thin slice(固定FAT表偏移/长度/SHA),不用--arch/--macho,以generic disassembly start/stop明确控制段;新增流式stdout1MiB硬门,越限立即终止自身工具树,保留截断/错误记录。该方式先自有噪声控件证明退出门、再一个具体方法资格;验证输出每条指令地址确在声明范围才准入其余至多24片段。原异常不能由后续成功倒改为完整成功,G111整体partial。host方法签名不是RPC资格:只有实际AuthorizedAPI声明、服务注册和调用链可提供静态协议证据,实际设备ABI/无注入/字段准确性仍另证。

Scope Update · 2026-10-07 · 已定位工厂实现依赖 ​

真实requestVMSnapshot调用XRVMState currentStateForTask:pid:previousState:dehydratedDiffVersion:,DVTInstrumentsFoundation只声明/使用而不提供该工厂的已定位实现。实际已导入SymbolicationDT;本机该framework已stat为5599056B,在本批8MiB/24MiB/8输入预算内。本批另固定这一项真实依赖,并只核XRVMState工厂/其实际callee;原17个片段基础最多另7段,总仍24段/384KiB。先元数据/symbols,必要时同样已控thin/range/stdout硬门;不加载执行、不调用phone、不猜ABI或读点、不把host权限实现外推iOS。若该具体工厂仍不提供scalar footprint/真读点则停止此替换路线,保留未证而不持续堆名称。

Validation Update · 2026-10-07 · G111协议与实现已核,但未准入更快scalar来源 ​

G111真实VM Tracking客户端协议已核:4类121方法、17片段7397B,已证DTXAllowedRPC及实际setTarget/requestVMSnapshot调用;XRVMState为region汇总,未证scalar physical footprint/真读点/设备无注入。原54/500ms/五轮保持。

同AI方案/执行/测试/自复核,非第三方验收。E1为固定Mach-O/ABI/实现证据,E2为限定解析与输出守卫控制,E3为本机工具链;本批0phone calls/0目标信号/0Session/0产品SDKFixture修改/新包,没有新增设备E4或指标通过。Owner前一操作已一次退出自有Fixture并连续两次核退出/服务关闭,另留私有记录;不是G111试验,旧PID/life只作历史,后续须新绑定。129唯一安装与唯一DMG未变,内部未公证。

1. 实际协议不再是猜测selector ​

固定MemoryPlugin1720976B、DVTInstrumentsFoundation4656816B、已定位SymbolicationDT5599056B原件,三件与来源现时SHA一致;从FAT表验证x86_64 offset/size并保留thin副本,总原件与thin 16176720B,在预先24MiB/单8MiB内。未动态加载/执行私有framework,未全Xcode扫描。

DTVMTrackingService继承DTXService,实际DTVMTrackingServiceAuthorizedAPI继承DTXAllowedRPC且列以下5方法;服务注册实现发布vmtracking/immediate/deferred与实际class,而非单字符串。这里记录本机版本静态ABI,不作iPhone服务存在/支持的实测结论。

AuthorizedAPI方法本机ObjC编码
configureLaunchEnvironment:@24@0:8@16
setTargetPid:referenceDate:v32@0:8@16@24
requestVMSnapshot@16@0:8
startTrackingv16@0:8
stopTrackingv16@0:8

插件XRVMRun.startRecordingPid:onDevice:desiredMicrosecondInterval:error:实际区分isLocal与remote,远端通过connection.makeChannelWithIdentifier建立channel,DTXMessage.messageWithSelector:objectArguments构造setTargetPid:referenceDate并sendControlAsync。本机selector编码不能自行猜远端参数;本批已进一步核实真实client构造的对象参数为NSNumber目标进程与NSDate参考日期。worker构造无参数requestVMSnapshot,以sendControlSync/带replyHandler取回,再objectWithAllowedClasses/hydrateWithPreviousState;真实客户端dispatch证据比名字更强,但实际设备reply schema/版本/权限未知,未做RPC试探。

desiredMicrosecondInterval存入host worker的_workerInterval,worker循环调度快照,不是已证iPhone原生500ms或更快的采样配置;实际延迟/周期unknown。不能把3秒UI默认或host可写周期当实测速度。

2. 为何暂不把VM Tracker替换physical footprint ​

XRVMState的数值getter为virtualSize/residentSize/dirtySize/swappedSize。实际_recalculateSizes遍历region,筛除若干区域后分别累加字段;encodeWithCoder包含VMStateVersion/MachAbsolute/TotalSize/SharedStart/SharedLength/Regions与annotation系列。这一已核host返回对象没有被证明对应目标TASK_VM_INFO.phys_footprint,不以resident、virtual或dirty+swapped替换。SymbolicationDT另有physicalFootprint getter/ledger名字,但不是当前XRVMState接口、更非已证远端scalar读取通道;不作全平台无footprint能力的负向推断。

requestVMSnapshot实际调用XRVMState.currentStateForTask:pid:previousState:dehydratedDiffVersion;这3件固定host二进制的符号定义中未定位此factory,SymbolicationDT的实际导入与其他内存能力不等于提供了该factory。具体设备端实现/真实Raw字段仍未知,停止把metadata直接外推为可替换数值源。sourceAdmitted=false,directScalarSourceReplacementAdmitted=false。

3. 时刻与非侵入边界 ​

VMStateMachAbsolute序列化字段存在;machAbsoluteTimestamp只是读对象offset8的已存值,而且setSyntheticMachAbsoluteTimestamp可写该槽。已存timestamp不等于已证内核footprint读点,也不自动证明和reference Date在同一轴;actualDeviceAcquisitionReadPoint=unknown。不得拿字段名、host回包时刻或synthetic setter补成精确device读界。

当前host service的configureLaunchEnvironment返回同一输入对象:选定32B函数内retain原参数后autoreleaseReturn,未添加环境变量。setTargetPid调用DTInstrumentServer.taskForPid,已继续核授权XPC task_for_pid路径及task-port缓存。这是非侵入方向的实现证据,并不排除未核callee/设备端差异,也不证明所有目标/商店App无注入。injectionAbsenceProven=false,实际device资格仍未放行。没有启用Allocations/组合Game Memory、不目标重签/注入/Hook。

4. 精确可复核锚点与工具失败 ​

4个具体classlist共121个instance methods(74/16/7/24),区分metaclass/classrefs与protocol嵌套。17个方法片段共7397B,每条机器码与thin原字节交叉核、每条地址都在明确start/end;generic objdump的nearest-symbol标签与部分ObjC message注释可误指类/selector,不据这些标签猜方法,以metadata IMP和真实selref内存映射/调用寄存器为依据。行锚点既有日志SHA又有行SHA。

新片段锚点行SHA前缀
selected/extra-00.txt L12c825141544bd42ae
selected/00-foundation.txt L805c0563a3b520732
selected/01-foundation.txt L2057178fbf20c30894
selected/02-foundation.txt L151118fa2f1d956eb4
selected/05-foundation.txt L271ef5b32412e61190
selected/05-foundation.txt L3201341110c2746934
selected/06-foundation.txt L3d676270878681c83
selected/07-foundation.txt L3f1d05cb2bcae2f9d
selected/08-foundation.txt L103a246cf308e8df40d
selected/08-foundation.txt L107aa993c58cd91deab
selected/extra-01.txt L52a5367fe589f70557
selected/extra-02.txt L23088d1cfdfb9e861b
selected/09-plugin.txt L1053a987fef22035d6b
selected/10-plugin.txt L731cb8f698c86256a3

初metadata解析误把classrefs也计作class而停,r1只修section又遇chained-fixup非普通指针而停;首/次源码与失败日志不动。r2使用Apple otool已解码selrefs、核section数量/逐项实际cstring匹配,不自作mask猜修复链,16实际控制后成功。首11和r1的13为同工具共享控制重跑,不叠加当新增覆盖。

首dis-symname exit0却没有指令,按语义失败留存。次--arch默认Mach-O模式忽略start/stop,实际全text输出10230197B > 原1MiB选段门;输出检查晚于退出,未做到超限即停,故G111整体partial,工具exit0与时间/RSS通过不消除输出门违规。原过量输出保留;后续对其只做有界片段提取不掩盖原违规。后续thin/generic模式无--arch,先1MiB流式硬限控件(自有65536B噪声、1024B限触发并终止工具树)再准入:所选新片段均通过硬门,未重新全text反汇编。

12证据等级classifier控制 + 16最终method parser控制 + 1输出门控制,合29工具控制,不等于29个指标通过。classifier不是完整Mach-O解码器/设备非侵入或source准入门;含completePath参数也不具全局无注入证明,已单列scope-note,未用于准入。

5. 真实资源与全目标 ​

工具监督wall s直接峰RSS Bexitstop
disassemble-first-request.resources.json0.13552621667840None
disassemble-range-request.resources.json3.89629455746560None
findings.resources.json0.247025279920640None
foundation-objc.resources.json0.12639133628160None
foundation-symbols.resources.json0.11899266150400None
methods-r1.resources.json0.265160190586881None
methods-r2.resources.json0.625798351559680None
methods.resources.json0.245359190750721None
objdump-help.resources.json2.00021613639680None
output-limit-control.resources.json0.239723114647041None
plugin-objc.resources.json0.12487621544960None
plugin-symbols.resources.json0.12184724412160None
selected/09-plugin.resources.json0.129358116817920None
selected/10-plugin.resources.json0.233447116039680None
selected/11-plugin.resources.json0.113254114810880None
selected/12-plugin.resources.json0.121565114769920None
selected/13-plugin.resources.json0.229436115384320None
selected-methods.resources.json3.989791812359680None
selected-request.resources.json0.235123115548160None
symbolication-objc.resources.json0.11528143622400None
symbolication-symbols.resources.json0.12415170901760None

选定解析本体0.469903s/峰35016704B;限定片段处理3.786964s/峰81104896B;17段合7397B。物理I/O峰unknown;树RSS采样不排除采样间峰。二进制读取必须如实计,不能填“所有binary读取0”;大Session/blob读取0,本批无目标启动/采集或改动。

下一G112应使用已证真正DTX协议和安全opaque reply处理/设备非侵入资格,决定是否值得一次有界自有目标schema资格,不再只搜名称,不直接接入产品;没有scalar/读点/权限证据则拒VM Tracker为当前指标快捷替换。资格前先完整保全旧参考、证明不会执行目标注入路径/安全值解析/释放与停止门,并重新绑定新进程;原all54/500ms/五轮120槽/独立2MiB或5%/准备20和40变化/尾部全部失败不动。formal0/5、accepted0/54,独立准确/GUI/绝对100µs成本/电学温度缺仪器/最终公证GPL/A1OPEN/HybridFROZEN/G9OFF仍open。

本批窄10文档/不可回改HTML,site仅build不发布;G110旧封存/产品SDK264/v3/已装129全tree/唯一登记与DMG收尾核同。GitHub/GitLab每端一次、单Webhook,失败partial不重试不阻断产品;无新环境/worktree/常驻服务/memory写。此处只是协议/实现资格进展,不能自判完成原产品交付。

Perfowl · Performance Observer