[UDF] VersionDessai

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 125
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

[UDF] VersionDessai

#1

Message par Numeric »

Salut, :wink:
Ce UDF est toujours en cours d'étude à mon niveau,
Le sujet sur La version d' essai ou du moins sur l'activation des produits ou du moins sur la protection des programmes est un sujet sensible :roll:
je ne vous donnerai pas beaucoup plus de détails qu'un UDF proposant une protection primaire :D , et sans mode d'activation :mrgreen:

Mais dans la prochaine version nous allons activer nos produits en ligne :P
l'UDF vous permet de :
1)Définir une durée d' essai pour vos programmes
2)Modifier : Ajouter ou supprimer un nombre de jours
3)Notifier le nombre de jours d'essai restant
Fichiers joints
VersionDessai.au3
Créez vos versions d'essai
(13.02 Kio) Téléchargé 881 fois
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
gothgothhh
Niveau 2
Niveau 2
Messages : 28
Enregistré le : ven. 19 août 2011 13:03
Status : Hors ligne

Re: [UDF]VersionDessai

#2

Message par gothgothhh »

Je ne penses pas que c'est une question de "sujet sensible". Tu auras beau protégé ton programme en quelques heures/jours un petit malin le décompilera et sortira les sources sans la version d'essai.
Si tu trouve la solution infaillible pour protéger ton programme, ne la partage pas ... (Tu ne ferais que programmé la mort de tes méthodes de protection)
Ce n'est que mon avis bien-sur ^^
Bon courage pour la suite !
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 125
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [UDF]VersionDessai

#3

Message par Numeric »

cela ne nous empêche pas d'apprendre, et de partager nos connaissances...
croit moi! , mieux vaut créer son propre programme plutôt que d'essayer de forcer la protection d'un Programme complexe et soigneusement Protégé .(forcer la protection....est Interdit par la loi..)
Aussi , Souvent l'effort que l'on se donne pour protéger un programme dépasse celui fournit pour le créer :?

En plus les méthodes de protection sont nombreuses et dépendent de beaucoup de paramètres...
c'est un UDF que je propose pas un TUTO :wink: :) ...
Aussi mon UDF n'est pas à sa dernière version 8)
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 125
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [UDF] VersionDessai

#4

Message par Numeric »

Salut, :D ,
Ah! le petit malin, Tu as crée un petit programme qui règle l'heure de ton ordi à 06h 00 à chaque fois que celui ci affiche 23h 58 :shock:
Ainsi donc tu vis éternellement un seul jour :mrgreen: , tu utilise donc éternellement mon Programme d'essai. :evil:
Waouh! je t'ai eu :lol: car maintenant nous possédons notre propre horloge embarquée :P
quand notre journée s'écoule , et que tu vis toujours ton éternelle journée, ON PASSE avec notre programme au jour suivant :P :lol: :P
Fichiers joints
VersionDessai v2.au3
Créez vos versions d'essai : Timer Embarqué
(15.04 Kio) Téléchargé 856 fois
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 125
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [UDF] VersionDessai

#5

Message par Numeric »

Comme promis, la version évolue :D
Désormais nos ressources seront cryptées et le timer sera efficace....car il travaillera en arrière plan et ne causera aucun problème au
fonctionnement de votre programme.

j'ai en effet crée un exécutable pour servir de test. il ne présente aucun danger pour votre machine.D'ailleurs vous pourrez quand vous le voudrez nettoyer les ressources que ce dernier va créer. Et cela en un clique.... :D
Code :
#include-once
#include <Crypt.au3>
#include <Date.au3>
#include <File.au3>
#include <WinAPIFiles.au3>
#include <WinAPISys.au3>
#include <Misc.au3>

#Region Const et Vars=======================================================================================================
;Timer
Global $TIMER_iCOUNT = 0, $US_NOTIFY = 0

;Files
Global Const $START_SECTION = "Debut", $TODAY_SECTION = "Now", $END_USE_SECTION = "Trial"

