@
ysc3839 没编辑完,按 ctrl+回车发出去了...
使用 myrunas 这个工具解决了。看雪:
bbs.kanxue.com/thread-185411.htm我用的 vs2019 ,runasdll 源码中最后的 test 函数必须重新命名,用 test 编译器会报错。
同时需要更改 output.def 中的 test 编译。
缺点是,这个工具需要读取 MyRunas.ini 中的密码,而且是明文储存...并不安全。临时把密码硬编码写入 dll 编译,明天上班再加点加解密算法了。
只要在源代码 dllmain.cpp 中的
if (!strlen(szPassword))
{
printf("读取密码文件%s 失败,请检查设置是否正确!\n", szIniFile);
MessageBox(NULL, "读取密码文件失败,请检查设置是否正确!", "", NULL);
}
else
{
MByteToWChar(szPassword, wcsPassword, sizeof(wcsPassword)/sizeof(wcsPassword[0]));
}
改为
if (!strlen(szPassword))
{
strcpy(szPassword, "123456");
MByteToWChar(szPassword, wcsPassword, sizeof(wcsPassword) / sizeof(wcsPassword[0]));
}
else
{
MByteToWChar(szPassword, wcsPassword, sizeof(wcsPassword)/sizeof(wcsPassword[0]));
}
直接把密码 123456 写入 szPassword 中重新编译出 dll 就可以。
MyRunas.ini 直接删掉就好。