• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

FFFTPのソースコードです。


Commit MetaInfo

Revisão1383d53f9b8b00f7156e03321cea413e7e829a9a (tree)
Hora2011-10-12 01:36:39
Autors_kawamoto <s_kawamoto@user...>
Commiters_kawamoto

Mensagem de Log

Fix bugs of process protection on Windows 7.
Restore FFFTP_SUCCESS to SUCCESS that are replaced by mistake.

Mudança Sumário

Diff

Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
--- a/protectprocess.c
+++ b/protectprocess.c
@@ -385,31 +385,8 @@ BOOL FindTrustedModuleSHA1Hash(void* pHash)
385385 return bResult;
386386 }
387387
388-// ファイルの署名を確認
389-BOOL VerifyFileSignature(LPCWSTR Filename)
388+BOOL VerifyFileSignature_Function(LPCWSTR Filename)
390389 {
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;
413390 BOOL bResult;
414391 HCERTSTORE hStore;
415392 PCCERT_CONTEXT pcc;
@@ -454,6 +431,29 @@ BOOL VerifyFileSignature(LPCWSTR Filename)
454431 return bResult;
455432 }
456433
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+
457457 // ファイルの署名をカタログファイルで確認
458458 BOOL VerifyFileSignatureInCatalog(LPCWSTR Catalog, LPCWSTR Filename)
459459 {
--- a/sha.c
+++ b/sha.c
@@ -69,7 +69,7 @@
6969 #define TRUE 1
7070 #define FALSE 0
7171
72-#define FFFTP_SUCCESS 0
72+#define SUCCESS 0
7373 #define FAILURE -1
7474
7575 int sha_file(); /* External entries */
@@ -191,7 +191,7 @@ uint32 *buffer;
191191 }
192192 (void) sha_stream(infile, buffer);
193193 fclose(infile);
194- return FFFTP_SUCCESS;
194+ return SUCCESS;
195195 }
196196
197197 void sha_memory(mem, length, buffer) /* Hash a memory block */