我已经写了一个用户经理脚本 NTLMSetUserInfo 设置某些用户的密码,包括 ADMIN...我注意到的是,如果我这样做,则用户名 /密码组合非常适合所有方案,例如telnet,http auth等,但不能进行浏览。

经过进一步检查,我注意到,当通过内置的CE配置网页设置管理员密码时,它可以正常工作。

管理员注册表看起来像是我使用的 NTLMSetUserInfo

NT = [hex value]

管理员注册表包含一个额外的字段, Password 当我通过CE网页设置管理员密码时。

NT = [hex value]
Password = [hex value]

我想 NTLMSetUserInfo 无法正确设置管理员的全局CE密码,因此无法将浏览归档到框中。

我在CE Web代码解析DLL中找到了以下功能 SetPassword. 。我编写了一个单独的功能来处理管理员案件,但我无法进行编译。这是它的片段

#include <windbase.h>

bool UserAccounts::SetAdminPassword(const std::string &passwordOld, const std::string &password)
{
    wchar_t wpass[512];
    wchar_t wpassold[512];

    mbstowcs(wpass, password.c_str(), 512);
    mbstowcs(wpassold, passwordOld.c_str(), 512);

    return SetPassword(wpassold, wpass) == TRUE;
}

这不会编译说明 'SetPassword': identifier not found. 。我注意到 CE文件 SetPassword 它有以下行

要使用此功能,您必须在cesysgen.bat文件中包含密码组件,fspass。

我不确定这意味着什么,因为我对PlatformBuilder非常陌生等...

谁能帮助我或指向正确的方向?

有帮助吗?

解决方案

将以下内容添加到代码文件的顶部:

extern "C" BOOL SetPassword(LPWSTR lpszOldPassword, LPWSTR lpszNewPassword);

链接器将完成其余的工作。

其他提示

我现在无法确切答案(从未使用过此身份验证)。但是,我只是尝试使用(实际上是编译) SetPassword 在我拥有的蓝牙蓝牙驱动程序的克隆版本中,它毫无问题地编译了它。

当我尝试在子弹或常规独立项目中使用它时,我遇到的错误与您遇到的同样错误。因此,快速解决方案可能是在驱动程序中执行此操作,看看它是否有效。

关于文档中的评论,我认为它们是归结为 SYSGEN_FSPASSWORD 在目录中选择,尽管我还没有追踪此内容。我想如果可以设置密码等,您可以选择此选择。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top