[UDF] VersionDessai
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[UDF] VersionDessai
Salut,
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
je ne vous donnerai pas beaucoup plus de détails qu'un UDF proposant une protection primaire , et sans mode d'activation
Mais dans la prochaine version nous allons activer nos produits en ligne
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
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
je ne vous donnerai pas beaucoup plus de détails qu'un UDF proposant une protection primaire , et sans mode d'activation
Mais dans la prochaine version nous allons activer nos produits en ligne
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é 1023 fois
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
-
- Niveau 2
- Messages : 28
- Enregistré le : ven. 19 août 2011 13:03
- Status : Hors ligne
Re: [UDF]VersionDessai
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 !
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 !
Re: [UDF]VersionDessai
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 ...
Aussi mon UDF n'est pas à sa dernière version
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 ...
Aussi mon UDF n'est pas à sa dernière version
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Re: [UDF] VersionDessai
Salut, ,
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
Ainsi donc tu vis éternellement un seul jour , tu utilise donc éternellement mon Programme d'essai.
Waouh! je t'ai eu car maintenant nous possédons notre propre horloge embarquée
quand notre journée s'écoule , et que tu vis toujours ton éternelle journée, ON PASSE avec notre programme au jour suivant
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
Ainsi donc tu vis éternellement un seul jour , tu utilise donc éternellement mon Programme d'essai.
Waouh! je t'ai eu car maintenant nous possédons notre propre horloge embarquée
quand notre journée s'écoule , et que tu vis toujours ton éternelle journée, ON PASSE avec notre programme au jour suivant
- Fichiers joints
-
- VersionDessai v2.au3
- Créez vos versions d'essai : Timer Embarqué
- (15.04 Kio) Téléchargé 993 fois
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Re: [UDF] VersionDessai
Comme promis, la version évolue
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....
Code :
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....
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
#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é 981 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
- Tlem
- Site Admin
- Messages : 11776
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [UDF] VersionDessai
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
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é".
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é".
Re: [UDF] VersionDessai
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
Re: [UDF] VersionDessai
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
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
- Tlem
- Site Admin
- Messages : 11776
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [UDF] VersionDessai
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
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é".
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é".
Re: [UDF] VersionDessai
12 Aout 2006
Personnellement je vend un projet a moi 20 000 € le false positive est un détail pour moi.
Personnellement je vend un projet a moi 20 000 € le false positive est un détail pour moi.