Windows嵌入式开发环境搭建:站点配置与权限设置指南
|
去年九月,我蹲在三号实验室靠窗那台ThinkPad X1上配WinEC 7 BSP——显示器右下角还挂着校样水印,是前天印刷厂退回的《BSP定制白皮书》封面,标题被红笔圈了三次:“嵌入式不是Windows子集”,底下压着一行小字:“请勿套用桌面权限模型”。我关了显示器,没动它。 站点配置?你真信那篇《指南》里写的“IIS Express开箱即用”?我原以为只是端口冲突,结果连试三次,每次都是w3wp.exe一拉起就弹0xC0000005,日志里连stack trace都截不全。后来才发现是WinEC镜像里根本没带HTTP.SYS驱动模块,文档里“默认启用”那句——我敢打包票,写的人连targetpc都没连过。老陈蹲在隔壁工位调试串口bootlog,头也不抬甩过来一句:“你试试把ServiceModelReg.exe拖进RAM盘再注册”。我照做了。服务起来了,但HTTP头里User-Agent还是显示“Microsoft-WebDAV-MiniRedir/10.0.19041”,你猜这玩意儿在WinEC runtime里到底调了哪层?我说不准。 权限设置那段更绝。“建议使用LocalSystem账户运行站点进程”——行,我照办。然后某天凌晨三点,监控告警说CEC板卡温度飙升到九十度,查下来是IIS日志轮转脚本在遍历\\Windows\\Temp下所有以“WEC_”开头的文件夹时,误删了正在烧录的osdesign.bin缓存。删完才想起来,那个缓存路径的ACL是继承自LocalSystem对%OSDIR%的Full Control,而%OSDIR%在WinEC镜像里硬编码指向\\Flash\\OS。凉掉的外卖盒还在桌角,铝箔纸皱得像张废电路图。 审稿间的灯坏了半边,剩下一排LED幽幽发绿,照着墙上贴的《安全红线自查表》第三条:“不得绕过SACL审计直接赋权”。可问题是你给一个只跑在CEC上的IIS Express加SACL干啥?它连事件日志服务都不注册。我问过运维,对方回了个六十秒语音:“你先建个本地用户……呃……再把SID手工注入到registry的Lsa subkey下面……具体位置我发你截图啊……”语音到这儿断了,估计是电梯里信号没了。我打开截图一看,是去年十一月发的Teams聊天记录,时间戳写着十八秒前——系统自动补了时区偏移,但没补上人已经离职这事。 优胜劣汰。这话不是夸。是淘汰机制太干净了——谁敢按指南做谁死得快。我们组上周刚挂掉的两台DEP测试机,就是照着那文档里“推荐配置:AppPool Identity设为ApplicationPoolIdentity+启用匿名认证+禁用Windows身份验证”的组合拳打的。烧三天后蓝屏报错全是nt!MiCheckSessionMappedViewConsistency,跟IIS毛关系没有。真正起效的是老王偷偷改的boot.ini参数,加上一句/noexecute=alwaysoff,又顺手把页面文件挪到了RAM盘根目录。没人提这事。文档里不写,但现场都在干。 说到老王,他昨天拿台二手Surface Pro 6拆出eMMC芯片,接CH341A读出来数据,发现里面WinEC 2013的内核镜像末尾塞着一段十六进制硬编码的NTLMv2 hash,明文解出来是“admin123!”。他说这是OEM预装时的后门,但奇怪的是,这个hash只对SMB共享有效,HTTP站点完全不认——连Basic Auth握手都通不过。我翻了三天符号表,最后在wininet.dll的DllMain里看到一行调试残迹:#pragma comment(linker, "/INCLUDE:_HttpAuthStub@8")。这东西早就不link了。所以到底是谁在auth?我不知道。
文章配图,仅供参考 印刷对接的电话响了第三次我才接,那边问:“水印要改成‘内部参考·严禁外传’还是‘草案·非最终版’?”我没答。放下听筒时发现屏幕右上角时间跳成下午四点十七分——其实我忘了关自动校时,系统还连着实验室内网NTP,而真实物理时间是下午两点二十三分。这种事经常发生。时间乱,权限乱,站点乱,文档也乱。它们本来就是一套乱码里的不同校验位。我建议你别搭环境,先找台带JTAG的旧机器,用OpenOCD把WinEC bootrom dump出来,比对一下signature table和public key的offset。如果offset对不上,那整套签名链就失效,后续所有ACL、SACL、IE信任区策略,全是空转。至于那个《指南》,留着当擦镜布挺好——油渍少,纤维密,反光均匀。领导发来语音里最后那句我现在能背了:“你们先把框架搭出来,细节后面迭代。” 对了,上次重启IIS Manager控制台前,我顺手清了下%TEMP%\\iisexp\\下的cache,里头有三百七十二个.tmp,全带时间戳2022-08-01——比WinEC 7 RTM版发布时间早三个月。谁写的?我不知道。你要是碰巧看见哪个temp文件夹里存着debugview的dump,记得别用Notepad++开,它会卡死。用记事本就行,它不解析编码,只吐二进制头。就这么简单。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

