/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\Debug\FFFTP.exe"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\Debug\FFFTP.pdb"\r
SubSystem="2"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\Debug_64\FFFTP.exe"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\Debug_64\FFFTP.pdb"\r
SubSystem="2"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\Release\FFFTP.exe"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
ProgramDatabaseFile=".\Release\FFFTP.pdb"\r
SubSystem="2"\r
TargetMachine="1"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\Release_64\FFFTP.exe"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
ProgramDatabaseFile=".\Release_64\FFFTP.pdb"\r
SubSystem="2"\r
TargetMachine="17"\r
>\r
</File>\r
<File\r
+ RelativePath=".\updater.c"\r
+ >\r
+ </File>\r
+ <File\r
RelativePath=".\wildcard.c"\r
>\r
</File>\r
+ <File\r
+ RelativePath=".\updater.h"\r
+ >\r
+ </File>\r
</Filter>\r
<Filter\r
Name="Header Files"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\Debug\FFFTP.exe"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\Debug\FFFTP.pdb"\r
SubSystem="2"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\Debug_64\FFFTP.exe"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\Debug_64\FFFTP.pdb"\r
SubSystem="2"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\Release\FFFTP.exe"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
ProgramDatabaseFile=".\Release\FFFTP.pdb"\r
SubSystem="2"\r
RandomizedBaseAddress="1"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\Release_64\FFFTP.exe"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
ProgramDatabaseFile=".\Release_64\FFFTP.pdb"\r
SubSystem="2"\r
RandomizedBaseAddress="1"\r
>\r
</File>\r
<File\r
+ RelativePath=".\updater.c"\r
+ >\r
+ </File>\r
+ <File\r
RelativePath=".\wildcard.c"\r
>\r
</File>\r
RelativePath=".\socketwrapper.h"\r
>\r
</File>\r
+ <File\r
+ RelativePath=".\updater.h"\r
+ >\r
+ </File>\r
</Filter>\r
<Filter\r
Name="Resource Files"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\Debug\FFFTP.exe"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\Debug\FFFTP.pdb"\r
SubSystem="2"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\Debug_64\FFFTP.exe"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\Debug_64\FFFTP.pdb"\r
SubSystem="2"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\Release\FFFTP.exe"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
ProgramDatabaseFile=".\Release\FFFTP.pdb"\r
SubSystem="2"\r
TargetMachine="1"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\Release_64\FFFTP.exe"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
ProgramDatabaseFile=".\Release_64\FFFTP.pdb"\r
SubSystem="2"\r
TargetMachine="17"\r
>\r
</File>\r
<File\r
+ RelativePath=".\updater.c"\r
+ >\r
+ </File>\r
+ <File\r
RelativePath=".\wildcard.c"\r
>\r
</File>\r
+ <File\r
+ RelativePath=".\updater.h"\r
+ >\r
+ </File>\r
</Filter>\r
<Filter\r
Name="Header Files"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\FFFTP_Eng_Debug\FFFTP.exe"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\FFFTP_Eng_Debug\FFFTP.pdb"\r
SubSystem="2"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\FFFTP_Eng_Debug_64\FFFTP.exe"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\FFFTP_Eng_Debug_64\FFFTP.pdb"\r
SubSystem="2"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\FFFTP_Eng_Release\FFFTP.exe"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
ProgramDatabaseFile=".\FFFTP_Eng_Release\FFFTP.pdb"\r
SubSystem="2"\r
TargetMachine="1"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\FFFTP_Eng_Release_64\FFFTP.exe"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
ProgramDatabaseFile=".\FFFTP_Eng_Release_64\FFFTP.pdb"\r
SubSystem="2"\r
TargetMachine="17"\r
>\r
</File>\r
<File\r
+ RelativePath=".\updater.c"\r
+ >\r
+ </File>\r
+ <File\r
RelativePath=".\wildcard.c"\r
>\r
</File>\r
RelativePath=".\socketwrapper.h"\r
>\r
</File>\r
+ <File\r
+ RelativePath=".\updater.h"\r
+ >\r
+ </File>\r
</Filter>\r
<Filter\r
Name="Resource Files"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\FFFTP_Eng_Debug\FFFTP.exe"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\FFFTP_Eng_Debug\FFFTP.pdb"\r
SubSystem="2"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\FFFTP_Eng_Debug_64\FFFTP.exe"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\FFFTP_Eng_Debug_64\FFFTP.pdb"\r
SubSystem="2"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\FFFTP_Eng_Release\FFFTP.exe"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
ProgramDatabaseFile=".\FFFTP_Eng_Release\FFFTP.pdb"\r
SubSystem="2"\r
RandomizedBaseAddress="1"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\FFFTP_Eng_Release_64\FFFTP.exe"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
ProgramDatabaseFile=".\FFFTP_Eng_Release_64\FFFTP.pdb"\r
SubSystem="2"\r
RandomizedBaseAddress="1"\r
>\r
</File>\r
<File\r
+ RelativePath=".\updater.c"\r
+ >\r
+ </File>\r
+ <File\r
RelativePath=".\wildcard.c"\r
>\r
</File>\r
RelativePath=".\socketwrapper.h"\r
>\r
</File>\r
+ <File\r
+ RelativePath=".\updater.h"\r
+ >\r
+ </File>\r
</Filter>\r
<Filter\r
Name="Resource Files"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\FFFTP_Eng_Debug\FFFTP.exe"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\FFFTP_Eng_Debug\FFFTP.pdb"\r
SubSystem="2"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\FFFTP_Eng_Debug_64\FFFTP.exe"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\FFFTP_Eng_Debug_64\FFFTP.pdb"\r
SubSystem="2"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\FFFTP_Eng_Release\FFFTP.exe"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
ProgramDatabaseFile=".\FFFTP_Eng_Release\FFFTP.pdb"\r
SubSystem="2"\r
TargetMachine="1"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib ws2_32.lib"\r
+ AdditionalDependencies="comctl32.lib crypt32.lib htmlhelp.lib imagehlp.lib rasapi32.lib sfc.lib uuid.lib winmm.lib wintrust.lib winhttp.lib ws2_32.lib"\r
OutputFile=".\FFFTP_Eng_Release_64\FFFTP.exe"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;ws2_32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;imagehlp.dll;ole32.dll;oleaut32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;winhttp.dll;ws2_32.dll"\r
ProgramDatabaseFile=".\FFFTP_Eng_Release_64\FFFTP.pdb"\r
SubSystem="2"\r
TargetMachine="17"\r
>\r
</File>\r
<File\r
+ RelativePath=".\updater.c"\r
+ >\r
+ </File>\r
+ <File\r
RelativePath=".\wildcard.c"\r
>\r
</File>\r
RelativePath=".\socketwrapper.h"\r
>\r
</File>\r
+ <File\r
+ RelativePath=".\updater.h"\r
+ >\r
+ </File>\r
</Filter>\r
<Filter\r
Name="Resource Files"\r
g_ProcessProtectionLevel = Level;\r
}\r
\r
-// ファイルのSHA1ハッシュを取得\r
-BOOL GetSHA1HashOfFile(LPCWSTR Filename, void* pHash)\r
+// メモリのSHA1ハッシュを取得\r
+BOOL GetSHA1HashOfMemory(const void* pData, DWORD Size, void* pHash)\r
{\r
BOOL bResult;\r
HCRYPTPROV hProv;\r
HCRYPTHASH hHash;\r
- HANDLE hFile;\r
- DWORD Size;\r
- void* pData;\r
DWORD dw;\r
bResult = FALSE;\r
if(CryptAcquireContextW(&hProv, NULL, NULL, PROV_RSA_FULL, 0) || CryptAcquireContextW(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET))\r
{\r
if(CryptCreateHash(hProv, CALG_SHA1, 0, 0, &hHash))\r
{\r
- if((hFile = CreateFileW(Filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) != INVALID_HANDLE_VALUE)\r
+ if(CryptHashData(hHash, (BYTE*)pData, Size, 0))\r
{\r
- Size = GetFileSize(hFile, NULL);\r
- if(pData = VirtualAlloc(NULL, Size, MEM_COMMIT, PAGE_READWRITE))\r
- {\r
- VirtualLock(pData, Size);\r
- if(ReadFile(hFile, pData, Size, &dw, NULL))\r
- {\r
- if(CryptHashData(hHash, (BYTE*)pData, Size, 0))\r
- {\r
- dw = 20;\r
- if(CryptGetHashParam(hHash, HP_HASHVAL, (BYTE*)pHash, &dw, 0))\r
- bResult = TRUE;\r
- }\r
- }\r
- VirtualUnlock(pData, Size);\r
- VirtualFree(pData, Size, MEM_DECOMMIT);\r
- }\r
- CloseHandle(hFile);\r
+ dw = 20;\r
+ if(CryptGetHashParam(hHash, HP_HASHVAL, (BYTE*)pHash, &dw, 0))\r
+ bResult = TRUE;\r
}\r
CryptDestroyHash(hHash);\r
}\r
return bResult;\r
}\r
\r
+// ファイルのSHA1ハッシュを取得\r
+BOOL GetSHA1HashOfFile(LPCWSTR Filename, void* pHash)\r
+{\r
+ BOOL bResult;\r
+ HANDLE hFile;\r
+ DWORD Size;\r
+ void* pData;\r
+ DWORD dw;\r
+ bResult = FALSE;\r
+ if((hFile = CreateFileW(Filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) != INVALID_HANDLE_VALUE)\r
+ {\r
+ Size = GetFileSize(hFile, NULL);\r
+ if(pData = VirtualAlloc(NULL, Size, MEM_COMMIT, PAGE_READWRITE))\r
+ {\r
+ VirtualLock(pData, Size);\r
+ if(ReadFile(hFile, pData, Size, &dw, NULL))\r
+ {\r
+ if(GetSHA1HashOfMemory(pData, Size, pHash))\r
+ bResult = TRUE;\r
+ }\r
+ VirtualUnlock(pData, Size);\r
+ VirtualFree(pData, Size, MEM_DECOMMIT);\r
+ }\r
+ CloseHandle(hFile);\r
+ }\r
+ return bResult;\r
+}\r
+\r
// DLLのハッシュを登録\r
BOOL RegisterTrustedModuleSHA1Hash(void* pHash)\r
{\r
\r
HMODULE System_LoadLibrary(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);\r
void SetProcessProtectionLevel(DWORD Level);\r
+BOOL GetSHA1HashOfMemory(const void* pData, DWORD Size, void* pHash);\r
BOOL GetSHA1HashOfFile(LPCWSTR Filename, void* pHash);\r
BOOL RegisterTrustedModuleSHA1Hash(void* pHash);\r
BOOL UnregisterTrustedModuleSHA1Hash(void* pHash);\r
typedef X509_NAME* (__cdecl* _X509_get_subject_name)(X509*);\r
typedef int (__cdecl* _X509_NAME_print_ex)(BIO*, X509_NAME*, int, unsigned long);\r
typedef void (__cdecl* _X509_CRL_free)(X509_CRL*);\r
+typedef EVP_PKEY* (__cdecl* _PEM_read_bio_PUBKEY)(BIO*, EVP_PKEY**, pem_password_cb*, void*);\r
typedef X509* (__cdecl* _PEM_read_bio_X509)(BIO*, X509**, pem_password_cb*, void*);\r
typedef X509_CRL* (__cdecl* _PEM_read_bio_X509_CRL)(BIO*, X509_CRL**, pem_password_cb*, void*);\r
typedef int (__cdecl* _X509_STORE_add_cert)(X509_STORE*, X509*);\r
typedef int (__cdecl* _X509_STORE_add_crl)(X509_STORE*, X509_CRL*);\r
+typedef void (__cdecl* _EVP_PKEY_free)(EVP_PKEY*);\r
+typedef RSA* (__cdecl* _EVP_PKEY_get1_RSA)(EVP_PKEY*);\r
+typedef void (__cdecl* _RSA_free)(RSA*);\r
+typedef int (__cdecl* _RSA_size)(const RSA*);\r
+typedef int (__cdecl* _RSA_public_decrypt)(int, const unsigned char*, unsigned char*, RSA*,int);\r
\r
_SSL_load_error_strings p_SSL_load_error_strings;\r
_SSL_library_init p_SSL_library_init;\r
_X509_get_subject_name p_X509_get_subject_name;\r
_X509_NAME_print_ex p_X509_NAME_print_ex;\r
_X509_CRL_free p_X509_CRL_free;\r
+_PEM_read_bio_PUBKEY p_PEM_read_bio_PUBKEY;\r
_PEM_read_bio_X509 p_PEM_read_bio_X509;\r
_PEM_read_bio_X509_CRL p_PEM_read_bio_X509_CRL;\r
_X509_STORE_add_cert p_X509_STORE_add_cert;\r
_X509_STORE_add_crl p_X509_STORE_add_crl;\r
+_EVP_PKEY_free p_EVP_PKEY_free;\r
+_EVP_PKEY_get1_RSA p_EVP_PKEY_get1_RSA;\r
+_RSA_free p_RSA_free;\r
+_RSA_size p_RSA_size;\r
+_RSA_public_decrypt p_RSA_public_decrypt;\r
\r
#define MAX_SSL_SOCKET 16\r
\r
|| !(p_X509_get_subject_name = (_X509_get_subject_name)GetProcAddress(g_hOpenSSLCommon, "X509_get_subject_name"))\r
|| !(p_X509_NAME_print_ex = (_X509_NAME_print_ex)GetProcAddress(g_hOpenSSLCommon, "X509_NAME_print_ex"))\r
|| !(p_X509_CRL_free = (_X509_CRL_free)GetProcAddress(g_hOpenSSLCommon, "X509_CRL_free"))\r
+ || !(p_PEM_read_bio_PUBKEY = (_PEM_read_bio_PUBKEY)GetProcAddress(g_hOpenSSLCommon, "PEM_read_bio_PUBKEY"))\r
|| !(p_PEM_read_bio_X509 = (_PEM_read_bio_X509)GetProcAddress(g_hOpenSSLCommon, "PEM_read_bio_X509"))\r
|| !(p_PEM_read_bio_X509_CRL = (_PEM_read_bio_X509_CRL)GetProcAddress(g_hOpenSSLCommon, "PEM_read_bio_X509_CRL"))\r
|| !(p_X509_STORE_add_cert = (_X509_STORE_add_cert)GetProcAddress(g_hOpenSSLCommon, "X509_STORE_add_cert"))\r
- || !(p_X509_STORE_add_crl = (_X509_STORE_add_crl)GetProcAddress(g_hOpenSSLCommon, "X509_STORE_add_crl")))\r
+ || !(p_X509_STORE_add_crl = (_X509_STORE_add_crl)GetProcAddress(g_hOpenSSLCommon, "X509_STORE_add_crl"))\r
+ || !(p_EVP_PKEY_free = (_EVP_PKEY_free)GetProcAddress(g_hOpenSSLCommon, "EVP_PKEY_free"))\r
+ || !(p_EVP_PKEY_get1_RSA = (_EVP_PKEY_get1_RSA)GetProcAddress(g_hOpenSSLCommon, "EVP_PKEY_get1_RSA"))\r
+ || !(p_RSA_free = (_RSA_free)GetProcAddress(g_hOpenSSLCommon, "RSA_free"))\r
+ || !(p_RSA_size = (_RSA_size)GetProcAddress(g_hOpenSSLCommon, "RSA_size"))\r
+ || !(p_RSA_public_decrypt = (_RSA_public_decrypt)GetProcAddress(g_hOpenSSLCommon, "RSA_public_decrypt")))\r
{\r
if(g_hOpenSSL)\r
FreeLibrary(g_hOpenSSL);\r
return bResult;\r
}\r
\r
+// RSA復号化\r
+// 主に自動更新ファイルのハッシュの改竄確認\r
+BOOL DecryptSignature(const char* PublicKey, const void* pIn, DWORD InLength, void* pOut, DWORD OutLength, DWORD* pOutLength)\r
+{\r
+ BOOL bResult;\r
+ BIO* pBIO;\r
+ EVP_PKEY* pPKEY;\r
+ RSA* pRSA;\r
+ int i;\r
+ bResult = FALSE;\r
+ if(pBIO = p_BIO_new_mem_buf((void*)PublicKey, sizeof(char) * strlen(PublicKey)))\r
+ {\r
+ if(pPKEY = p_PEM_read_bio_PUBKEY(pBIO, NULL, NULL, NULL))\r
+ {\r
+ if(pRSA = p_EVP_PKEY_get1_RSA(pPKEY))\r
+ {\r
+ if(p_RSA_size(pRSA) <= (int)OutLength)\r
+ {\r
+ i = p_RSA_public_decrypt((int)InLength, (const unsigned char*)pIn, (unsigned char*)pOut, pRSA, RSA_PKCS1_PADDING);\r
+ if(i >= 0)\r
+ {\r
+ *pOutLength = (DWORD)i;\r
+ bResult = TRUE;\r
+ }\r
+ }\r
+ p_RSA_free(pRSA);\r
+ }\r
+ p_EVP_PKEY_free(pPKEY);\r
+ }\r
+ p_BIO_free(pBIO);\r
+ }\r
+ return bResult;\r
+}\r
+\r
// SSLセッションを開始\r
BOOL AttachSSL(SOCKET s, SOCKET parent, BOOL* pbAborted)\r
{\r
void SetSSLConfirmCallback(LPSSLCONFIRMCALLBACK pCallback);\r
BOOL SetSSLRootCertificate(const void* pData, DWORD Length);\r
BOOL IsHostNameMatched(LPCSTR HostName, LPCSTR CommonName);\r
+BOOL DecryptSignature(const char* PublicKey, const void* pIn, DWORD InLength, void* pOut, DWORD OutLength, DWORD* pOutLength);\r
BOOL AttachSSL(SOCKET s, SOCKET parent, BOOL* pbAborted);\r
BOOL DetachSSL(SOCKET s);\r
BOOL IsSSLAttached(SOCKET s);\r