我正在为 Windows 7 的 MSV1_0 构建一个自定义身份验证子包。我使用了 Windows SDK 中的 msvsubauth 示例,我有 2 个关于我面临的一些问题的问题:
当我试图确保调用例程并将注册表中的 Auth0 属性设置为我的包并在创建文件的 Msv1_0SubAuthenticationRoutine 末尾添加一个简单的代码时:
// // Cleanup up before returning. // Cleanup: hTestFile = CreateFile( TEXT("C:\\lsa\\lsa.txt"), GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if(hTestFile != INVALID_HANDLE_VALUE) { CloseHandle(hTestFile); } return Status; } // Msv1_0SubAuthenticationRoutine
显然,该程序包被调用,因为当我输入密码时,我从 Windows 收到一条错误消息“参数不正确”,这是一个好兆头。但为什么我会收到这个错误?当从单独的 .exe 文件执行完全相同的代码时,它会完美运行并创建测试文本文件。我已经检查了权限并为“每个人”设置了“完全控制”。有任何想法吗?SDK 并没有具体提到 LSA 为 auth 包中的代码创建了什么样的隔离。
第二个问题是测试AP。目前,每次更改我都会重建库,将其复制到测试 VM,然后复制到 System32 文件夹并重新启动它。有没有更简单的方法来做到这一点?
预先感谢!