;Variables for callbackfunc
Global $GETTIME, $REG, $REGVAL, $FILE, $PASSW

;Timer and callback hwnds
Global $hTimerProc, $iTimerID
#EndRegion Const et Vars=======================================================================================================









; #FUNCTION# ====================================================================================================================
; Name ..........: VE_TrialInit
; Description ...:  Gère la periode d'essai des programmes
; Syntax ........: VE_TrialInit($sRegKey, $RegValueName, $sIniFullPath[, $Trial = 15[, $sPassWord = "12@CTRYPPOq098@qsazfgtSZEERT"]])
; Parameters ....: $sRegKey             - a string value.
;                  $RegValueName        - an unknown value.
;                  $sIniFullPath        - a string value.
;                  $Trial               - [optional] an unknown value. Default is 15.
;                  $sPassWord           - [optional] a string value. Default is "12@CTRYPPOq098@qsazfgtSZEERT".
; Return values .: None
; Author ........: Numeric
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func VE_TrialInit($sRegKey, $RegValueName, $sIniFullPath, $Trial = 15, $sPassWord = "12@CTRYPPOq098@qsazfgtSZEERT")
   Local $GetDir, $CryptToReg, $RegRead, $ClipPutError

   $PASSW = $sPassWord
   $REG = $sRegKey
   $REGVAL = $RegValueName
   $FILE = $sIniFullPath

   If Not __ToDayIsNotLastDay("2017/05/26") Then _WinAPI_ShowError("Time is invalide!", True); Date de codage doit être inferieur à la date d'utilisation

   $RegRead = RegRead($sRegKey, $RegValueName)
   $ClipPutError = @error


   If Not FileExists($sIniFullPath) And $ClipPutError Then
      $GetDir = __WinAPIGetFilePath($sIniFullPath, False)
      DirCreate($GetDir)
      If Not _FileCreate($sIniFullPath) Then _WinAPI_ShowError("Enable to get Ressources!", True); impossible d'utiliser le programme
      Local $EndTrial = _DateAdd("d", Int($Trial), _NowCalcDate()); fin d'essai

      IniWrite($sIniFullPath, $START_SECTION, $START_SECTION, _NowCalcDate())
      IniWrite($sIniFullPath, $END_USE_SECTION, $END_USE_SECTION, $EndTrial)
      IniWrite($sIniFullPath, $TODAY_SECTION, $TODAY_SECTION, _NowCalcDate())
      Local $Compress = _NowCalcDate() & "|" & _NowCalcDate() & "|" & $EndTrial
      RegWrite($sRegKey, $RegValueName, "REG_SZ", __sEncrypteChar($Compress, $sPassWord, Default))
      __FileEncrypt($sIniFullPath, $sPassWord, True) ;on crypte le fichier d-infos
   EndIf

   Local $I_START, $I_NOW, $I_END
   Local $R_START, $R_NOW, $R_END, $R_SPLIT, $R_READ, $R_DECRYPT

   $R_READ = RegRead($sRegKey, $RegValueName)
   $R_DECRYPT = __sDecrypteChar($R_READ, $sPassWord, Default)
   $R_SPLIT = StringSplit($R_DECRYPT, "|")

   __FileEncrypt($sIniFullPath, $sPassWord, False) ;decrypte le fichier pour lire les infos
   $I_START = IniRead($sIniFullPath, $START_SECTION, $START_SECTION, Default)
   $I_NOW = IniRead($sIniFullPath, $TODAY_SECTION, $TODAY_SECTION, Default)
   $I_END = IniRead($sIniFullPath, $END_USE_SECTION, $END_USE_SECTION, Default)


   If _DateDiff("d", $I_NOW, _NowCalcDate()) > 0 Then
      IniWrite($sIniFullPath, $TODAY_SECTION, $TODAY_SECTION, _NowCalcDate())
      Local $ToWriteInReg = $R_SPLIT[1] & "|" & _NowCalcDate() & "|" & $R_SPLIT[3]
      Local $R_CRYPT = __sEncrypteChar($ToWriteInReg, $sPassWord, Default)
      RegDelete($sRegKey, $RegValueName)
      RegWrite($sRegKey, $RegValueName, "REG_SZ", $R_CRYPT)
   EndIf

   $I_NOW = IniRead($sIniFullPath, $TODAY_SECTION, $TODAY_SECTION, Default); refresh memory
   __FileEncrypt($sIniFullPath, $sPassWord, True)

   $GETTIME = $I_NOW

   If Not __ToDayIsNotLastDay($I_NOW) Then _WinAPI_ShowError("L'horloge a rencontré un probleme", True)
   If _DateDiff("d", $I_END, $R_SPLIT[3]) <> 0 Then _WinAPI_ShowError("Ressources  invalides !", True)
   If _DateDiff("d", $I_START, $R_SPLIT[1]) <> 0 Then _WinAPI_ShowError("Ressources  invalides!", True)
   If _DateDiff("d", _NowCalcDate(), $I_END) < 0 Then _WinAPI_ShowError("Essai Expiré", True)


   If $US_NOTIFY <> 5 Then
      MsgBox(48, "Version d'essai", "IL vous reste " & _DateDiff("d", _NowCalcDate(), $I_END) & " jour(s) d'essai", 2)
      $US_NOTIFY = 5
   EndIf

   Opt('TrayAutoPause', 0)
   Local $WinHWnd = 0
   $hTimerProc = DllCallbackRegister('_TimerProc', 'none', 'hwnd;uint;uint_ptr;dword')
   $iTimerID = _WinAPI_SetTimer($WinHWnd, 0, 1000, DllCallbackGetPtr($hTimerProc))
   OnAutoItExitRegister("__KillTimer")

