REJUVENATE v1.0
Prog/dev : Cyrus the great
Description :
-------------
Rejuvenate est un petit outil permettant de changer la date du système juste avant de lancer un EXEcutable. Pour ceux qui n'en voient pas l'utilité, cela permet en fait de bluffer certains logiciels d'évaluation limités à x jours de fonctionnement. Grâce à cet outil, il est possible de débrider cette limite de temps.
Fonctionnalités :
-----------------
Rejuvenate permet de lancer un EXEcutable en changeant la date système par la date de création de cet EXEcutable.
Optionnellement, il peut aussi remplacer la date système par :
- La date de dernière modification de l'EXEcutable
- La date de dernier accès de l'EXEcutable
- Une date spécifiée par vous
Utilisation :
-------------
- Rejuvenate.exe
>> Affiche l'aide en ligne de Rejuvenate
- Rejuvenate.exe appli.exe OU Rejuvenate.exe appli.exe -creationdate
>> Change la date système par la date de création de appli.exe et lance appli.exe
- Rejuvenate.exe appli.exe -lastmodificationdate
>> Change la date système par la date de dernière modification de appli.exe et lance appli.exe
- Rejuvenate.exe appli.exe -lastaccessdate
>> Change la date système par la date de dernier accès de appli.exe et lance appli.exe
- Rejuvenate.exe appli.exe -date:mm/dd/yyyy
>> Change la date système par la date indiquée et lance appli.exe
NB : La date système originale est restaurée après le traitement.
L'exécutable-cible ainsi que les paramètres optionnels étant spécifiés par la ligne de commande, il est donc préférable de créer un fichier batch pour lancer une application :
Exemple (dans le fichier "Launch.bat") :
@ECHO OFF
REJUVENATE.EXE MONPROG.EXE -CREATIONDATE
A propos du logiciel :
----------------------
Le principe exposé ici ne fonctionne pas avec tous les logiciels limités dans le temps. Mais il passe avec les deux logiciels dont j'avais besoin : Edge diagrammer et Advanced registry tracer. J'éspère qu'il en "déverrouillera" d'autres.
Special thanks :
----------------
Big Jim pour ses procédures d'extraction (très bien écrites d'ailleurs) de dates dans les fichiers.
Sur ce, bons bidouillages !
Cyrus the great
Source / Exemple :
Option Explicit
Sub Main()
Dim st(0 To 2) As SYSTEMTIME ' EXE target system times (from API)
Dim changeDateMode As String ' Mode used to change the system date
Dim cmdString As String ' Command string containing the arguments
Dim EXEtarget As String ' EXEcutable file to cheat with
Dim today As Date ' Today date
' Set default values
changeDateMode = "creationdate"
' Memorize today date
today = Date
' Display software informations in case there's no command line
If Command$ = "" Then
Call MsgBox("REJUVENATE is an utility used to change the system date just before launching an EXEcutable file." + vbCrLf + _
"The previous date is restored just after this operation." + vbCrLf + vbCrLf + _
"Use : Rejuvenate.exe target.exe" + vbCrLf + vbCrLf + _
"[-creationdate] : Change system date with the EXE target creation date <DEFAULT>" + vbCrLf + _
"[-lastmodificationdate] : Change system date with the EXE target last modification date" + vbCrLf + _
"[-lastaccessdate] : Change system date with the EXE target last access date" + vbCrLf + _
"[-date:mm/dd/yyyy] : Change system date with the specified date" + vbCrLf _
, vbInformation)
End
End If
' Set EXE target path
If InStr(Command$, "-") = 0 Then
EXEtarget = Command$
Else
EXEtarget = Left(Command$, InStr(Command$, "-") - 1)
cmdString = UCase(Mid(Command$, InStr(Command$, "-"), Len(Command$) - InStr(Command$, "-") + 1))
End If
' Analyse command string
If InStr(cmdString, "-LASTMODIFICATIONDATE") <> 0 Then
changeDateMode = "lastmodificationdate"
End If
If InStr(cmdString, "-LASTACCESSDATE") <> 0 Then
changeDateMode = "lastaccessdate"
End If
If InStr(cmdString, "-DATE:") <> 0 Then
changeDateMode = Mid(cmdString, InStr(cmdString, "-date:") + 1, 15)
End If
' Exit if the EXE target is not valid
If Dir(EXEtarget) = "" Then
Call MsgBox("Target EXE doesn't exist", vbExclamation)
End
End If
' Change system date
If GetFileTimes(EXEtarget, st(0), st(1), st(2)) Then
If changeDateMode = "creationdate" Then
Date = Str(st(0).wMonth) + "/" + Str(st(0).wDay) + "/" + Str(st(0).wYear)
ElseIf changeDateMode = "lastmodificationdate" Then
Date = Str(st(2).wMonth) + "/" + Str(st(2).wDay) + "/" + Str(st(2).wYear)
ElseIf changeDateMode = "lastaccessdate" Then
Date = Str(st(1).wMonth) + "/" + Str(st(1).wDay) + "/" + Str(st(1).wYear)
ElseIf Left(changeDateMode, 5) = "date:" Then
Date = Right(changeDateMode, 10)
End If
DoEvents
End If
' Launch the EXE target
Shell (EXEtarget)
' Restore today date
Date = today
End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.