能力值:
( LV2,RANK:10 )
|
-
-
2 楼
HKEY hKEY = NULL;
LPCSTR thunderpath = ("Applications\\Thunder.exe\\shell\\Open\\command");
char cvPath[MAX_PATH] = {0};
long dw;
long r = RegQueryValue(HKEY_CLASSES_ROOT , thunderpath , cvPath , &dw);
if (r != ERROR_SUCCESS)
{
AfxMessageBox("查询注册表值失败");
return ;
}
CString path;
path.Format("%s" , cvPath);
int l = path.ReverseFind(' ');
CString tt = path.Left(l);
ShellExecute(NULL , "Open" , tt , NULL , NULL , SW_SHOW);
这是代码,在release下面提示查询失败,在debug下面是好的
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
权限问题,debug 权限比较大, 提权一下就可以了
BOOL EnableDebugPriv()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
LUID Luid;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
{
return FALSE;
}
if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &Luid ))
{
CloseHandle(hToken);
return FALSE;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = Luid;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(tkp), NULL, NULL))
{
CloseHandle(hToken);
return FALSE;
}
return TRUE;
}
|
|
|