EndFunc   ;==>VE_TrialInit


; #FUNCTION# ====================================================================================================================
; Name ..........: VE_ADDtrial
; Description ...:  permet d'augmenter la periode d'essai...
; Syntax ........: VE_ADDtrial($Trial, $sRegKey, $RegValueName, $sIniFullPath, $sPassWord)
; Parameters ....: $Trial               - an unknown value.
;                  $sRegKey             - a string value.
;                  $RegValueName        - an unknown value.
;                  $sIniFullPath        - a string value.
;                  $sPassWord           - a string value.
; Return values .: La nouvelle date de fin d'essai
; Author ........: Numeric
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func VE_ADDtrial($Trial, $sRegKey, $RegValueName, $sIniFullPath, $sPassWord)

   Local $R_START, $R_NOW, $R_END, $R_SPLIT, $R_READ, $R_DECRYPT

   $R_READ = RegRead($sRegKey, $RegValueName)
   $R_DECRYPT = __sDecrypteChar($R_READ, $sPassWord, Default)
   $R_SPLIT = StringSplit($R_DECRYPT, "|")

   Local $aNewDate = _DateAdd("d", Int($Trial), $R_SPLIT[3])
   Local $ToWriteInReg = $R_SPLIT[1] & "|" & $R_SPLIT[2] & "|" & $aNewDate
   RegDelete($sRegKey, $RegValueName)
   RegWrite($sRegKey, $RegValueName, "REG_SZ", __sEncrypteChar($ToWriteInReg, $sPassWord, Default))

   __FileEncrypt($sIniFullPath, $sPassWord, False)
   IniWrite($sIniFullPath, $END_USE_SECTION, $END_USE_SECTION, $aNewDate)
   __FileEncrypt($sIniFullPath, $sPassWord, True)
EndFunc   ;==>VE_ADDtrial

Func _GetDay($sDate)
   If _DateIsValid($sDate) Then Return _
         StringSplit($sDate, "/")[3]
EndFunc   ;==>_GetDay



