BitDefender voit mon programme lanceur TrueCrypt comme un trojan :Gen.trojan.autoit
Ce qui m'embête vraiment car cet utilitaire a été donné à des utilisateurs qui risquent de voir l'outil supprimé chez eux.
Je ne sais pas d'où ça vient ni comment le corriger
Prog principal :
► Afficher le texte
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include<Array.au3>
#include<FileListToArrayXT.au3>
$Path = @ScriptDir
$Choix = ""
$File = ""
#Region ### START Koda GUI section ### Form=C:\Gestion\Scripts\Truecrypt\V3.0\Form1.kxf
Global $Form1 = GUICreate("Choix du fichier crypté", 225, 48, 192, 114)
Global $LIST = GUICtrlCreateCombo("Choix des Fichiers", 8, 8, 145, 25)
Global $GO = GUICtrlCreateButton("LANCER", 160, 8, 57, 25, $WS_GROUP)
;recherche des fichier .tc dans $Path
$File = _FileListToArrayXT ($Path, "*.tc", 1, 0, True)
If @error Then
MsgBox(0, "Erreur fichier manquant.", "Aucun fichier TrueCrypt .tc est présent sur le disque." & @CRLF & "Veuillez contacter votre service informatique.")
Exit
EndIf
For $i = 1 To UBound($File) - 1
GUICtrlSetData($LIST, $File[$i], "Choix des Fichiers")
Next
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
If FileExists($Path & "\TrueCrypt\") Then
Run ( $Path & "\TrueCrypt\TrueCrypt.exe /q /d" )
Endif
Exit
Case $Go
If FileExists($Path & "\TrueCrypt\") Then
$Choix = GUICtrlRead($LIST)
Run ( $Path & "\TrueCrypt\TrueCrypt.exe /v " & $Choix & " /m rm /auto /q /e" )
Else
MsgBox(0, "Erreur Dossier absent.", "Aucun dossier TrueCrypt est présent sur le disque." & @CRLF & "Veuillez contacter votre service informatique.")
Exit
Endif
EndSwitch
WEnd
► Afficher le texte
Func _FileListToArrayXT($sPath = @ScriptDir, $sFilter = "*", $iRetItemType = 0, $iRetPathType = 0, $bRecursive = False, $sExclude = "", $iRetFormat = 1)
Local $hSearchFile, $sFile, $sFileList, $sWorkPath, $sRetPath, $iRootPathLen, $iPCount, $iFCount, $fDirFlag
;[check and prepare parameters]
;---------------
If $sPath = -1 Or $sPath = Default Then $sPath = @ScriptDir
;strip leading/trailing spaces and semi-colons, all adjacent semi-colons, and spaces surrounding semi-colons
$sPath = StringRegExpReplace(StringRegExpReplace($sPath, "(\s*;\s*)+", ";"), "\A;|;\z", "")
;check that at least one path is set
If $sPath = "" Then Return SetError(1, 1, "")
;-----
If $sFilter = -1 Or $sFilter = Default Then $sFilter = "*"
;prepare filter
;strip leading/trailing spaces and semi-colons, all adjacent semi-colons, and spaces surrounding semi-colons
$sFilter = StringRegExpReplace(StringRegExpReplace($sFilter, "(\s*;\s*)+", ";"), "\A;|;\z", "")
;check for invalid chars or that at least one filter is set
If StringRegExp($sFilter, "[\\/><:\|]|(?s)\A\s*\z") Then Return SetError(2, 2, "")
If $bRecursive Then
;Convert $sFilter for Regular Expression
$sFilter = StringRegExpReplace($sFilter, '([\Q\.+[^]$(){}=!\E])', '\\$1')
$sFilter = StringReplace($sFilter, "?", ".")
$sFilter = StringReplace($sFilter, "*", ".*?")
$sFilter = "(?i)\A(" & StringReplace($sFilter, ";", "$|") & "$)" ;case-insensitive, convert ';' to '|', match from first char, terminate strings
;$sFilter = "(?i)\A" & StringReplace($sFilter, ";", "|") & "\z"
EndIf
;-----
If $iRetItemType <> "1" And $iRetItemType <> "2" Then $iRetItemType = "0"
;-----
If $iRetPathType <> "1" And $iRetPathType <> "2" Then $iRetPathType = "0"
;-----
$bRecursive = ($bRecursive = "1")
;-----
If $sExclude = -1 Or $sExclude = Default Then $sExclude = ""
If $sExclude Then
;prepare $sExclude
;strip leading/trailing spaces and semi-colons, all adjacent semi-colons, and spaces surrounding semi-colons
$sExclude = StringRegExpReplace(StringRegExpReplace($sExclude, "(\s*;\s*)+", ";"), "\A;|;\z", "")
;Convert $sExclude for Regular Expression
$sExclude = StringRegExpReplace($sExclude, '([\Q\.+[^]$(){}=!\E])', '\\$1')
$sExclude = StringReplace($sExclude, "?", ".")
$sExclude = StringReplace($sExclude, "*", ".*?")
$sExclude = "(?i)\A(" & StringReplace($sExclude, ";", "$|") & "$)" ;case-insensitive, convert ';' to '|', match from first char, terminate strings
;$sExclude = "(?i)\A" & StringReplace($sExclude, ";", "|") & "\z"
EndIf
;-----
;If $iRetFormat <> "0" And $iRetFormat <> "2" Then $iRetFormat = "1"
If Not ($iRetItemType = 0 Or $iRetItemType = 1 Or $iRetItemType = 2) Then Return SetError(3, 3, "")
;---------------
;[/check and prepare parameters]
;---------------
Local $aPath = StringSplit($sPath, ';', 1) ;paths array
Local $aFilter = StringSplit($sFilter, ';', 1) ;filters array
;---------------
If $bRecursive Then ;different handling for recursion (strategy: unfiltered search for all items and filter unwanted)
If $sExclude Then ;different handling dependent on $sExclude parameter is set or not
For $iPCount = 1 To $aPath[0] ;Path loop
$sPath = StringRegExpReplace($aPath[$iPCount], "[\\/]+\z", "") & "\" ;ensure exact one trailing slash
If Not FileExists($sPath) Then ContinueLoop
$iRootPathLen = StringLen($sPath) - 1
Local $aPathStack[1024] = [1, $sPath]
While $aPathStack[0] > 0
$sWorkPath = $aPathStack[$aPathStack[0]]
$aPathStack[0] -= 1
;-----
$hSearchFile = FileFindFirstFile($sWorkPath & '*')
If @error Then ContinueLoop
;-----
Switch $iRetPathType
Case 2 ;full path
$sRetPath = $sWorkPath
Case 1 ;relative path
$sRetPath = StringTrimLeft($sWorkPath, $iRootPathLen + 1)
EndSwitch
;-----
Switch $iRetItemType
Case 1
While True ;Files only
$sFile = FileFindNextFile($hSearchFile)
If @error Then ExitLoop
$fDirFlag = @extended
If $fDirFlag Then
$aPathStack[0] += 1
If UBound($aPathStack) <= $aPathStack[0] Then ReDim $aPathStack[UBound($aPathStack) * 2]
$aPathStack[$aPathStack[0]] = $sWorkPath & $sFile & "\"
ContinueLoop
EndIf
If StringRegExp($sFile, $sExclude) Then ContinueLoop
If StringRegExp($sFile, $sFilter) Then
$sFileList &= $sRetPath & $sFile & "|"
EndIf
WEnd
Case 2
While True ;Folders only
$sFile = FileFindNextFile($hSearchFile)
If @error Then ExitLoop
$fDirFlag = @extended
If StringRegExp($sFile, $sExclude) Then ContinueLoop
If $fDirFlag Then
$aPathStack[0] += 1
If UBound($aPathStack) <= $aPathStack[0] Then ReDim $aPathStack[UBound($aPathStack) * 2]
$aPathStack[$aPathStack[0]] = $sWorkPath & $sFile & "\"
If StringRegExp($sFile, $sFilter) Then
$sFileList &= $sRetPath & $sFile & "|"
EndIf
EndIf
WEnd
Case Else
While True ;Files and Folders
$sFile = FileFindNextFile($hSearchFile)
If @error Then ExitLoop
$fDirFlag = @extended
If StringRegExp($sFile, $sExclude) Then ContinueLoop
If $fDirFlag Then
$aPathStack[0] += 1
If UBound($aPathStack) <= $aPathStack[0] Then ReDim $aPathStack[UBound($aPathStack) * 2]
$aPathStack[$aPathStack[0]] = $sWorkPath & $sFile & "\"
EndIf
If StringRegExp($sFile, $sFilter) Then
$sFileList &= $sRetPath & $sFile & "|"
EndIf
WEnd
EndSwitch
;-----
WEnd
FileClose($hSearchFile)
Next ;$iPCount - next path
Else ;If Not $sExclude
For $iPCount = 1 To $aPath[0] ;Path loop
$sPath = StringRegExpReplace($aPath[$iPCount], "[\\/]+\z", "") & "\" ;ensure exact one trailing slash
If Not FileExists($sPath) Then ContinueLoop
$iRootPathLen = StringLen($sPath) - 1
Local $aPathStack[1024] = [1, $sPath]
While $aPathStack[0] > 0
$sWorkPath = $aPathStack[$aPathStack[0]]
$aPathStack[0] -= 1
;-----
$hSearchFile = FileFindFirstFile($sWorkPath & '*')
If @error Then ContinueLoop
;-----
Switch $iRetPathType
Case 2 ;full path
$sRetPath = $sWorkPath
Case 1 ;relative path
$sRetPath = StringTrimLeft($sWorkPath, $iRootPathLen + 1)
EndSwitch
;-----
Switch $iRetItemType
Case 1
While True ;Files only
$sFile = FileFindNextFile($hSearchFile)
If @error Then ExitLoop
If @extended Then
$aPathStack[0] += 1
If UBound($aPathStack) <= $aPathStack[0] Then ReDim $aPathStack[UBound($aPathStack) * 2]
$aPathStack[$aPathStack[0]] = $sWorkPath & $sFile & "\"
ContinueLoop
EndIf
If StringRegExp($sFile, $sFilter) Then
$sFileList &= $sRetPath & $sFile & "|"
EndIf
WEnd
Case 2
While True ;Folders only
$sFile = FileFindNextFile($hSearchFile)
If @error Then ExitLoop
If @extended Then
$aPathStack[0] += 1
If UBound($aPathStack) <= $aPathStack[0] Then ReDim $aPathStack[UBound($aPathStack) * 2]
$aPathStack[$aPathStack[0]] = $sWorkPath & $sFile & "\"
If StringRegExp($sFile, $sFilter) Then
$sFileList &= $sRetPath & $sFile & "|"
EndIf
EndIf
WEnd
Case Else
While True ;Files and Folders
$sFile = FileFindNextFile($hSearchFile)
If @error Then ExitLoop
If @extended Then
$aPathStack[0] += 1
If UBound($aPathStack) <= $aPathStack[0] Then ReDim $aPathStack[UBound($aPathStack) * 2]
$aPathStack[$aPathStack[0]] = $sWorkPath & $sFile & "\"
EndIf
If StringRegExp($sFile, $sFilter) Then
$sFileList &= $sRetPath & $sFile & "|"
EndIf
WEnd
EndSwitch
;-----
WEnd
FileClose($hSearchFile)
Next ;$iPCount - next path
EndIf ;If $sExclude
Else ;If Not $bRecursive (strategy: filtered search for items)
If $sExclude Then ;different handling dependent on $sExclude parameter is set or not
For $iPCount = 1 To $aPath[0] ;Path loop
$sPath = StringRegExpReplace($aPath[$iPCount], "[\\/]+\z", "") & "\" ;ensure exact one trailing slash
If Not FileExists($sPath) Then ContinueLoop
;-----
Switch $iRetPathType
Case 2 ;full path
$sRetPath = $sPath
Case 1 ;relative path
$sRetPath = ""
EndSwitch
For $iFCount = 1 To $aFilter[0] ;filter loop
;-----
$hSearchFile = FileFindFirstFile($sPath & $aFilter[$iFCount])
If @error Then ContinueLoop
;-----
Switch $iRetItemType
Case 1 ;files Only
While True
$sFile = FileFindNextFile($hSearchFile)
If @error Then ExitLoop
If @extended Then ContinueLoop ;bypass folder
;check for exclude files
If StringRegExp($sFile, $sExclude) Then ContinueLoop
$sFileList &= $sRetPath & $sFile & "|"
WEnd
Case 2 ;folders Only
While True
$sFile = FileFindNextFile($hSearchFile)
If @error Then ExitLoop
If @extended Then ;bypass file
;check for exclude folder
If StringRegExp($sFile, $sExclude) Then ContinueLoop
$sFileList &= $sRetPath & $sFile & "|"
EndIf
WEnd
Case Else ;files and folders
While True
$sFile = FileFindNextFile($hSearchFile)
If @error Then ExitLoop
;check for exclude files/folder
If StringRegExp($sFile, $sExclude) Then ContinueLoop
$sFileList &= $sRetPath & $sFile & "|"
WEnd
EndSwitch
FileClose($hSearchFile)
Next ;$iFCount - next filter
Next ;$iPCount - next path
Else ;If Not $sExclude
For $iPCount = 1 To $aPath[0] ;Path loop
$sPath = StringRegExpReplace($aPath[$iPCount], "[\\/]+\z", "") & "\" ;ensure exact one trailing slash
If Not FileExists($sPath) Then ContinueLoop
;-----
Switch $iRetPathType
Case 2 ;full path
$sRetPath = $sPath
Case 1 ;relative path
$sRetPath = ""
EndSwitch
For $iFCount = 1 To $aFilter[0] ;filter loop
;-----
$hSearchFile = FileFindFirstFile($sPath & $aFilter[$iFCount])
If @error Then ContinueLoop
;-----
Switch $iRetItemType
Case 1 ;files Only
While True
$sFile = FileFindNextFile($hSearchFile)
If @error Then ExitLoop
If @extended Then ContinueLoop ;bypass folder
$sFileList &= $sRetPath & $sFile & "|"
WEnd
Case 2 ;folders Only
While True
$sFile = FileFindNextFile($hSearchFile)
If @error Then ExitLoop
If @extended Then ;bypass file
$sFileList &= $sRetPath & $sFile & "|"
EndIf
WEnd
Case Else ;files and folders
While True
$sFile = FileFindNextFile($hSearchFile)
If @error Then ExitLoop
$sFileList &= $sRetPath & $sFile & "|"
WEnd
EndSwitch
FileClose($hSearchFile)
Next ;$iFCount - next filter
Next ;$iPCount - next path
EndIf ;If $sExclude
EndIf ;If $bRecursive
;---------------
;set according return value
If $sFileList Then
Switch $iRetFormat
Case 2 ;return a delimited string
Return StringTrimRight($sFileList, 1)
Case 0 ;return a 0-based array
Return StringSplit(StringTrimRight($sFileList, 1), "|", 2)
Case Else ;return a 1-based array
Return StringSplit(StringTrimRight($sFileList, 1), "|", 1)
EndSwitch
Else
Return SetError(4, 4, "")
EndIf
EndFunc ;==>_FileListToArrayXT