2 // Copyright (C) 2011 Suguru Kawamoto
\r
5 #ifndef __PROTECTPROCESS_H__
\r
6 #define __PROTECTPROCESS_H__
\r
8 #define ENABLE_PROCESS_PROTECTION
\r
10 // ロード済みのモジュールは検査をパス
\r
11 #define PROCESS_PROTECTION_LOADED 0x00000001
\r
12 // モジュールに埋め込まれたAuthenticode署名を検査
\r
13 #define PROCESS_PROTECTION_BUILTIN 0x00000002
\r
14 // サイドバイサイドのAuthenticode署名を検査
\r
15 #define PROCESS_PROTECTION_SIDE_BY_SIDE 0x00000004
\r
17 #define PROCESS_PROTECTION_SYSTEM_FILE 0x00000008
\r
18 // Authenticode署名の有効期限を無視
\r
19 #define PROCESS_PROTECTION_EXPIRED 0x00000010
\r
20 // Authenticode署名の発行元を無視
\r
21 #define PROCESS_PROTECTION_UNAUTHORIZED 0x00000020
\r
23 #define PROCESS_PROTECTION_PASSWORD_EDIT 0x00000040
\r
25 #define PROCESS_PROTECTION_NONE 0
\r
26 #define PROCESS_PROTECTION_DEFAULT PROCESS_PROTECTION_HIGH
\r
27 #define PROCESS_PROTECTION_HIGH (PROCESS_PROTECTION_BUILTIN | PROCESS_PROTECTION_SIDE_BY_SIDE | PROCESS_PROTECTION_SYSTEM_FILE | PROCESS_PROTECTION_PASSWORD_EDIT)
\r
28 #define PROCESS_PROTECTION_MEDIUM (PROCESS_PROTECTION_HIGH | PROCESS_PROTECTION_LOADED | PROCESS_PROTECTION_EXPIRED | PROCESS_PROTECTION_PASSWORD_EDIT)
\r
29 #define PROCESS_PROTECTION_LOW (PROCESS_PROTECTION_MEDIUM | PROCESS_PROTECTION_UNAUTHORIZED | PROCESS_PROTECTION_PASSWORD_EDIT)
\r
31 HMODULE System_LoadLibrary(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
\r
32 void SetProcessProtectionLevel(DWORD Level);
\r
33 BOOL GetSHA1HashOfMemory(const void* pData, DWORD Size, void* pHash);
\r
34 BOOL GetSHA1HashOfFile(LPCWSTR Filename, void* pHash);
\r
35 BOOL RegisterTrustedModuleSHA1Hash(void* pHash);
\r
36 BOOL UnregisterTrustedModuleSHA1Hash(void* pHash);
\r
37 BOOL UnloadUntrustedModule();
\r
38 BOOL InitializeLoadLibraryHook();
\r
39 BOOL EnableLoadLibraryHook(BOOL bEnable);
\r
40 BOOL RestartProtectedProcess(LPCTSTR Keyword);
\r
41 BOOL ProtectPasswordEditControl(HWND hWnd);
\r
42 BOOL ProtectAllEditControls(HWND hWnd);
\r