• 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

Revisiónafd0daade7b7371f57f3b5f8a66b6b8bc640cd0e (tree)
Tiempo2011-10-28 19:02:22
Autors_kawamoto <s_kawamoto@user...>
Commiters_kawamoto

Log Message

Change behavior of checking closed sockets for some Windows 2000 environments.
Fix Solution files.
Change encoding of source codes into UTF-8.

Cambiar Resumen

Diferencia incremental

--- a/FFFTP.sln
+++ b/FFFTP.sln
@@ -4,7 +4,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FFFTP", "FFFTP.vcproj", "{5
44 EndProject
55 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FFFTP_English", "FFFTP_English.vcproj", "{EE7CC1BD-92A9-46D5-8270-386BD7BEEA55}"
66 EndProject
7-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PuTTY", "putty\PuTTY.vc90.vcproj", "{AF1981EB-379B-43B8-BE66-298194297B5C}"
7+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PuTTY", "putty\PuTTY.vcproj", "{AF1981EB-379B-43B8-BE66-298194297B5C}"
88 EndProject
99 Global
1010 GlobalSection(SolutionConfigurationPlatforms) = preSolution
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
@@ -1,20 +1,20 @@
1-// protectprocess.c
1+?ソ// protectprocess.c
22 // Copyright (C) 2011 Suguru Kawamoto
3-// プロセスの保護
3+// 繝励Ο繧サ繧ケ縺ョ菫晁ュキ
44
5-// 次の中から1個のみ有効にする
6-// フック先の関数のコードを書き換える
7-// 全ての呼び出しをフック可能だが原理的に二重呼び出しに対応できない
5+// 谺。縺ョ荳ュ縺九i1蛟九?縺ソ譛牙柑縺ォ縺吶k
6+// 繝輔ャ繧ッ蜈医?髢「謨ー縺ョ繧ウ繝シ繝峨r譖ク縺肴鋤縺医k
7+// 蜈ィ縺ヲ縺ョ蜻シ縺ウ蜃コ縺励r繝輔ャ繧ッ蜿ッ閭ス縺?縺悟次逅?噪縺ォ莠碁?蜻シ縺ウ蜃コ縺励↓蟇セ蠢懊〒縺阪↑縺
88 #define USE_CODE_HOOK
9-// フック先の関数のインポートアドレステーブルを書き換える
10-// 二重呼び出しが可能だが呼び出し方法によってはフックを回避される
9+// 繝輔ャ繧ッ蜈医?髢「謨ー縺ョ繧、繝ウ繝昴?繝医い繝峨Ξ繧ケ繝??繝悶Ν繧呈嶌縺肴鋤縺医k
10+// 莠碁?蜻シ縺ウ蜃コ縺励′蜿ッ閭ス縺?縺悟他縺ウ蜃コ縺玲婿豕輔↓繧医▲縺ヲ縺ッ繝輔ャ繧ッ繧貞屓驕ソ縺輔l繧
1111 //#define USE_IAT_HOOK
1212
13-// フック対象の関数名 %s
14-// フック対象の型 _%s
15-// フック対象のポインタ p_%s
16-// フック用の関数名 h_%s
17-// フック対象のコードのバックアップ c_%s
13+// 繝輔ャ繧ッ蟇セ雎。縺ョ髢「謨ー蜷 %s
14+// 繝輔ャ繧ッ蟇セ雎。縺ョ蝙 _%s
15+// 繝輔ャ繧ッ蟇セ雎。縺ョ繝昴う繝ウ繧ソ p_%s
16+// 繝輔ャ繧ッ逕ィ縺ョ髢「謨ー蜷 h_%s
17+// 繝輔ャ繧ッ蟇セ雎。縺ョ繧ウ繝シ繝峨?繝舌ャ繧ッ繧「繝?? c_%s
1818
1919 #include <tchar.h>
2020 #include <windows.h>
@@ -61,20 +61,20 @@ BOOL VerifyFileSignatureInCatalog(LPCWSTR Catalog, LPCWSTR Filename);
6161 BOOL GetSHA1HashOfModule(LPCWSTR Filename, void* pHash);
6262 BOOL IsModuleTrusted(LPCWSTR Filename);
6363
64-// 変数の宣言
64+// 螟画焚縺ョ螳」險?
6565 #ifdef USE_CODE_HOOK
6666 #define HOOK_FUNCTION_VAR(name) _##name p_##name;BYTE c_##name[HOOK_JUMP_CODE_LENGTH * 2];
6767 #endif
6868 #ifdef USE_IAT_HOOK
6969 #define HOOK_FUNCTION_VAR(name) _##name p_##name;
7070 #endif
71-// 関数ポインタを取得
71+// 髢「謨ー繝昴う繝ウ繧ソ繧貞叙蠕
7272 #define GET_FUNCTION(h, name) p_##name = (_##name)GetProcAddress(h, #name)
73-// フック対象のコードを置換してフックを開始
73+// 繝輔ャ繧ッ蟇セ雎。縺ョ繧ウ繝シ繝峨r鄂ョ謠帙@縺ヲ繝輔ャ繧ッ繧帝幕蟋
7474 #define SET_HOOK_FUNCTION(name) HookFunctionInCode(p_##name, h_##name, &c_##name, FALSE)
75-// フック対象を呼び出す前に対象のコードを復元
75+// 繝輔ャ繧ッ蟇セ雎。繧貞他縺ウ蜃コ縺吝燕縺ォ蟇セ雎。縺ョ繧ウ繝シ繝峨r蠕ゥ蜈
7676 #define START_HOOK_FUNCTION(name) HookFunctionInCode(p_##name, h_##name, &c_##name, TRUE)
77-// フック対象を呼び出した後に対象のコードを置換
77+// 繝輔ャ繧ッ蟇セ雎。繧貞他縺ウ蜃コ縺励◆蠕後↓蟇セ雎。縺ョ繧ウ繝シ繝峨r鄂ョ謠
7878 #define END_HOOK_FUNCTION(name) HookFunctionInCode(p_##name, h_##name, NULL, FALSE)
7979
8080 HOOK_FUNCTION_VAR(LoadLibraryA)
@@ -101,8 +101,8 @@ DWORD g_LockedThread[MAX_LOCKED_THREAD];
101101 WCHAR* g_pTrustedFilenameTable[MAX_TRUSTED_FILENAME_TABLE];
102102 BYTE g_TrustedMD5HashTable[MAX_TRUSTED_MD5_HASH_TABLE][20];
103103
104-// 以下フック関数
105-// フック対象を呼び出す場合は前後でSTART_HOOK_FUNCTIONとEND_HOOK_FUNCTIONを実行する必要がある
104+// 莉・荳九ヵ繝?け髢「謨ー
105+// 繝輔ャ繧ッ蟇セ雎。繧貞他縺ウ蜃コ縺吝?エ蜷医?蜑榊セ後〒START_HOOK_FUNCTION縺ィEND_HOOK_FUNCTION繧貞ョ溯。後☆繧句ソ?ヲ√′縺ゅk
106106
107107 HMODULE WINAPI h_LoadLibraryA(LPCSTR lpLibFileName)
108108 {
@@ -189,7 +189,7 @@ HMODULE WINAPI h_LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFla
189189 return r;
190190 }
191191
192-// 以下ヘルパー関数
192+// 莉・荳九?繝ォ繝代?髢「謨ー
193193
194194 BOOL LockThreadLock()
195195 {
@@ -356,7 +356,7 @@ BOOL HookFunctionInIAT(void* pOriginal, void* pNew)
356356 }
357357 #endif
358358
359-// ファイルを変更不能に設定
359+// 繝輔ぃ繧、繝ォ繧貞、画峩荳崎?縺ォ險ュ螳
360360 HANDLE LockExistingFile(LPCWSTR Filename)
361361 {
362362 HANDLE hResult;
@@ -366,7 +366,7 @@ HANDLE LockExistingFile(LPCWSTR Filename)
366366 return hResult;
367367 }
368368
369-// DLLのハッシュを検索
369+// DLL縺ョ繝上ャ繧キ繝・繧呈、懃エ「
370370 BOOL FindTrustedModuleSHA1Hash(void* pHash)
371371 {
372372 BOOL bResult;
@@ -431,7 +431,7 @@ BOOL VerifyFileSignature_Function(LPCWSTR Filename)
431431 return bResult;
432432 }
433433
434-// ファイルの署名を確認
434+// 繝輔ぃ繧、繝ォ縺ョ鄂イ蜷阪r遒コ隱
435435 BOOL VerifyFileSignature(LPCWSTR Filename)
436436 {
437437 BOOL bResult;
@@ -454,7 +454,7 @@ BOOL VerifyFileSignature(LPCWSTR Filename)
454454 return bResult;
455455 }
456456
457-// ファイルの署名をカタログファイルで確認
457+// 繝輔ぃ繧、繝ォ縺ョ鄂イ蜷阪r繧ォ繧ソ繝ュ繧ー繝輔ぃ繧、繝ォ縺ァ遒コ隱
458458 BOOL VerifyFileSignatureInCatalog(LPCWSTR Catalog, LPCWSTR Filename)
459459 {
460460 BOOL bResult;
@@ -496,8 +496,8 @@ BOOL WINAPI GetSHA1HashOfModule_Function(DIGEST_HANDLE refdata, PBYTE pData, DWO
496496 return CryptHashData(*(HCRYPTHASH*)refdata, pData, dwLength, 0);
497497 }
498498
499-// モジュールのSHA1ハッシュを取得
500-// マニフェストファイルのfile要素のhash属性は実行可能ファイルの場合にImageGetDigestStreamで算出される
499+// 繝「繧ク繝・繝シ繝ォ縺ョSHA1繝上ャ繧キ繝・繧貞叙蠕
500+// 繝槭ル繝輔ぉ繧ケ繝医ヵ繧。繧、繝ォ縺ョfile隕∫エ?縺ョhash螻樊?ァ縺ッ螳溯。悟庄閭ス繝輔ぃ繧、繝ォ縺ョ蝣エ蜷医↓ImageGetDigestStream縺ァ邂怜?縺輔l繧
501501 BOOL GetSHA1HashOfModule(LPCWSTR Filename, void* pHash)
502502 {
503503 BOOL bResult;
@@ -581,14 +581,14 @@ BOOL IsSxsModuleTrusted_Function(LPCWSTR Catalog, LPCWSTR Manifest, LPCWSTR Modu
581581 return bResult;
582582 }
583583
584-// サイドバイサイドDLLを確認
585-// パスは"%SystemRoot%\WinSxS"以下を想定
586-// 以下のファイルが存在するものとする
587-// "\xxx\yyy.dll"、"\manifests\xxx.cat"、"\manifests\xxx.manifest"のセット(XPの全てのDLL、Vista以降の一部のDLL)
588-// "\xxx\yyy.dll"、"\catalogs\zzz.cat"、"\manifests\xxx.manifest"のセット(Vista以降のほとんどのDLL)
589-// 署名されたカタログファイルを用いてマニフェストファイルが改竄されていないことを確認
590-// ハッシュ値は マニフェストファイルのfile要素のhash属性に記述されているものを用いる
591-// マニフェストファイル内にSHA1ハッシュ値の16進数表記を直接検索しているが確率的に問題なし
584+// 繧オ繧、繝峨ヰ繧、繧オ繧、繝吋LL繧堤「コ隱
585+// 繝代せ縺ッ"%SystemRoot%\WinSxS"莉・荳九r諠ウ螳
586+// 莉・荳九?繝輔ぃ繧、繝ォ縺悟ュ伜惠縺吶k繧ゅ?縺ィ縺吶k
587+// "\xxx\yyy.dll"縲?\manifests\xxx.cat"縲?\manifests\xxx.manifest"縺ョ繧サ繝?ヨ??P縺ョ蜈ィ縺ヲ縺ョDLL縲〃ista莉・髯阪?荳?驛ィ縺ョDLL?
588+// "\xxx\yyy.dll"縲?\catalogs\zzz.cat"縲?\manifests\xxx.manifest"縺ョ繧サ繝?ヨ??ista莉・髯阪?縺サ縺ィ繧薙←縺ョDLL?
589+// 鄂イ蜷阪&繧後◆繧ォ繧ソ繝ュ繧ー繝輔ぃ繧、繝ォ繧堤畑縺?※繝槭ル繝輔ぉ繧ケ繝医ヵ繧。繧、繝ォ縺梧隼遶?&繧後※縺?↑縺?%縺ィ繧堤「コ隱
590+// 繝上ャ繧キ繝・蛟、縺ッ 繝槭ル繝輔ぉ繧ケ繝医ヵ繧。繧、繝ォ縺ョfile隕∫エ?縺ョhash螻樊?ァ縺ォ險倩ソー縺輔l縺ヲ縺?k繧ゅ?繧堤畑縺?k
591+// 繝槭ル繝輔ぉ繧ケ繝医ヵ繧。繧、繝ォ蜀?↓SHA1繝上ャ繧キ繝・蛟、縺ョ16騾イ謨ー陦ィ險倥r逶エ謗・讀懃エ「縺励※縺?k縺檎「コ邇?噪縺ォ蝠城。後↑縺
592592 BOOL IsSxsModuleTrusted(LPCWSTR Filename)
593593 {
594594 BOOL bResult;
@@ -679,7 +679,7 @@ BOOL IsSxsModuleTrusted(LPCWSTR Filename)
679679 return bResult;
680680 }
681681
682-// DLLを確認
682+// DLL繧堤「コ隱
683683 BOOL IsModuleTrusted(LPCWSTR Filename)
684684 {
685685 BOOL bResult;
@@ -712,11 +712,11 @@ BOOL IsModuleTrusted(LPCWSTR Filename)
712712 return bResult;
713713 }
714714
715-// kernel32.dllのLoadLibraryExW相当の関数
716-// ドキュメントが無いため詳細は不明
717-// 一部のウィルス対策ソフト(Avast!等)がLdrLoadDllをフックしているためLdrLoadDllを書き換えるべきではない
718-// カーネルモードのコードに対しては効果なし
719-// SeDebugPrivilegeが使用可能なユーザーに対しては効果なし
715+// kernel32.dll縺ョLoadLibraryExW逶ク蠖薙?髢「謨ー
716+// 繝峨く繝・繝。繝ウ繝医′辟。縺?◆繧∬ゥウ邏ー縺ッ荳肴?
717+// 荳?驛ィ縺ョ繧ヲ繧」繝ォ繧ケ蟇セ遲悶た繝輔ヨ??vast!遲会シ峨′LdrLoadDll繧偵ヵ繝?け縺励※縺?k縺溘aLdrLoadDll繧呈嶌縺肴鋤縺医k縺ケ縺阪〒縺ッ縺ェ縺
718+// 繧ォ繝シ繝阪Ν繝「繝シ繝峨?繧ウ繝シ繝峨↓蟇セ縺励※縺ッ蜉ケ譫懊↑縺
719+// SeDebugPrivilege縺御スソ逕ィ蜿ッ閭ス縺ェ繝ヲ繝シ繧カ繝シ縺ォ蟇セ縺励※縺ッ蜉ケ譫懊↑縺
720720 HMODULE System_LoadLibrary(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
721721 {
722722 HMODULE r = NULL;
@@ -792,7 +792,7 @@ void SetProcessProtectionLevel(DWORD Level)
792792 g_ProcessProtectionLevel = Level;
793793 }
794794
795-// ファイルのSHA1ハッシュを取得
795+// 繝輔ぃ繧、繝ォ縺ョSHA1繝上ャ繧キ繝・繧貞叙蠕
796796 BOOL GetSHA1HashOfFile(LPCWSTR Filename, void* pHash)
797797 {
798798 BOOL bResult;
@@ -834,7 +834,7 @@ BOOL GetSHA1HashOfFile(LPCWSTR Filename, void* pHash)
834834 return bResult;
835835 }
836836
837-// DLLのハッシュを登録
837+// DLL縺ョ繝上ャ繧キ繝・繧堤匳骭イ
838838 BOOL RegisterTrustedModuleSHA1Hash(void* pHash)
839839 {
840840 BOOL bResult;
@@ -860,7 +860,7 @@ BOOL RegisterTrustedModuleSHA1Hash(void* pHash)
860860 return bResult;
861861 }
862862
863-// DLLのハッシュの登録を解除
863+// DLL縺ョ繝上ャ繧キ繝・縺ョ逋サ骭イ繧定ァ」髯、
864864 BOOL UnregisterTrustedModuleSHA1Hash(void* pHash)
865865 {
866866 BOOL bResult;
@@ -881,7 +881,7 @@ BOOL UnregisterTrustedModuleSHA1Hash(void* pHash)
881881 return bResult;
882882 }
883883
884-// 信頼できないDLLをアンロード
884+// 菫。鬆シ縺ァ縺阪↑縺ДLL繧偵い繝ウ繝ュ繝シ繝
885885 BOOL UnloadUntrustedModule()
886886 {
887887 BOOL bResult;
@@ -946,7 +946,7 @@ BOOL UnloadUntrustedModule()
946946 return bResult;
947947 }
948948
949-// 関数ポインタを使用可能な状態に初期化
949+// 髢「謨ー繝昴う繝ウ繧ソ繧剃スソ逕ィ蜿ッ閭ス縺ェ迥カ諷九↓蛻晄悄蛹
950950 BOOL InitializeLoadLibraryHook()
951951 {
952952 BOOL bResult;
@@ -977,8 +977,8 @@ BOOL InitializeLoadLibraryHook()
977977 return bResult;
978978 }
979979
980-// SetWindowsHookEx対策
981-// DLL Injectionされた場合は上のh_LoadLibrary系関数でトラップ可能
980+// SetWindowsHookEx蟇セ遲
981+// DLL Injection縺輔l縺溷?エ蜷医?荳翫?h_LoadLibrary邉サ髢「謨ー縺ァ繝医Λ繝??蜿ッ閭ス
982982 BOOL EnableLoadLibraryHook(BOOL bEnable)
983983 {
984984 BOOL bResult;
@@ -1034,8 +1034,8 @@ BOOL EnableLoadLibraryHook(BOOL bEnable)
10341034 return bResult;
10351035 }
10361036
1037-// ReadProcessMemory、WriteProcessMemory、CreateRemoteThread対策
1038-// TerminateProcessのみ許可
1037+// ReadProcessMemory縲仝riteProcessMemory縲,reateRemoteThread蟇セ遲
1038+// TerminateProcess縺ョ縺ソ險ア蜿ッ
10391039 BOOL RestartProtectedProcess(LPCTSTR Keyword)
10401040 {
10411041 BOOL bResult;
--- a/protectprocess.h
+++ b/protectprocess.h
@@ -1,18 +1,18 @@
1-// protectprocess.h
1+?ソ// protectprocess.h
22 // Copyright (C) 2011 Suguru Kawamoto
3-// プロセスの保護
3+// 繝励Ο繧サ繧ケ縺ョ菫晁ュキ
44
55 #ifndef __PROTECTPROCESS_H__
66 #define __PROTECTPROCESS_H__
77
88 #define ENABLE_PROCESS_PROTECTION
99
10-// 次の中から1個のみ有効にする
11-// フック先の関数のコードを書き換える
12-// 全ての呼び出しをフック可能だが原理的に二重呼び出しに対応できない
10+// 谺。縺ョ荳ュ縺九i1蛟九?縺ソ譛牙柑縺ォ縺吶k
11+// 繝輔ャ繧ッ蜈医?髢「謨ー縺ョ繧ウ繝シ繝峨r譖ク縺肴鋤縺医k
12+// 蜈ィ縺ヲ縺ョ蜻シ縺ウ蜃コ縺励r繝輔ャ繧ッ蜿ッ閭ス縺?縺悟次逅?噪縺ォ莠碁?蜻シ縺ウ蜃コ縺励↓蟇セ蠢懊〒縺阪↑縺
1313 #define USE_CODE_HOOK
14-// フック先の関数のインポートアドレステーブルを書き換える
15-// 二重呼び出しが可能だが呼び出し方法によってはフックを回避される
14+// 繝輔ャ繧ッ蜈医?髢「謨ー縺ョ繧、繝ウ繝昴?繝医い繝峨Ξ繧ケ繝??繝悶Ν繧呈嶌縺肴鋤縺医k
15+// 莠碁?蜻シ縺ウ蜃コ縺励′蜿ッ閭ス縺?縺悟他縺ウ蜃コ縺玲婿豕輔↓繧医▲縺ヲ縺ッ繝輔ャ繧ッ繧貞屓驕ソ縺輔l繧
1616 //#define USE_IAT_HOOK
1717
1818 typedef HMODULE (WINAPI* _LoadLibraryA)(LPCSTR);
@@ -24,7 +24,7 @@ typedef HMODULE (WINAPI* _LoadLibraryExW)(LPCWSTR, HANDLE, DWORD);
2424
2525 #ifdef USE_IAT_HOOK
2626
27-// 変数の宣言
27+// 螟画焚縺ョ螳」險?
2828 #define EXTERN_HOOK_FUNCTION_VAR(name) extern _##name p_##name;
2929
3030 #undef LoadLibraryA
@@ -44,17 +44,17 @@ EXTERN_HOOK_FUNCTION_VAR(LoadLibraryExW)
4444
4545 #endif
4646
47-// ロード済みのモジュールは検査をパス
47+// 繝ュ繝シ繝画ク医∩縺ョ繝「繧ク繝・繝シ繝ォ縺ッ讀懈渊繧偵ヱ繧ケ
4848 #define PROCESS_PROTECTION_LOADED 0x00000001
49-// モジュールに埋め込まれたAuthenticode署名を検査
49+// 繝「繧ク繝・繝シ繝ォ縺ォ蝓九a霎シ縺セ繧後◆Authenticode鄂イ蜷阪r讀懈渊
5050 #define PROCESS_PROTECTION_BUILTIN 0x00000002
51-// サイドバイサイドのAuthenticode署名を検査
51+// 繧オ繧、繝峨ヰ繧、繧オ繧、繝峨?Authenticode鄂イ蜷阪r讀懈渊
5252 #define PROCESS_PROTECTION_SIDE_BY_SIDE 0x00000004
53-// WFPによる保護下にあるかを検査
53+// WFP縺ォ繧医k菫晁ュキ荳九↓縺ゅk縺九r讀懈渊
5454 #define PROCESS_PROTECTION_SYSTEM_FILE 0x00000008
55-// Authenticode署名の有効期限を無視
55+// Authenticode鄂イ蜷阪?譛牙柑譛滄剞繧堤┌隕
5656 #define PROCESS_PROTECTION_EXPIRED 0x00000010
57-// Authenticode署名の発行元を無視
57+// Authenticode鄂イ蜷阪?逋コ陦悟?繧堤┌隕
5858 #define PROCESS_PROTECTION_UNAUTHORIZED 0x00000020
5959
6060 #define PROCESS_PROTECTION_NONE 0
Binary files a/putty/Release/PuTTY.dll and b/putty/Release/PuTTY.dll differ
--- a/putty/dllmain.c
+++ b/putty/dllmain.c
@@ -1,4 +1,4 @@
1-// dllmain.cpp : DLL アプリケーションのエントリ ポイントを定義します。
1+?ソ// dllmain.cpp : DLL 繧「繝励Μ繧ア繝シ繧キ繝ァ繝ウ縺ョ繧ィ繝ウ繝医Μ 繝昴う繝ウ繝医r螳夂セゥ縺励∪縺吶?
22 #include "stdafx.h"
33
44 BOOL APIENTRY DllMain( HMODULE hModule,
--- a/putty/stdafx.h
+++ b/putty/stdafx.h
@@ -1,16 +1,16 @@
1-// stdafx.h : 標準のシステム インクルード ファイルのインクルード ファイル、または
2-// 参照回数が多く、かつあまり変更されない、プロジェクト専用のインクルード ファイル
3-// を記述します。
1+?ソ// stdafx.h : 讓呎コ悶?繧キ繧ケ繝?Β 繧、繝ウ繧ッ繝ォ繝シ繝 繝輔ぃ繧、繝ォ縺ョ繧、繝ウ繧ッ繝ォ繝シ繝 繝輔ぃ繧、繝ォ縲√∪縺溘?
2+// 蜿ら?蝗樊焚縺悟、壹¥縲√°縺、縺ゅ∪繧雁、画峩縺輔l縺ェ縺??√?繝ュ繧ク繧ァ繧ッ繝亥ーら畑縺ョ繧、繝ウ繧ッ繝ォ繝シ繝 繝輔ぃ繧、繝ォ
3+// 繧定ィ倩ソー縺励∪縺吶?
44 //
55
66 #pragma once
77
88 #include "targetver.h"
99
10-#define WIN32_LEAN_AND_MEAN // Windows ヘッダーから使用されていない部分を除外します。
11-// Windows ヘッダー ファイル:
10+#define WIN32_LEAN_AND_MEAN // Windows 繝倥ャ繝?繝シ縺九i菴ソ逕ィ縺輔l縺ヲ縺?↑縺?Κ蛻?r髯、螟悶@縺セ縺吶?
11+// Windows 繝倥ャ繝?繝シ 繝輔ぃ繧、繝ォ:
1212 #include <windows.h>
1313
1414
1515
16-// TODO: プログラムに必要な追加ヘッダーをここで参照してください。
16+// TODO: 繝励Ο繧ー繝ゥ繝?縺ォ蠢?ヲ√↑霑ス蜉?繝倥ャ繝?繝シ繧偵%縺薙〒蜿ら?縺励※縺上□縺輔>縲
--- a/putty/targetver.h
+++ b/putty/targetver.h
@@ -1,24 +1,24 @@
1-#pragma once
1+?ソ#pragma once
22
3-// 以下のマクロは、最低限必要なプラットフォームを定義します。最低限必要なプラットフォームとは、
4-// アプリケーションを実行するために必要な機能を備えた最も古いバージョンの Windows や Internet Explorer など
5-// をいいます。これらのマクロは、指定したバージョンと、それ以前のバージョンのプラットフォーム上で利用できるすべての機能を有効にすることによって
6-// 動作します。
3+// 莉・荳九?繝槭け繝ュ縺ッ縲∵怙菴朱剞蠢?ヲ√↑繝励Λ繝?ヨ繝輔か繝シ繝?繧貞ョ夂セゥ縺励∪縺吶?よ怙菴朱剞蠢?ヲ√↑繝励Λ繝?ヨ繝輔か繝シ繝?縺ィ縺ッ縲
4+// 繧「繝励Μ繧ア繝シ繧キ繝ァ繝ウ繧貞ョ溯。後☆繧九◆繧√↓蠢?ヲ√↑讖溯?繧貞y縺医◆譛?繧ょ商縺?ヰ繝シ繧ク繝ァ繝ウ縺ョ Windows 繧 Internet Explorer 縺ェ縺ゥ
5+// 繧偵>縺?∪縺吶?ゅ%繧後i縺ョ繝槭け繝ュ縺ッ縲∵欠螳壹@縺溘ヰ繝シ繧ク繝ァ繝ウ縺ィ縲√◎繧御サ・蜑阪?繝舌?繧ク繝ァ繝ウ縺ョ繝励Λ繝?ヨ繝輔か繝シ繝?荳翫〒蛻ゥ逕ィ縺ァ縺阪k縺吶∋縺ヲ縺ョ讖溯?繧呈怏蜉ケ縺ォ縺吶k縺薙→縺ォ繧医▲縺ヲ
6+// 蜍穂ス懊@縺セ縺吶?
77
8-// 下で指定された定義の前に対象プラットフォームを指定しなければならない場合、以下の定義を変更してください。
9-// 異なるプラットフォームに対応する値に関する最新情報については、MSDN を参照してください。
10-#ifndef WINVER // 最低限必要なプラットフォームが Windows Vista であることを指定します。
11-#define WINVER 0x0600 // これを Windows の他のバージョン向けに適切な値に変更してください。
8+// 荳九〒謖?ョ壹&繧後◆螳夂セゥ縺ョ蜑阪↓蟇セ雎。繝励Λ繝?ヨ繝輔か繝シ繝?繧呈欠螳壹@縺ェ縺代l縺ー縺ェ繧峨↑縺??エ蜷医?∽サ・荳九?螳夂セゥ繧貞、画峩縺励※縺上□縺輔>縲
9+// 逡ー縺ェ繧九?繝ゥ繝?ヨ繝輔か繝シ繝?縺ォ蟇セ蠢懊☆繧句?、縺ォ髢「縺吶k譛?譁ー諠??ア縺ォ縺、縺?※縺ッ縲`SDN 繧貞盾辣ァ縺励※縺上□縺輔>縲
10+#ifndef WINVER // 譛?菴朱剞蠢?ヲ√↑繝励Λ繝?ヨ繝輔か繝シ繝?縺 Windows Vista 縺ァ縺ゅk縺薙→繧呈欠螳壹@縺セ縺吶?
11+#define WINVER 0x0600 // 縺薙l繧 Windows 縺ョ莉悶?繝舌?繧ク繝ァ繝ウ蜷代¢縺ォ驕ゥ蛻?↑蛟、縺ォ螟画峩縺励※縺上□縺輔>縲
1212 #endif
1313
14-#ifndef _WIN32_WINNT // 最低限必要なプラットフォームが Windows Vista であることを指定します。
15-#define _WIN32_WINNT 0x0600 // これを Windows の他のバージョン向けに適切な値に変更してください。
14+#ifndef _WIN32_WINNT // 譛?菴朱剞蠢?ヲ√↑繝励Λ繝?ヨ繝輔か繝シ繝?縺 Windows Vista 縺ァ縺ゅk縺薙→繧呈欠螳壹@縺セ縺吶?
15+#define _WIN32_WINNT 0x0600 // 縺薙l繧 Windows 縺ョ莉悶?繝舌?繧ク繝ァ繝ウ蜷代¢縺ォ驕ゥ蛻?↑蛟、縺ォ螟画峩縺励※縺上□縺輔>縲
1616 #endif
1717
18-#ifndef _WIN32_WINDOWS // 最低限必要なプラットフォームが Windows 98 であることを指定します。
19-#define _WIN32_WINDOWS 0x0410 // これを Windows Me またはそれ以降のバージョン向けに適切な値に変更してください。
18+#ifndef _WIN32_WINDOWS // 譛?菴朱剞蠢?ヲ√↑繝励Λ繝?ヨ繝輔か繝シ繝?縺 Windows 98 縺ァ縺ゅk縺薙→繧呈欠螳壹@縺セ縺吶?
19+#define _WIN32_WINDOWS 0x0410 // 縺薙l繧 Windows Me 縺セ縺溘?縺昴l莉・髯阪?繝舌?繧ク繝ァ繝ウ蜷代¢縺ォ驕ゥ蛻?↑蛟、縺ォ螟画峩縺励※縺上□縺輔>縲
2020 #endif
2121
22-#ifndef _WIN32_IE // 最低限必要なプラットフォームが Internet Explorer 7.0 であることを指定します。
23-#define _WIN32_IE 0x0700 // これを IE の他のバージョン向けに適切な値に変更してください。
22+#ifndef _WIN32_IE // 譛?菴朱剞蠢?ヲ√↑繝励Λ繝?ヨ繝輔か繝シ繝?縺 Internet Explorer 7.0 縺ァ縺ゅk縺薙→繧呈欠螳壹@縺セ縺吶?
23+#define _WIN32_IE 0x0700 // 縺薙l繧 IE 縺ョ莉悶?繝舌?繧ク繝ァ繝ウ蜷代¢縺ォ驕ゥ蛻?↑蛟、縺ォ螟画峩縺励※縺上□縺輔>縲
2424 #endif
--- a/socket.c
+++ b/socket.c
@@ -995,6 +995,9 @@ int do_recv(SOCKET s, char *buf, int len, int flags, int *TimeOutErr, int *Cance
995995 Sleep(1);
996996 if(BackgrndMessageProc() == YES)
997997 break;
998+ // 何故か一部のホストとWindows 2000の組み合わせで通信できないバグに暫定対応
999+ if(AskAsyncDone(s, &Error, FD_CLOSE_BIT) == YES)
1000+ break;
9981001 // FTPS対応
9991002 // 受信確認をバイパスしたためここでタイムアウトの確認
10001003 if(BackgrndMessageProc() == YES)
@@ -1105,6 +1108,9 @@ int do_send(SOCKET s, const char *buf, int len, int flags, int *TimeOutErr, int
11051108 Sleep(1);
11061109 if(BackgrndMessageProc() == YES)
11071110 break;
1111+ // 何故か一部のホストとWindows 2000の組み合わせで通信できないバグに暫定対応
1112+ if(AskAsyncDone(s, &Error, FD_CLOSE_BIT) == YES)
1113+ break;
11081114 // FTPS対応
11091115 // 送信バッファ確認をバイパスしたためここでタイムアウトの確認
11101116 if(BackgrndMessageProc() == YES)