有关HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options
映像劫持的示例代码~~~~
代码如下
#include <windows.h >
#include <iostream>
using namespace std;
void main()
{
TCHAR SubKeyName[] = L"SOFTWARE//Microsoft//Windows NT//CurrentVersion//Image File Execution Options//taskmgr.exe";
DWORD dwDisposition;
HKEY hKey;
int createKeyReturn = RegCreateKeyEx(HKEY_LOCAL_MACHINE, SubKeyName, 0, L"REG_SZ", REG_OPTION_VOLATILE,
0, NULL, &hKey, &dwDisposition);
int openKeyReturn = RegOpenKey( HKEY_LOCAL_MACHINE, SubKeyName, &hKey );
TCHAR filePath[] = L"C://Program Files//TTPlayer//TTPlayer.exe";
int setValueReturn = RegSetValueEx( hKey, L"debugger", 0, REG_SZ, (unsigned char *)filePath, sizeof(filePath) );
wcout << L"RegCreateKeyEx's returnValue:" << createKeyReturn << endl;
wcout << L"RegOpenKey's returnValue :" << openKeyReturn << endl;
wcout << L"RegSetValueEx's returnValue :" << setValueReturn << endl;
RegCloseKey(hKey);
}
第一次调用删除结果:全为0,因为#define ERROR_SUCCESS 0L 这表明全部调用成功。
第二由于debugger已经存在,所以结果为5,0,0。结论就是RegCreateKeyEx返回值不为ERROR_SUCCESS表明要创建的值已经存在。