; #FUNCTION# ====================================================================================================================
; Name ..........: _TimerProc
; Description ...: Callback func
; Syntax ........: _TimerProc($hWnd, $iMsg, $iTimerID, $iTime)
; Parameters ....: $hWnd                - a handle value.
;                  $iMsg                - an integer value.
;                  $iTimerID            - an integer value.
;                  $iTime               - an integer value.
; Return values .: spend secs
; Author ........: Numeric
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _TimerProc($hWnd, $iMsg, $iTimerID, $iTime)
   #forceref $hWnd, $iMsg, $iTimerId, $iTime
   If $TIMER_iCOUNT = 0 Then
      $TIMER_iCOUNT = __GetTimeSec(_NowCalc())
   EndIf
   $TIMER_iCOUNT += 1
   __MakTime($TIMER_iCOUNT, $GETTIME, $REG, $REGVAL, $FILE, $PASSW)
EndFunc   ;==>_TimerProc



; #INTERNAL_USE_ONLY# ===========================================================================================================
; Name ..........: __KillTimer
; Description ...: liere les ressources de la fonction callback
; Syntax ........: __KillTimer()
; Parameters ....:
; Return values .: None
; Author ........: Numeric
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func __KillTimer()
   Local $WinHWnd = 0
   _WinAPI_KillTimer($WinHWnd, $iTimerID)
   DllCallbackFree($hTimerProc)
EndFunc   ;==>__KillTimer




; #INTERNAL_USE_ONLY# ===========================================================================================================
; Name ..........: __MakTime
; Description ...:  Timer embarqué permzt de verifier si l"horloge de l utilisateur normalement
; Syntax ........: __MakTime($aSec, $GetTime, $sRegKey, $RegValueName, $sIniFullPath, $sPassWord)
; Parameters ....: $aSec                - an array of unknowns.
;                  $GetTime             - an unknown value.
;                  $sRegKey             - a string value.
;                  $RegValueName        - an unknown value.
;                  $sIniFullPath        - a string value.
;                  $sPassWord           - a string value.
; Return values .: None
; Author ........: Numeric
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func __MakTime($aSec, $GETTIME, $sRegKey, $RegValueName, $sIniFullPath, $sPassWord)
   If $aSec >= 3600 And _DateDiff("d", $GETTIME, _NowCalcDate()) <= 0 Then
      Local $R_READ = RegRead($sRegKey, $RegValueName)
      Local $R_DECRYPT = __sDecrypteChar($R_READ, $sPassWord, Default)
      Local $R_SPLIT = StringSplit($R_DECRYPT, "|")

      __FileEncrypt($sIniFullPath, $sPassWord, False) ;decrypte le fichier pour lire les infos
      IniWrite($sIniFullPath, $TODAY_SECTION, $TODAY_SECTION, _DateAdd("d", 1, _NowCalcDate()))
      __FileEncrypt($sIniFullPath, $sPassWord, True)
      Local $ToWriteInReg = $R_SPLIT[1] & "|" & _DateAdd("d", 1, _NowCalcDate()) & "|" & $R_SPLIT[3]
      Local $R_CRYPT = __sEncrypteChar($ToWriteInReg, $sPassWord, Default)
      RegDelete($sRegKey, $RegValueName)
      RegWrite($sRegKey, $RegValueName, "REG_SZ", $R_CRYPT)
      $aSec = 0
      _WinAPI_ShowError("Disfonctionnement de l'horloge détecté", True)
   EndIf
   ;ConsoleWrite($aSec & @CRLF)
EndFunc   ;==>__MakTime


