Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

59 lines
1.2 KiB

#include "stdafx.h"
#include "CertObj.h"
#include "common.h"
#include "process.h"
//////////////////////////////////////////////////////////////////
BOOL GetProcessName(LPTSTR szProcname, DWORD dwSize)
{
TCHAR szPath[MAX_PATH], szFilename[MAX_PATH], *ptr;
// Get the path to the calling process
if (!GetModuleFileName(NULL, szPath, MAX_PATH))
return FALSE;
// Get the filename of the process without the extension
ptr = _tcsrchr(szPath, '\\');
if (ptr)
_tcscpy(szFilename, ++ptr);
else
_tcscpy(szFilename, szPath);
ptr = _tcsrchr(szFilename, '.');
if (ptr)
*ptr = 0;
// Convert the name to all caps
_tcsupr(szFilename);
// Return the information
if (_tcslen(szFilename) > dwSize)
return FALSE;
_tcscpy(szProcname, szFilename);
return TRUE;
}
BOOL AmIAlreadyRemoted()
{
BOOL bReturn = FALSE;
// check if the process i'm in is inside a Dllhost.exe
TCHAR szProcName[MAX_PATH];;
GetProcessName(szProcName, MAX_PATH);
if (!_tcsicmp(szProcName, _T("DLLHOST")))
{
IISDebugOutput(_T("Remoted in Dllhost\r\n"));
bReturn = TRUE;
}
else
{
IISDebugOutput(_T("InProcess\r\n"));
}
return bReturn;
}