Windows 知识摘要
Windbg
- 配置symbols:
D:\symbols\my; srv*D:\symbols\sys*https://msdl.microsoft.com/download/symbols
- 常用命令
.symopt+0x4 !sym noisy
环境变量
- 注册表: HKEY_LOCAL_MACHINE : SYSTEM\CurrentControlSet\Control\Session Manager\Environment HKEY_CURRENT_USER : Environment 通知系统刷新: SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)L"Environment", SMTO_ABORTIFHUNG, 5000, &dwResult);
## Electron 应用分析
- electron的 wss 经常启用证书绑定(Pinning)进程启动时可以通过如下参数来关闭: --ignore-certificate-errors eg. 目标: app.exe --ignore-certificate-errors
- electron的开发者工具- dev 模式,快捷键呼出: win下的快捷键是:ctrl+shift+i,mac下的快捷键是:alt+花+i。
- release 模式,快捷键可能不生效,需要想办法执行mainWindow.webContents.openDevTools()即可。
## Global 和 Local 对象
如 共享内存、命名管道 等,会通过 Global\\ 和 Local\\ 前缀来区分是全局对象和当前用户对象。需要注意的是 Session 0 不属于任何用户,是系统会话,通常是系统服务运行的会话。
具体如下表所示:
| 创建者 | 名称 | 实际位置 |
| ------------- | ------------ | ---------------------------------- |
| Session 0 服务 | `Local\ABC` | `\Sessions\0\BaseNamedObjects\ABC` |
| Session 1 用户 | `Local\ABC` | `\Sessions\1\BaseNamedObjects\ABC` |
| 任意 Session | `Global\ABC` | `\BaseNamedObjects\ABC` |
- 注:
+ 服务中创建的 Local 对象,在其他会话上有可能能通过``Global\```来访问。因为,服务创建的对象可能会被映射到```\BaseNamedObjects\```对象空间里
## QA: 远程连接主机报错:密码认证无效
- 问题:
+ 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa : forceguest=1(默认值0)后,
Mac 下使用 Windows App 远程连接主机报错:密码认证无效
- 处理:
+ [使用Mac远程连接Windows云主机报错:证书或相关链无效](https://www.ctyun.cn/document/10000015/10029144)
- 原因:
+ 0 = 经典 (Classic) - 默认值: 从网络或远程连接到该计算机的本地帐户,以该用户的实际身份(例如 Administrator 或具体用户名)进行身份验证。
+ 1 = 仅来宾 (Guest only): 从网络或远程连接到该计算机的所有本地帐户,强制将其实际身份剥夺并重新映射/降级为 Guest (来宾) 帐户。