Ich hab Vista und da läuft das leider nicht.
Ich hab mir mal den Code angeguckt und herausgefunden, dass man nur einige Offsets wissen muss um das Programm auf Vista laufen zu lassen.
Leider weiß ich nicht welche oder wie man die rausbekommt. Vielleicht könnt ihr mir helfen^^
Code:
DWORD InitDriver()
{
//Variablen deklarieren und initialisieren
int iRetCode = ERROR_SUCCESS;
HANDLE h_Device = INVALID_HANDLE_VALUE;
DWORD d_bytesRead, d_error;
CHAR ac_driverPath[MAX_PATH];
.
.
.
try
{
if (Initialized)
{
return iRetCode;
}
// Try calling GetVersionEx using the OSVERSIONINFOEX structure.
// If that fails, try using the OSVERSIONINFO structure.
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if( !(bOsVersionInfoEx = GetVersionEx ((OSVERSIONINFO *) &osvi)) )
{
// If OSVERSIONINFOEX doesn't work, try OSVERSIONINFO.
osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
if (! GetVersionEx ( (OSVERSIONINFO *) &osvi) )
return -1;
}
switch (osvi.dwPlatformId)
{
// Tests for Windows NT product family.
case VER_PLATFORM_WIN32_NT:
// Test for the product.
if ( osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0)
{
//fprintf(stderr, "[COLOR="Red"]Microsoft Windows NT 4.0[/COLOR] ");
pid_offset = 148;
flink_offset = 152;
authid_offset = 24;
token_offset = 264;
privcount_offset = 52;
privaddr_offset = 80;
sidcount_offset = 48;
sidaddr_offset = 72;
Found = TRUE;
}
else if ( osvi.dwMajorVersion == 5 &&
osvi.dwMinorVersion == 0 )
{
//fprintf(stderr, "[COLOR="Red"]Microsoft Windows 2000[/COLOR] ");
pid_offset = 156;
flink_offset = 160;
authid_offset = 0x18;
token_offset = 0x12c;
privcount_offset = 0x44;
privaddr_offset = 0x64;
sidcount_offset = 0x3c;
sidaddr_offset = 0x58;
Found = TRUE;
}
else if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 )
{
//fprintf(stderr, "[COLOR="Red"]Microsoft Windows XP[/COLOR] ");
pid_offset = 132;
flink_offset = 136;
authid_offset = 24;
token_offset = 200;
privcount_offset = 72;
privaddr_offset = 104;
sidcount_offset = 64;
sidaddr_offset = 92;
/* For Service Pack 2 Beta??
privcount_offset = 84;
privaddr_offset = 116;
sidcount_offset = 76;
sidaddr_offset = 104;
*/
Found = TRUE;
}
else if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 )
{
//fprintf(stderr, "[COLOR="Red"]Microsoft Windows Server 2003[/COLOR] ");
pid_offset = 132;
flink_offset = 136;
authid_offset = 24;
token_offset = 200;
privcount_offset = 84;
privaddr_offset = 116;
sidcount_offset = 76;
sidaddr_offset = 104;
Found = TRUE;
}
[COLOR="SeaGreen"]// Display version, service pack (if any), and build number.
/*
if ( osvi.dwMajorVersion <= 4 )
{
fprintf(stderr, "version %d.%d %s (Build %d)n",
osvi.dwMajorVersion,
osvi.dwMinorVersion,
osvi.szCSDVersion,
osvi.dwBuildNumber & 0xFFFF);
}
else
{
fprintf(stderr, "%s (Build %d)n",
osvi.szCSDVersion,
osvi.dwBuildNumber & 0xFFFF);
}
*/ [/COLOR]
break;
default:
fprintf(stderr, "nOperating System Version %d.%d Not Supported!n", osvi.dwMajorVersion, osvi.dwMinorVersion);
return -1;
break; // Never executed
}
if (!Found)
{
fprintf(stderr, "nOperating System Version %d.%d Not Supported!n",
osvi.dwMajorVersion,
osvi.dwMinorVersion);
return -1;
}
Dann hab ich noch ne Frage, warum versucht ihr Hackshield und Rappelz voneinander zu verstecken? Muss man nicht CE, WPE oder ähnliche Programme verstecken?