#include #include #include #include "Common.h" // Torna true se siamo nell processo proc_name BOOL AmIThis(WCHAR *proc_name) { WCHAR my_path[MAX_PATH]; WCHAR *my_name; ZeroMemory(my_path, sizeof(my_path)); GetModuleFileNameW(NULL, my_path, sizeof(my_path)-1); my_name = wcsrchr(my_path, '\\'); if (my_name) { my_name++; if (!wcsicmp(my_name, proc_name)) return TRUE; } return FALSE; } // Trova il path completo della DLL. path_size e' in byte BOOL FindModulePath(WCHAR *path_buf, DWORD path_size) { HMODULE h_lib = NULL; HMODULE modules[1024]; DWORD mod_size; DWORD mod_num; DWORD i; if (!EnumProcessModules(GetCurrentProcess(), modules, sizeof(modules), &mod_size)) return FALSE; mod_num = mod_size/sizeof(HMODULE); for (i=0; iUser.Sid, wsUserName, &cbUserName, wsRefDomain, &cbRefDomain, &peUse)) if (GetUserNameA(wsEffectiveName, &cbEffectiveName)) if (!_stricmp(wsEffectiveName, wsUserName)) ret_val = TRUE; free(token_owner); } CloseHandle(hToken); } CloseHandle(hProc); } return ret_val; } .