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
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.