Hallo zusammen!
Ich hab mal eine Frage bezühlich der AutoIT|FTP - Verbindung.
Ich benutze die untenstehende FTP.au3 und habe mir damit ein beliebiges(^-^) script geschrieben.
Aber mit zB Wireshark ist das gesendete Passwort ganz einfach zu sniffen, was voll doof ist;P
Meine Frage ist also, ob es möglich ist, dieses Passwort (&Benutzer/Server) verschlüsselt zu übertragen?
Freue mich auf Rücksprache;)
pete
------------
Spoiler anzeigen
;
; Function Name: _FTPOpen()
; Description: Opens an FTP session.
; Parameter(s): $s_Agent - Random name. ( like "myftp" )
; $l_AccessType - I dont got a clue what this does.
; $s_ProxyName - ProxyName.
; $s_ProxyBypass - ProxyByPasses's.
; $l_Flags - Special flags.
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - Returns an indentifier.
; On Failure - 0 and sets @ERROR
; Author(s): Wouter van Kesteren.
;
;===============================================================================
Func _FTPOpen($s_Agent, $l_AccessType = 1, $s_ProxyName = '', $s_ProxyBypass = '', $l_Flags = 0)
Local $ai_InternetOpen = DllCall('wininet.dll', 'long', 'InternetOpen', 'str', $s_Agent, 'long', $l_AccessType, 'str', $s_ProxyName, 'str', $s_ProxyBypass, 'long', $l_Flags)
If @error OR $ai_InternetOpen[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_InternetOpen[0]
EndFunc ;==> _FTPOpen()
;===============================================================================
;
; Function Name: _FTPConnect()
; Description: Connects to an FTP server.
; Parameter(s): $l_InternetSession - The Long from _FTPOpen()
; $s_ServerName - Server name/ip.
; $s_Username - Username.
; $s_Password - Password.
; $i_ServerPort - Server port ( 0 is default (21) )
; $l_Service - I dont got a clue what this does.
; $l_Flags - Special flags.
; $l_Context - I dont got a clue what this does.
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - Returns an indentifier.
; On Failure - 0 and sets @ERROR
; Author(s): Wouter van Kesteren
;
;===============================================================================
Func _FTPConnect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_ServerPort = 0, $l_Service = 1, $l_Flags = 0, $l_Context = 0)
Local $ai_InternetConnect = DllCall('wininet.dll', 'long', 'InternetConnect', 'long', $l_InternetSession, 'str', $s_ServerName, 'int', $i_ServerPort, 'str', $s_Username, 'str', $s_Password, 'long', $l_Service, 'long', $l_Flags, 'long', $l_Context)
If @error OR $ai_InternetConnect[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_InternetConnect[0]
EndFunc ;==> _FTPConnect()
;===============================================================================
;
; Function Name: _FTPPutFile()
; Description: Puts an file on an FTP server.
; Parameter(s): $l_FTPSession - The Long from _FTPConnect()
; $s_LocalFile - The local file.
; $s_RemoteFile - The remote Location for the file.
; $l_Flags - Special flags.
; $l_Context - I dont got a clue what this does.
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - 1
; On Failure - 0
; Author(s): Wouter van Kesteren
;
;===============================================================================
Func _FTPPutFile($l_FTPSession, $s_LocalFile, $s_RemoteFile, $l_Flags = 0, $l_Context = 0)
[/autoit] [autoit][/autoit] [autoit]Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'FtpPutFile', 'long', $l_FTPSession, 'str', $s_LocalFile, 'str', $s_RemoteFile, 'long', $l_Flags, 'long', $l_Context)
If @error OR $ai_FTPPutFile[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_FTPPutFile[0]
EndFunc ;==> _FTPPutFile()
;===============================================================================
;
; Function Name: _FTPDelFile()
; Description: Delete an file from an FTP server.
; Parameter(s): $l_FTPSession - The Long from _FTPConnect()
; $s_RemoteFile - The remote Location for the file.
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - 1
; On Failure - 0
; Author(s): Wouter van Kesteren
;
;===============================================================================
Func _FTPDelFile($l_FTPSession, $s_RemoteFile)
Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'FtpDeleteFile', 'long', $l_FTPSession, 'str', $s_RemoteFile)
If @error OR $ai_FTPPutFile[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_FTPPutFile[0]
EndFunc ;==> _FTPDelFile()
;===============================================================================
;
; Function Name: _FTPRenameFile()
; Description: Renames an file on an FTP server.
; Parameter(s): $l_FTPSession - The Long from _FTPConnect()
; $s_Existing - The old file name.
; $s_New - The new file name.
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - 1
; On Failure - 0
; Author(s): Wouter van Kesteren
;
;===============================================================================
Func _FTPRenameFile($l_FTPSession, $s_Existing, $s_New)
Local $ai_FTPRenameFile = DllCall('wininet.dll', 'int', 'FtpRenameFile', 'long', $l_FTPSession, 'str', $s_Existing, 'str', $s_New)
If @error OR $ai_FTPRenameFile[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_FTPRenameFile[0]
EndFunc ;==> _FTPRenameFile()
;===============================================================================
;
; Function Name: _FTPMakeDir()
; Description: Makes an Directory on an FTP server.
; Parameter(s): $l_FTPSession - The Long from _FTPConnect()
; $s_Remote - The file name to be deleted.
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - 1
; On Failure - 0
; Author(s): Wouter van Kesteren
;
;===============================================================================
Func _FTPMakeDir($l_FTPSession, $s_Remote)
Local $ai_FTPMakeDir = DllCall('wininet.dll', 'int', 'FtpCreateDirectory', 'long', $l_FTPSession, 'str', $s_Remote)
If @error OR $ai_FTPMakeDir[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_FTPMakeDir[0]
EndFunc ;==> _FTPMakeDir()
;===============================================================================
;
; Function Name: _FTPDelDir()
; Description: Delete's an Directory on an FTP server.
; Parameter(s): $l_FTPSession - The Long from _FTPConnect()
; $s_Remote - The Directory to be deleted.
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - 1
; On Failure - 0
; Author(s): Wouter van Kesteren
;
;===============================================================================
Func _FTPDelDir($l_FTPSession, $s_Remote)
Local $ai_FTPDelDir = DllCall('wininet.dll', 'int', 'FtpRemoveDirectory', 'long', $l_FTPSession, 'str', $s_Remote)
If @error OR $ai_FTPDelDir[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_FTPDelDir[0]
EndFunc ;==> _FTPDelDir()
;===============================================================================
;
; Function Name: _FTPClose()
; Description: Closes the _FTPOpen session.
; Parameter(s): $l_InternetSession - The Long from _FTPOpen()
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - 1
; On Failure - 0
; Author(s): Wouter van Kesteren
;
;===============================================================================
Func _FTPClose($l_InternetSession)
Local $ai_InternetCloseHandle = DllCall('wininet.dll', 'int', 'InternetCloseHandle', 'long', $l_InternetSession)
If @error OR $ai_InternetCloseHandle[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_InternetCloseHandle[0]
EndFunc ;==> _FTPClose()
; ================================================= FTP Functions for UDF ==========================================================
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Local Const $FTP_ASCII = 1
Local Const $FTP_BINARY = 2
Local Const $FTP_OVERWRITE = 0
Local Const $FTP_DONTOVERWRIRE = -1
Local Const $FTP_PASSIVE = 0x8000000
Local Const $FTP_NONPASSIVE = 0
;===============================================================================
[/autoit] [autoit][/autoit] [autoit];
; Function Name: _FTPFileFindFirst()
; Description: Find First File on an FTP server.
; Parameter(s): $l_FTPSession - The Long from _FTPConnect()
; $s_RemoteFile - The remote Location for the file.
; $l_Flags - use the dwFlags parameter to specify 1 for transferring the file in ASCII (Type A transfer method) or 2 for transferring the file in Binary (Type I transfer method).
; $l_Context - lContext is used to identify the application context when using callbacks. Since we’re not using callbacks we’ll pass 0.
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - 1
; On Failure - 0
; Author(s): Dick Bronsdijk
;
;===============================================================================
#cs
typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
TCHAR cFileName[MAX_PATH];
TCHAR cAlternateFileName[14];
} WIN32_FIND_DATA;
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
#ce
Func _FTPFileFindFirst($l_FTPSession, $s_RemoteFile, ByRef $h_Handle, ByRef $l_DllStruct, $l_Flags = 0, $l_Context = 0)
Local $str = "int;uint[2];uint[2];uint[2];int;int;int;int;char[256];char[14]"
$l_DllStruct = DllStructCreate($str)
if @error Then
SetError(-2)
Return ""
endif
Dim $a_FTPFileList[1]
$a_FTPFileList[0] = 0
Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'FtpFindFirstFile', 'long', $l_FTPSession, 'str', $s_RemoteFile, 'ptr', DllStructGetPtr($l_DllStruct), 'long', $l_Flags, 'long', $l_Context)
If @error OR $ai_FTPPutFile[0] = 0 Then
SetError(-1)
Return $a_FTPFileList
EndIf
$h_Handle = $ai_FTPPutFile[0]
$FileName = DllStructGetData($l_DllStruct, 9)
Dim $a_FTPFileList[12]
$a_FTPFileList[0] = 12
$a_FTPFileList[1] = DllStructGetData($l_DllStruct, 1) ; File Attributes
$a_FTPFileList[2] = DllStructGetData($l_DllStruct, 2, 1) ; Creation Time Low
$a_FTPFileList[3] = DllStructGetData($l_DllStruct, 2, 2) ; Creation Time High
$a_FTPFileList[4] = DllStructGetData($l_DllStruct, 3, 1) ; Access Time Low
$a_FTPFileList[5] = DllStructGetData($l_DllStruct, 3, 2) ; Access Time High
$a_FTPFileList[6] = DllStructGetData($l_DllStruct, 4, 1) ; Last Write Low
$a_FTPFileList[7] = DllStructGetData($l_DllStruct, 4, 2) ; Last Write High
$a_FTPFileList[8] = DllStructGetData($l_DllStruct, 5) ; File Size High
$a_FTPFileList[9] = DllStructGetData($l_DllStruct, 6) ; File Size Low
$a_FTPFileList[10] = DllStructGetData($l_DllStruct, 9) ; File Name
$a_FTPFileList[11] = DllStructGetData($l_DllStruct, 10) ; Altername
Return $a_FTPFileList
[/autoit] [autoit][/autoit] [autoit]EndFunc;==> _FTPFileFindFirst()
[/autoit] [autoit][/autoit] [autoit];===============================================================================
[/autoit] [autoit][/autoit] [autoit];
; Function Name: _FTPFileFindNext()
; Description: Find Next File on an FTP server.
; Parameter(s): $l_FTPSession - The Long from _FTPConnect()
; $s_RemoteFile - The remote Location for the file.
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - 1
; On Failure - 0
; Author(s): Dick Bronsdijk
;
;===============================================================================
Func _FTPFileFindNext($h_Handle, $l_DllStruct)
[/autoit] [autoit][/autoit] [autoit]Dim $a_FTPFileList[1]
$a_FTPFileList[0] = 0
Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'InternetFindNextFile', 'long', $h_Handle, 'ptr', DllStructGetPtr($l_DllStruct))
If @error OR $ai_FTPPutFile[0] = 0 Then
SetError(-1)
Return $a_FTPFileList
EndIf
Dim $a_FTPFileList[12]
$a_FTPFileList[0] = 12
$a_FTPFileList[1] = DllStructGetData($l_DllStruct, 1) ; File Attributes
$a_FTPFileList[2] = DllStructGetData($l_DllStruct, 2, 1) ; Creation Time Low
$a_FTPFileList[3] = DllStructGetData($l_DllStruct, 2, 2) ; Creation Time High
$a_FTPFileList[4] = DllStructGetData($l_DllStruct, 3, 1) ; Access Time Low
$a_FTPFileList[5] = DllStructGetData($l_DllStruct, 3, 2) ; Access Time High
$a_FTPFileList[6] = DllStructGetData($l_DllStruct, 4, 1) ; Last Write Low
$a_FTPFileList[7] = DllStructGetData($l_DllStruct, 4, 2) ; Last Write High
$a_FTPFileList[8] = DllStructGetData($l_DllStruct, 5) ; File Size High
$a_FTPFileList[9] = DllStructGetData($l_DllStruct, 6) ; File Size Low
$a_FTPFileList[10] = DllStructGetData($l_DllStruct, 9) ; File Name
$a_FTPFileList[11] = DllStructGetData($l_DllStruct, 10) ; Altername
Return $a_FTPFileList
[/autoit] [autoit][/autoit] [autoit]EndFunc;==> _FTPFileFindNext()
[/autoit] [autoit][/autoit] [autoit];===============================================================================
[/autoit] [autoit][/autoit] [autoit];
; Function Name: _FTPFileFindClose()
; Description: Delete FindFile Structure.
; Parameter(s):
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - 1
; On Failure - 0
; Author(s): Dick Bronsdijk
;
;===============================================================================
Func _FTPFileFindClose($h_Handle, $l_DllStruct)
[/autoit] [autoit][/autoit] [autoit];~ DllStructDelete($l_DllStruct)
Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'InternetCloseHandle', 'long', $h_Handle)
If @error OR $ai_FTPPutFile[0] = 0 Then
SetError(-1)
Return ""
EndIf
Return $ai_FTPPutFile[0]
EndFunc;==> _FTPFileFindClose()
;===============================================================================
;
; Function Name: _FTPGetFile() - db Test
; Description: Gets an file from an FTP server.
; Parameter(s): $l_FTPSession - The Long from _FTPConnect()
; $s_RemoteFile - The remote Location for the file.
; $s_LocalFile - The local file.
; $l_Flags - use the dwFlags parameter to specify
; - 1 for transferring the file in ASCII (Type A transfer method) or
; - 2 for transferring the file in Binary (Type I transfer method).
; $l_Fail - Allow local file to be overwritten if it exists
; - -1 Don't allow overwrite (default)
; - 0 Allow overwrite
; $l_Attributes - Attributes for local file
; $l_Context - lContext is used to identify the application context when using callbacks. Since we’re not using callbacks we’ll pass 0.
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - 1
; On Failure - 0
; Author(s): Dick Bronsdijk
;
;===============================================================================
Func _FTPGetFile($l_FTPSession, $s_RemoteFile, $s_LocalFile, $l_Flags = 2, $l_Fail = -1, $l_Attributes = 0, $l_Context = 0)
[/autoit] [autoit][/autoit] [autoit]Local $ai_FTPGetFile = DllCall('wininet.dll', 'int', 'FtpGetFile', 'long', $l_FTPSession, 'str', $s_RemoteFile, 'str', $s_LocalFile, 'long', $l_Fail, 'long', $l_Attributes, 'long', $l_Flags, 'long', $l_Context)
If @error OR $ai_FTPGetFile[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_FTPGetFile[0]
EndFunc;==> _FTPGetFile()