Add files via upload
This commit is contained in:
parent
2dac01560d
commit
db3660cd4d
|
@ -0,0 +1,82 @@
|
|||
#include <windows.h>
|
||||
#include <psapi.h>
|
||||
|
||||
INT StringCompareA(LPCSTR String1, LPCSTR String2)
|
||||
{
|
||||
for (; *String1 == *String2; String1++, String2++)
|
||||
{
|
||||
if (*String1 == '\0')
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ((*(LPCSTR)String1 < *(LPCSTR)String2) ? -1 : +1);
|
||||
}
|
||||
|
||||
PCHAR CaplockStringA(PCHAR Ptr)
|
||||
{
|
||||
PCHAR sv = Ptr;
|
||||
while (*sv != '\0')
|
||||
{
|
||||
if (*sv >= 'a' && *sv <= 'z')
|
||||
*sv = *sv - ('a' - 'A');
|
||||
|
||||
sv++;
|
||||
}
|
||||
return Ptr;
|
||||
}
|
||||
|
||||
BOOL IsProcessRunningA(PCHAR ProcessNameWithExtension, BOOL IsCaseSensitive)
|
||||
{
|
||||
HANDLE hProcess = NULL;
|
||||
|
||||
DWORD ProcessIdArray[1024] = { 0 };
|
||||
DWORD ProcessIdArraySize = 0;
|
||||
DWORD NumberOfBytesReturned = 0;
|
||||
|
||||
if (!EnumProcesses(ProcessIdArray, sizeof(ProcessIdArray), &NumberOfBytesReturned))
|
||||
return FALSE;
|
||||
|
||||
ProcessIdArraySize = NumberOfBytesReturned / sizeof(DWORD);
|
||||
|
||||
for (DWORD dwIndex = 0; dwIndex < ProcessIdArraySize; dwIndex++)
|
||||
{
|
||||
HMODULE Module = NULL;
|
||||
CHAR ProcessStringName[MAX_PATH] = { 0 };
|
||||
|
||||
if (ProcessIdArray[dwIndex] == 0)
|
||||
continue;
|
||||
|
||||
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, ProcessIdArray[dwIndex]);
|
||||
if (hProcess == NULL)
|
||||
continue;
|
||||
|
||||
if(!EnumProcessModules(hProcess, &Module, sizeof(Module), &NumberOfBytesReturned))
|
||||
continue;
|
||||
|
||||
if(GetModuleBaseNameA(hProcess, Module, ProcessStringName, sizeof(ProcessStringName)/sizeof(WCHAR)) == 0)
|
||||
continue;
|
||||
|
||||
if (hProcess)
|
||||
CloseHandle(hProcess);
|
||||
|
||||
if (!IsCaseSensitive)
|
||||
{
|
||||
PCHAR String1 = CaplockStringA(ProcessNameWithExtension);
|
||||
PCHAR String2 = CaplockStringA(ProcessStringName);
|
||||
|
||||
if (StringCompareA(String1, String2) == 0)
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
if (StringCompareA(ProcessStringName, ProcessNameWithExtension) == 0)
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
INT main(VOID)
|
||||
{
|
||||
IsProcessRunningA((PCHAR)"chrome.exe", FALSE);
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
#include <windows.h>
|
||||
#include <psapi.h>
|
||||
|
||||
INT StringCompareW(LPCWSTR String1, LPCWSTR String2)
|
||||
{
|
||||
for (; *String1 == *String2; String1++, String2++)
|
||||
{
|
||||
if (*String1 == '\0')
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ((*(LPCWSTR)String1 < *(LPCWSTR)String2) ? -1 : +1);
|
||||
}
|
||||
|
||||
PWCHAR CaplockStringW(PWCHAR Ptr)
|
||||
{
|
||||
PWCHAR sv = Ptr;
|
||||
while (*sv != '\0')
|
||||
{
|
||||
if (*sv >= 'a' && *sv <= 'z')
|
||||
*sv = *sv - ('a' - 'A');
|
||||
|
||||
sv++;
|
||||
}
|
||||
return Ptr;
|
||||
}
|
||||
|
||||
BOOL IsProcessRunningW(PWCHAR ProcessNameWithExtension, BOOL IsCaseSensitive)
|
||||
{
|
||||
HANDLE hProcess = NULL;
|
||||
|
||||
DWORD ProcessIdArray[1024] = { 0 };
|
||||
DWORD ProcessIdArraySize = 0;
|
||||
DWORD NumberOfBytesReturned = 0;
|
||||
|
||||
if (!EnumProcesses(ProcessIdArray, sizeof(ProcessIdArray), &NumberOfBytesReturned))
|
||||
return FALSE;
|
||||
|
||||
ProcessIdArraySize = NumberOfBytesReturned / sizeof(DWORD);
|
||||
|
||||
for (DWORD dwIndex = 0; dwIndex < ProcessIdArraySize; dwIndex++)
|
||||
{
|
||||
HMODULE Module = NULL;
|
||||
WCHAR ProcessStringName[MAX_PATH] = { 0 };
|
||||
|
||||
if (ProcessIdArray[dwIndex] == 0)
|
||||
continue;
|
||||
|
||||
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, ProcessIdArray[dwIndex]);
|
||||
if (hProcess == NULL)
|
||||
continue;
|
||||
|
||||
if(!EnumProcessModules(hProcess, &Module, sizeof(Module), &NumberOfBytesReturned))
|
||||
continue;
|
||||
|
||||
if(GetModuleBaseNameW(hProcess, Module, ProcessStringName, sizeof(ProcessStringName)/sizeof(WCHAR)) == 0)
|
||||
continue;
|
||||
|
||||
if (hProcess)
|
||||
CloseHandle(hProcess);
|
||||
|
||||
if (!IsCaseSensitive)
|
||||
{
|
||||
PWCHAR String1 = CaplockStringW(ProcessNameWithExtension);
|
||||
PWCHAR String2 = CaplockStringW(ProcessStringName);
|
||||
|
||||
if (StringCompareW(String1, String2) == 0)
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
if (StringCompareW(ProcessStringName, ProcessNameWithExtension) == 0)
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
INT main(VOID)
|
||||
{
|
||||
IsProcessRunningW((PWCHAR)L"chrome.exe", FALSE);
|
||||
}
|
Loading…
Reference in New Issue