; #INTERNAL_USE_ONLY# ===========================================================================================================
; Name ..........: __WinAPIGetFilePath
; Description ...: Recupere le nom d'un fichier à partir de son repertoire
; Syntax ........: __WinAPIGetFilePath($sFilePath[, $bFull = False])
; Parameters ....: $sFilePath           - a string value.
;                  $bFull               - [optional] a boolean value. Default is False.
; Return values .: le nom seulement du fichier ou le repertoire entier contenant le nom si $bFull = True
; Author ........: Numeric
; Modified ......: _WinAPI_GetFullPathName
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func __WinAPIGetFilePath($sFilePath, $bFull = False)
   Local $FullPath = _WinAPI_GetFullPathName($sFilePath)
   If $bFull Then
      Return $FullPath
   Else
      Local $sFileName = _WinAPI_GetFileTitle($sFilePath) & _WinAPI_PathFindExtension($sFilePath)
      Local $fNameLen = StringLen($sFileName)
      If $fNameLen Then
         Return StringTrimRight($FullPath, $fNameLen + 1)
      Else
         Return $sFileName
      EndIf
   EndIf
EndFunc   ;==>__WinAPIGetFilePath

; #INTERNAL_USE_ONLY# ===========================================================================================================
; Name ..........: __ToDayIsNotLastDay
; Description ...: Determine si la
; Syntax ........: __ToDayIsLastDay($iStartDate)
; Parameters ....: $iStartDate          - an integer value.
; Return values .: true or false
; Author ........: Numeric
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func __ToDayIsNotLastDay($aLastDate)
   If _DateDiff("d", $aLastDate, _NowCalcDate()) >= 0 Then Return True
   Return False
EndFunc   ;==>__ToDayIsNotLastDay


; #INTERNAL_USE_ONLY# ===========================================================================================================
; Name ..........: __sCrypt_Initialization
; Description ...: initialise la librairie et la clé de cryptage
; Syntax ........: __sCrypt_Initialization($cPassWord, $iAlgo)
; Parameters ....: $cPassWord           - an unknown value.
;                  $iAlgo               - an integer value.
; Return values .: clé d'algo
; Author ........: Numeric
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func __sCrypt_Initialization($cPassWord, $iAlgo)
   If Not _Crypt_Startup() Then Return SetError(1, 0, False)
   Return _Crypt_DeriveKey($cPassWord, $iAlgo)
EndFunc   ;==>__sCrypt_Initialization




; #INTERNAL_USE_ONLY# ===========================================================================================================
; Name ..........: __sCrypt_DestroyRess
; Description ...: detruit la clé utilisee pour le cryptage et ferme la librairie
; Syntax ........: __sCrypt_DestroyRess($hRessources)
; Parameters ....: $hRessources         - a handle value.
; Return values .: None
; Author ........: Numeric
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func __sCrypt_DestroyRess($hRessources)
   If Not _Crypt_DestroyKey($hRessources) Then
      _WinAPI_CloseHandle($hRessources)
      _Crypt_Shutdown()
   EndIf
EndFunc   ;==>__sCrypt_DestroyRess



; #INTERNAL_USE_ONLY# ===========================================================================================================
; Name ..........: __sEncrypteChar
; Description ...: Encrypte une chaine de caractère
; Syntax ........: __sEncrypteChar($aData, $uPassWord[, $iAlgorithm = Default])
; Parameters ....: $aData               - an array of unknowns.
;                  $uPassWord           - an unknown value.
;                  $iAlgorithm          - [optional] an integer value. Default is Default.
; Return values .: La chaine cryptée
; Author ........: Numeric
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func __sEncrypteChar($aData, $uPassWord, $iAlgorithm = Default)
   If $iAlgorithm = Default Then $iAlgorithm = $CALG_RC4; default algo
   If Not StringLen($uPassWord) Then Return SetError(1, 0, False)
   ;Local variable
   Local $g_hKey = __sCrypt_Initialization($uPassWord, $iAlgorithm), $bEncrypted ; Declare a password string and algorithm to create a cryptographic key.
   If StringStripWS($aData, $STR_STRIPALL) <> "" Then ; Check there is text available to encrypt.
      $bEncrypted = _Crypt_EncryptData($aData, $g_hKey, $CALG_USERKEY) ; Encrypt the text with the new cryptographic key.
   EndIf
   __sCrypt_DestroyRess($g_hKey)
   Return $bEncrypted
