FFFTPのソースコードです。
修訂 | 1383d53f9b8b00f7156e03321cea413e7e829a9a (tree) |
---|---|
時間 | 2011-10-12 01:36:39 |
作者 | s_kawamoto <s_kawamoto@user...> |
Commiter | s_kawamoto |
Fix bugs of process protection on Windows 7.
Restore FFFTP_SUCCESS to SUCCESS that are replaced by mistake.
@@ -385,31 +385,8 @@ BOOL FindTrustedModuleSHA1Hash(void* pHash) | ||
385 | 385 | return bResult; |
386 | 386 | } |
387 | 387 | |
388 | -// ファイルの署名を確認 | |
389 | -BOOL VerifyFileSignature(LPCWSTR Filename) | |
388 | +BOOL VerifyFileSignature_Function(LPCWSTR Filename) | |
390 | 389 | { |
391 | -// BOOL bResult; | |
392 | -// GUID g = WINTRUST_ACTION_GENERIC_VERIFY_V2; | |
393 | -// WINTRUST_FILE_INFO wfi; | |
394 | -// WINTRUST_DATA wd; | |
395 | -// LONG Error; | |
396 | -// bResult = FALSE; | |
397 | -// ZeroMemory(&wfi, sizeof(WINTRUST_FILE_INFO)); | |
398 | -// wfi.cbStruct = sizeof(WINTRUST_FILE_INFO); | |
399 | -// wfi.pcwszFilePath = Filename; | |
400 | -// ZeroMemory(&wd, sizeof(WINTRUST_DATA)); | |
401 | -// wd.cbStruct = sizeof(WINTRUST_DATA); | |
402 | -// wd.dwUIChoice = WTD_UI_NONE; | |
403 | -// wd.dwUnionChoice = WTD_CHOICE_FILE; | |
404 | -// wd.pFile = &wfi; | |
405 | -// Error = WinVerifyTrust((HWND)INVALID_HANDLE_VALUE, &g, &wd); | |
406 | -// if(Error == ERROR_SUCCESS) | |
407 | -// bResult = TRUE; | |
408 | -// else if((g_ProcessProtectionLevel & PROCESS_PROTECTION_EXPIRED) && Error == CERT_E_EXPIRED) | |
409 | -// bResult = TRUE; | |
410 | -// else if((g_ProcessProtectionLevel & PROCESS_PROTECTION_UNAUTHORIZED) && (Error == CERT_E_UNTRUSTEDROOT || Error == CERT_E_UNTRUSTEDCA)) | |
411 | -// bResult = TRUE; | |
412 | -// return bResult; | |
413 | 390 | BOOL bResult; |
414 | 391 | HCERTSTORE hStore; |
415 | 392 | PCCERT_CONTEXT pcc; |
@@ -454,6 +431,29 @@ BOOL VerifyFileSignature(LPCWSTR Filename) | ||
454 | 431 | return bResult; |
455 | 432 | } |
456 | 433 | |
434 | +// ファイルの署名を確認 | |
435 | +BOOL VerifyFileSignature(LPCWSTR Filename) | |
436 | +{ | |
437 | + BOOL bResult; | |
438 | + GUID g = WINTRUST_ACTION_GENERIC_VERIFY_V2; | |
439 | + WINTRUST_FILE_INFO wfi; | |
440 | + WINTRUST_DATA wd; | |
441 | + bResult = FALSE; | |
442 | + ZeroMemory(&wfi, sizeof(WINTRUST_FILE_INFO)); | |
443 | + wfi.cbStruct = sizeof(WINTRUST_FILE_INFO); | |
444 | + wfi.pcwszFilePath = Filename; | |
445 | + ZeroMemory(&wd, sizeof(WINTRUST_DATA)); | |
446 | + wd.cbStruct = sizeof(WINTRUST_DATA); | |
447 | + wd.dwUIChoice = WTD_UI_NONE; | |
448 | + wd.dwUnionChoice = WTD_CHOICE_FILE; | |
449 | + wd.pFile = &wfi; | |
450 | + if(WinVerifyTrust((HWND)INVALID_HANDLE_VALUE, &g, &wd) == ERROR_SUCCESS) | |
451 | + bResult = TRUE; | |
452 | + else | |
453 | + bResult = VerifyFileSignature_Function(Filename); | |
454 | + return bResult; | |
455 | +} | |
456 | + | |
457 | 457 | // ファイルの署名をカタログファイルで確認 |
458 | 458 | BOOL VerifyFileSignatureInCatalog(LPCWSTR Catalog, LPCWSTR Filename) |
459 | 459 | { |
@@ -69,7 +69,7 @@ | ||
69 | 69 | #define TRUE 1 |
70 | 70 | #define FALSE 0 |
71 | 71 | |
72 | -#define FFFTP_SUCCESS 0 | |
72 | +#define SUCCESS 0 | |
73 | 73 | #define FAILURE -1 |
74 | 74 | |
75 | 75 | int sha_file(); /* External entries */ |
@@ -191,7 +191,7 @@ uint32 *buffer; | ||
191 | 191 | } |
192 | 192 | (void) sha_stream(infile, buffer); |
193 | 193 | fclose(infile); |
194 | - return FFFTP_SUCCESS; | |
194 | + return SUCCESS; | |
195 | 195 | } |
196 | 196 | |
197 | 197 | void sha_memory(mem, length, buffer) /* Hash a memory block */ |