PatchMaker v2.1
Pour ceux qui ne voient pas trop ce que PatchMaker signifie, c'est un programme qui permet de créer un programme de mise à jour d'un autre programme...
Par exemple, dans le cas ou votre programme subit qu'une légère modification, vous pouvez utiliser ce patch maker pour fournir une mise à jour de taille correspondant qu'à votre modification...
Les choix proposés actuellement :
-Patch Automatique : pas d'interface graphique, et il suffit juste de l'exécuter pour patché. (mode ligne de commande)
-Patch avec fenètre graphique :
-Icone
-Musique (en XM ou MOD)
-Compression (UPX)
Pour une petite explication rapide, le principe est le suivant :
On va créer préalablement les 3 type de patchs ne contenant aucune ressources. (A part la boite de dialog)
Ensuite le PatchMaker intégrera ces exe en ressources pour ensuite ressortir seulement l'exe correspondant au type de Patch voulu (avec zik, sans zik, mode ligne de commande)
puis par l'algo de comparaison des fichiers intégrera des ressource à ce patch permettant de lui dire quelles sont les modifications qu'il devra effectuer.
après on modifie l'icone et rajoute une zik si défini...
Cette source n'utilise plus ResHacker, et montre comment changer l'icone d'un EXE en Delphi...
(ainsi que la ajout, modification de ressources dans un exe)
Cette version utilise UFMOD (pour la musique)
StripReloc permet de réduire un brin la taille des .Exe en supprimant la table des relocations
(expliqué sur leur site : http://www.jrsoftware.org/striprlc.php )
pour finir UPX compresse le tout (mode --ultrabruteforce : c'est du bourrin mais du bon)
J'ai viré l'unit Windows, j'ai réécrit les fonctions dont j'avais besoin dans Win.pas à la place (j'ai utilisé de préférences les fonctions en ASM).
Je me suis servi de base du System.pas et de SysInit.pas de KOL pour réduire un max la taille de l'exe.
Pour les compilés n'utilisez pas l'IDE Delphi mais lancez le fichier : build.bat qui fera tout le travail (à déplacer les .dcu etc...)
Patch.drp à 3 options de compilations correspondant au type de patch à générer (pour avoir tjrs une taille optimale suivant le cas désiré)
(Sert à rien d'avoir UFMOD pour un patch en ligne de commande).
Zip:
|
| Readme.txt : Ce fichier
|
| PatchMaker21.dfm,PatchMaker21.pas,PatchMaker2.dpr : Source du PatchMaker
|
|-utils : placer les utilitaires ici (que UPX pour l'instant)
| | readme.txt : dit qu'il faut placer UPX dans utils...
|
\-Patch : contient la source des types de patchs
| Build.bat : Fichier permettant de compiler tous les patchs et de générer Patch2.res utilisé par le Patchmaker
| Patch2.rc : Fichier définissant la ressource du PatchMaker
| Patch2.res : Fichier ressource contenant les types de Patchs
| Patch.dpr : Source des Patchs
| PatchType.inc : Fichier généré par Build.bat servant à définir le type de Patch (inclusion définissant l'option de compilation de Patch.dpr)
| Types.pas : fichier réécrit pour Win.pas
| ufmod.obj, uFMOD.pas : Fichier d'UFMOD : permet de jouer la musique
| Win.pas : Fichier réécrit remplaçant Windows.pas (permet un gain de taille)
|
|-KOL : Répertoire contenant les units System.pas et SysInit.pas de KOL (permet un gain de taille)
|-StripReloc : Contient les fichiers de StripReloc 1.13 (permet un gain de taille)
\res : contient les ressources pour les tests de Patch.dpr
Les fichiers .rc servent à la compilation
Les fichiers .xm et .ico sont icone et musique
Les fichiers .txt sont le contenu des ressources (à modifier avec un éditeur Hexa en général)
Offsets.txt / Bytes.txt : Offsets et Bytes à Modifiés (en Hexa : DWORD/BYTE)
iOffsets.txt / iBytes.txt : Offsets et Bytes à Insérer (en Hexa : DWORD/BYTE)
sOffsets.txt : Offsets à Supprimer (en Hexa : DWORD)
txte.txt / titl.txt : Titre et texte du Patch
Cible.txt : Nom du fichier Cible
taillecible.txt : Taille de la Cible (en Hexa : DWORD)
Ces fichiers sont normalement généré en mémoire par le PatchMaker avant d'être insérée à l'exe, mais pour les tests (et vu leur taille) je préfére les laissers.
Pour cette source j'ai utilisé :
KOL - Key Objects Library : http://kolmck.net/
http://www.delphifr.com/codes/P ATCHEUR-PERSONALISABLE-19-KO-NON-PACKE_12167.aspx
http://www.delphifr.com/codes/JOUER-XM-PEU-CODE-NO -DLL_23849.aspx
UPX : http://upx.sourceforge.net/
StripReloc : http://www.jrsoftware.org/striprlc.php