Sysmontap回调与ifmib host候选结果

## Implementation / Validation Update · 2026-10-20 · 回调时间链与ifmib参考候选

类型devlog。整体30/66、剩36;当前整机发送率正式0/5、Gate R未关。同一AI分时完成方案/实现/测试/分离复核,无子代理。基线2540c9a0;本批手机API/写/新run/launch/signal/安装全部0,Mac192和Lab19包与产品代码不变,历史已验不重测。手机64/128metadata空闲观察仅沿用上批时点,不冒充新鲜准入,准备槽0、正式容量无。

### 回调注册、捕获与字典的原编码链

从既有原件提取5个有限根1281编码,每条与原始地址/word核同;3个新接口方法的17中转目标/34步全部地址可解析,未强行命名缺少导出的外部函数。原system request注册kind=2,block invoke经ADRP+ADD及认证槽存储指向实际system回调;回调内mach_absolute_time返回的x0在无中间BL且无x0改写时保存到异步block+0x30。后者调用_handleSysmonSystemTable:startTime:endTime:时,x3来自_systemLastSampleTime(offset208),x4来自捕获的End;调用后存回End+1。该ivar初始化也来自mach_absolute_time。

handler把x3/x4经numberWithUnsignedLongLong:分别写入原CFString键StartMachAbsTime、EndMachAbsTime;字典setter原selector是setObject:forKeyedSubscript:。这是实机固定代码的静态路径E1,不是仅靠SDK字段名判断。下一段Start=上一段回调End+1 tick,在已观察timebase125/3下1tick=125/3纳秒;不是独立内核计数读取时刻。End在回调收件路径读取,不能据此把该时刻与sysmond/内核真正采样时刻等同,不能按表面包围关系拟合偏移或漂移。

primary0.125149秒/23887872B;第二reader直接从原缓存按不同位字段运算核1281原word、71关键编码、11 slide3链成员查询、3处export+nlist精确调用、注册/捕获/字段键与+1更新,3新软件控制通过;0.209759秒/23330816B。独立reader不导入primary解析/数据流解释,先自行推导后比较图。初primary错误期望setObject:forKey:被原selector拒绝,a01失败/source保留;独立a01把d0浮点load误判为x0写、a02漏准入已保管selector缓存,两次失败保留,a03只修寄存器类型/加入既有.01来源,不采新手机样本、不放行任意未知编码。

### 两条候选不直接充参考

networkInformation的3原编码加载DTNetworkInterfaceInfo类并尾调interfaceNameMappings;两个相关方法37/90编码与17共享中转保管,支持接口名映射路径,尚无可用整机bytes、scope或源时间证据。本批不调用手机该方法,不用方法名冒充独立计数。

libsysmon实际导出/nlist存在sysmon_table_get_timestamp。原getter仅2编码,返回table+0x10的64位槽;连同alloc共15编码核同,但字段实际类型/赋值来源/时钟域尚未证明。已有原常量为Timestamp;“名称叫timestamp”不意味着值就是mach tick。选定DVT时钟根中无已解析的该getter直接调用,并未穷尽所有间接调用或证明全系统不使用。内部table字段可由公开DTX取得仍未证,不通过注入/改Apple二进制补取。

### 新ifmib路径及host实读

固定Apple XNU同一commit的[if_mib.c](https://github.com/apple-oss-distributions/xnu/blob/1031c584a5e37aff177559b9f69dbd3c8c3fd30a/bsd/net/if_mib.c)和[if_mib.h](https://github.com/apple-oss-distributions/xnu/blob/1031c584a5e37aff177559b9f69dbd3c8c3fd30a/bsd/net/if_mib.h)两份SHA保管。IFMIB_IFALLDATA/IFDATA_GENERAL→make_ifmibdata→if_data_internal_to_if_data64;所读实现直接复制64位bytes/packets,不经过此前rtsock ALIGN_BYTES路径。这里只能给E1候选机制,不能推导实机iOS沙盒允许或目标内核逐指令等同公开版本。

按先落合同,独立host C探针使用原header定义/当前host SDK编译,仅两次只读sysctl(长度、内容),MIB=[CTL_NET,PF_LINK,0,3,0,1],无newptr/newlen,最多1MiB,大小/记录/名称检查失败不重试。原blob、源码/二进制/编译器/SDK/固定头SHA私有保管;Python按C输出的实际ABI以第二读法核所有记录,不引用C解码数值。

| host探针事实 | 结果 |
| --- | --- |
| record/align/dataOffset/dataBytes | 180B / 4 / 52B / 128B |
| bytes与packets字段宽度 | 各8B |
| sent/received/packets sent/received offset | 124/116/92/76B |
| 实际原件/接口记录 | 5940B / 33 |
| 长度首响应/探针内总耗时 | 0.000036 / 0.000590秒 |
| 编译guard/退出峰RSS | 0.418327秒 / 48660480B |
| 执行guard/退出峰RSS | 0.433725秒 / 1261568B |
| bytes低10位非零字段 / 高32位非零字段 | 30 / 6 |

以上是E2 host候选及ABI事实,单点不算mean/P95成本资格;无iOS通道或E4证据。它提供比“IFLIST2仍经过原rounding代码”更值得实测的新路径,不能改判旧量化模型/反例、不能解除当前crossInterfaceSumAllowed=false。当前probe只读host接口,不发布真实接口名/地址。

### 下一执行方向与仍开门槛

优先另立Lab20最小self-owned ifmib64候选:显式新reference kind/version、保留旧getifaddrs与全部历史数据、验证iOS实际ABI/权限/原blob和64位字段、参考成本与scope;不静默降级或按host结果自动切换参考。先文档及软件源冻结,实际手机升级/任何新run须另立全量保全和64真实容量准入;本批不直接安装/归位。若iOS权限/ABI不成立,如实保留,不重签目标App或提升权限绕过。精确源窗/字节层仍待进一步同场研究,正式五轮前Gate R必须关闭。GitLab/网站/通知沿Owner授权保留partial,公证继续暂缓。