[UDF] VersionDessai

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

[UDF] VersionDessai

#1

Message par Numeric » dim. 05 juin 2016 12:54

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é 100 fois
VersionDessai.au3
Créez vos versions d'essai
(13.02 Kio) Téléchargé 100 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 12:03
Status : Hors ligne

Re: [UDF]VersionDessai

#2

Message par gothgothhh » dim. 05 juin 2016 15:24

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 : 106
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [UDF]VersionDessai

#3

Message par Numeric » dim. 05 juin 2016 16:03

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 : 106
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [UDF] VersionDessai

#4

Message par Numeric » jeu. 16 juin 2016 20:31

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é 82 fois
VersionDessai v2.au3
Créez vos versions d'essai : Timer Embarqué
(15.04 Kio) Téléchargé 82 fois
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric

Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 106
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [UDF] VersionDessai

#5

Message par Numeric » mar. 30 mai 2017 22:44

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é 55 fois
VersionDessai3.au3
Gérer efficacement vos programmes d'essai
(20.2 Kio) Téléchargé 55 fois
Modifié en dernier par Numeric le mer. 31 mai 2017 00: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 : 11298
Enregistré le : ven. 20 juil. 2007 20:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] VersionDessai

#6

Message par Tlem » mar. 30 mai 2017 23:57

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 : 106
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [UDF] VersionDessai

#7

Message par Numeric » mer. 31 mai 2017 00:17

Tlem a écrit :
mar. 30 mai 2017 23: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 06:22
Status : Hors ligne

Re: [UDF] VersionDessai

#8

Message par caramen » jeu. 18 oct. 2018 16:43

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 : 11298
Enregistré le : ven. 20 juil. 2007 20:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] VersionDessai

#9

Message par Tlem » jeu. 18 oct. 2018 20:04

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 06:22
Status : Hors ligne

Re: [UDF] VersionDessai

#10

Message par caramen » ven. 19 oct. 2018 04:46

12 Aout 2006 ;)

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

Répondre