Patcher express (générateur de patch)

Description

Voilà, comme je fait de plus en plus de petit crack et autre patch, j’ai eu mare de recode a chaque foi le « patcheur » et même si il existe déjà une ou deux source sur vbfrance a se sujet (en particulier celle EBArtSoft) je me suis fait plaisir :) .
Donc principale avantage de ma source par rapport au autre (et oui faut quand même que j’arrive a refiler se bout de code lol), déjà le look, si y a bien un point essentielle pour un crack c’est son look (enfin je trouve) a vous de juger (regarder la capture), après il est extrêmement personnalisable (Couleur des texte des titre, modification des titre des texte des bouton etc…)

L’exécutable qui permet la création des patch est le même que le « patcheur » la configuration du patcheur se met elle même a la fin du fichier et est « crypter » enfin si j’ose dir car c’est juste un passage des chaînes en hexa pour éviter que n’importe qui change les données.

Pour vous faciliter la tache il peu comparer 2 fichiers et déterminer tous seul les bit a patcher suivent les différences entre ces fichiers.

Vous trouverez dans le zip les sources du prog ainsi qu’un programme d’exemple et un patch pour enlever la pub en bas d’MSN Messenger pour voir se que sa peu donner.

Sinon pour se qui est du code intéressent vous trouverez une classe pour gérer facilement les icon dans le systray, un ContrôlUser, c ‘est un mélange entre un de flat bouton et des optionbutton, ainsi qu’un module de hash qui lui n’est pas de moi mais que j’utilise pour vérifier si le fichier a patcher est le bon (il est rapide et utilise les API de windows)

Voilà a vous de donner votre avis, et n’oublier pas de commenter :) .

Source / Exemple :


'Un petit extrait du code :

Private Sub comCompar_Click()
 Dim vFileOld() As Byte, vFileNew() As Byte
 Dim i As Long, j As Long, Ret As Long
 Dim vHwnd As Long, nSize As Long
    
    progBar.Value = 0
    
    If FileLen(txtFileOld.Text) <> FileLen(txtFileNew.Text) Then
        MsgBox "Les fichiers ne sont pas de la même taille !!!" & vbCrLf & _
               "Impossible d'appliquer de patch sur un fichier qui n'a pas la même taille", vbInformation, "Action impossible :"
        Exit Sub
    End If
    
    vHwnd = CreateFile(txtFileOld.Text, GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
    
    nSize = GetFileSize(vHwnd, 0)
    Call SetFilePointer(vHwnd, 0, 0, FILE_BEGIN)
    ReDim vFileOld(nSize) As Byte
    Call ReadFile(vHwnd, vFileOld(0), UBound(vFileOld), Ret, ByVal 0&)
    Call CloseHandle(vHwnd)
    
    If Ret <> UBound(vFileOld) Then MsgBox "Erreur de lecture !!": Exit Sub
    
    vHwnd = CreateFile(txtFileNew.Text, GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
    
    nSize = GetFileSize(vHwnd, 0)
    Call SetFilePointer(vHwnd, 0, 0, FILE_BEGIN)
    ReDim vFileNew(nSize) As Byte
    Call ReadFile(vHwnd, vFileNew(0), UBound(vFileNew), Ret, ByVal 0&)
    Call CloseHandle(vHwnd)
    
    If Ret <> UBound(vFileNew) Then MsgBox "Erreur de lecture !!": Exit Sub
    
    progBar.Max = nSize
    j = 10
    
    For i = 0 To UBound(vFileOld)
        If vFileOld(i) <> vFileNew(i) Then
            lstView.ListItems.Add(, , "&H" & Hex(i)).SubItems(1) = "&H" & Hex(vFileOld(i))
            lstView.ListItems(lstView.ListItems.Count).SubItems(2) = "&H" & Hex(vFileNew(i))
        End If
        
        If i = j Then progBar.Value = i: j = j + 20
    Next i
    
    progBar.Value = nSize
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.