Bloqueur de compte-à-rebourds pour logiciels en version d'évaluation

Description

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

Codes Sources

A voir également

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.