EndFunc   ;==>__sEncrypteChar


; #INTERNAL_USE_ONLY# ===========================================================================================================
; Name ..........: __sDecrypteChar
; Description ...: Décrypte une chaine de caractère deja cryptee avec la meme clé..
; Syntax ........: __sDecrypteChar($aData, $uPassWord[, $iAlgorithm = Default])
; Parameters ....: $aData               - an array of unknowns.
;                  $uPassWord           - an unknown value.
;                  $iAlgorithm          - [optional] an integer value. Default is Default.
; Return values .: La chaine décryptée
; Author ........: Numeric
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func __sDecrypteChar($aData, $uPassWord, $iAlgorithm = Default)
   If $iAlgorithm = Default Then $iAlgorithm = $CALG_RC4; default algo
   If Not StringLen($uPassWord) Then Return SetError(1, 0, False)

   Local $g_hKey = __sCrypt_Initialization($uPassWord, $iAlgorithm), $bEncrypted ; Declare a password string and algorithm to create a cryptographic key.
   If StringStripWS($aData, $STR_STRIPALL) <> "" Then ; Check there is text available to encrypt.
      $bEncrypted = _Crypt_DecryptData($aData, $g_hKey, $CALG_USERKEY) ; dECcrypt the text with the new cryptographic key.
   EndIf
   __sCrypt_DestroyRess($g_hKey)
   Return BinaryToString($bEncrypted)
EndFunc   ;==>__sDecrypteChar


Func __FileEncrypt($sFile, $sUserKey, $bEncrypt = True)
   If Not FileExists($sFile) Then Return SetError(-1, 0, _WinAPI_ShowError("Unable to get source File"))
   Local $getInfos = __StringName2($sFile), $CryptVar = ''
   Local $sFileName = $getInfos[0] & "." & $getInfos[1]

   Local $dPath = StringTrimRight($sFile, StringLen($sFileName))
   Local $dFile = $dPath & "\" & $getInfos[0] & "2." & $getInfos[1]

   If $bEncrypt Then
      $CryptVar = _Crypt_EncryptFile($sFile, $dFile, $sUserKey, $CALG_RC4)
   Else
      $CryptVar = _Crypt_DecryptFile($sFile, $dFile, $sUserKey, $CALG_RC4)
   EndIf
   If Not @error And $CryptVar <> 0 Then
      FileDelete($sFile)
      _WinAPI_CopyFileEx($dFile, $dPath & "\" & $sFileName, $COPY_FILE_OPEN_SOURCE_FOR_WRITE)
      FileDelete($dFile)
   Else
      Return False
   EndIf
EndFunc   ;==>__FileEncrypt


; #INTERNAL_USE_ONLY# ===========================================================================================================
; Name ..........: __StringName2
; Description ...: recupère le nom d'un fichier à partir de son repertoire
; Syntax ........: __StringName2($sFilePath)
; Parameters ....: $sFilePath           - a string value.
; Return values .: None
; Author ........: Numeric
; Modified ......:
; Remarks .......:
; Related .......:  __WinAPIGetFilePath  by Numeric
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func __StringName2($sFilePath)
   If Not FileExists($sFilePath) Then Return SetError(1, @extended, '')
   Local $getExt = '', $extEnd = '', $sFileName
   Local Const $sDel = '\', $sEdel = '.'
   Local $getSections = StringSplit($sFilePath, $sDel, 1)
   If IsArray($getSections) Then
      $sFileName = _ArrayPop($getSections)
      If StringInStr($sFileName, $sEdel) <> 0 Then
         $extEnd = StringSplit($sFileName, $sEdel)
         $getExt = _ArrayPop($extEnd)
      EndIf
   EndIf
   Local $isBuff = StringLen($sFilePath)
   Local $isDll = DllStructCreate('wchar[' & $isBuff + 1 & ']')
   Local $isCALL = DllCall('Comdlg32.dll', 'short', 'GetFileTitle', 'str', $sFilePath, 'str', $isDll, 'word', $isBuff)
   Local $getInfos[2] = [$isCALL[2], $getExt]
   Return $getInfos
EndFunc   ;==>__StringName2

; #INTERNAL_USE_ONLY# ===========================================================================================================
; Name ..........: __GetTimeSec
; Description ...:  Recupere la valeur de la macro @Sec
; Syntax ........: __GetTimeSec([$aDate = _NowCalc(])
; Parameters ....: $aDate               - [optional] an array of unknowns. Default is _NowCalc(.
; Return values .: @Sec
; Author ........: Numeric
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func __GetTimeSec($aDate = _NowCalc())
   Local $MyDate, $MyTime
   _DateTimeSplit($aDate, $MyDate, $MyTime)
   Return $MyTime[3]
EndFunc   ;==>__GetTimeSec
 
Fichiers joints
VersionDessai3.au3
Gérer efficacement vos programmes d'essai
(20.2 Kio) Téléchargé 833 fois
Modifié en dernier par Numeric le mer. 31 mai 2017 01:13, modifié 1 fois.
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11772
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] VersionDessai

#6

Message par Tlem »

Bonsoir Numeric. Les scripts compilés ne sont pas accepté sur le forum (même compressé dans un zip ou autre conteneur) afin d'éviter tout problème lié à un antivirus un peux frileux et/ou mal configuré.

Merci
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 125
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [UDF] VersionDessai

#7

Message par Numeric »

Tlem a écrit : mer. 31 mai 2017 00:57 Bonsoir Numeric. Les scripts compilés ne sont pas accepté sur le forum
D'accord , je l'ai donc retiré et je vous ferais part du code source de ce dernier.
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
caramen
Niveau 2
Niveau 2
Messages : 20
Enregistré le : mer. 03 juil. 2013 07:22
Status : Hors ligne

Re: [UDF] VersionDessai

#8

Message par caramen »

Bonjour ! :)
Je fais mon entré sur le forum FR :) fervent du forum officiel.


