OSDN Git Service

Fix bugs of dead locking.
[ffftp/ffftp.git] / protectprocess.h
1 // protectprocess.h\r
2 // Copyright (C) 2011 Suguru Kawamoto\r
3 // プロセスの保護\r
4 \r
5 #ifndef __PROTECTPROCESS_H__\r
6 #define __PROTECTPROCESS_H__\r
7 \r
8 #define ENABLE_PROCESS_PROTECTION\r
9 \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
16 // WFPによる保護下にあるかを検査\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
22 // パスワード入力コントロールを保護\r
23 #define PROCESS_PROTECTION_PASSWORD_EDIT 0x00000040\r
24 \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
30 \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
43 \r
44 #endif\r
45 \r