Juste pour votre info, il y a un nouveau format qui permet la sécurisation des script appelé A3X qui permets meme a quelqu'un qui y pense... d’exécuter des script non compilé. Ce qui permet de crypter les sources etc... De décrypter et exécuter.... :)


A vos google les gas ;)
Je vous aiguillent un peu :
-Un script A3X n'est pas un EXE il ne peut donc pas être décompilé.
La méthode c'est d'avoir un fichier en opensource pour le dévelopeur puis un fichier compiler A3X lut par un autre script qui sert que a lire ce fichier source.


Un fichier .a3x peut être inclus dans un autre script ou exécuter par un interpréteur de AutoIt - soit AutoIt3.exe lui-même, soit un autre script compilé avec le paramètre AutoItExecuteAllowed.

https://www.autoitscript.fr/autoit3/doc ... mpiler.htm



Ps : attention je ne dit pas que c'est infaillible :p
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11772
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] VersionDessai

#9

Message par Tlem »

Bonsoir.
Un script compilé en a3x peux aussi être détecté comme un virus, du coup vaut mieux qu'il soit hébergé ailleurs...

Par contre, c'est un format qui existe depuis la nuit des temps. Donc difficile de le considérer comme "nouveau format". ^^


Envoyé de mon Smartphone en utilisant Tapatalk



Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
caramen
Niveau 2
Niveau 2
Messages : 20
Enregistré le : mer. 03 juil. 2013 07:22
Status : Hors ligne

Re: [UDF] VersionDessai

#10

Message par caramen »

12 Aout 2006 ;)

Personnellement je vend un projet a moi 20 000 € le false positive est un détail pour moi.
Répondre