begin process at 2010 03 22 01:01:28
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > PATCHMAKER (GÉNÉRATION DE PATCHS : 7KO MINI NON PACKE, 15,5KO + MUSIQUE POUR JOUER UN XM, MOD)

PATCHMAKER (GÉNÉRATION DE PATCHS : 7KO MINI NON PACKE, 15,5KO + MUSIQUE POUR JOUER UN XM, MOD)


 Information sur la source

Note :
Aucune note
Catégorie :Fichier / Disque Classé sous :patchmaker, patch, ressource, icone, xm Niveau :Expert Date de création :09/05/2007 Date de mise à jour :30/05/2007 02:03:14 Vu / téléchargé :6 099 / 976

Auteur : PoulpHunter

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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


 Conclusion

Historique :

Version 2.1
N'utilise plus ResHacker,
Taille de 7ko à 15,5ko non packé suivant le type de patch
Le patch inclu la possibilitée d'Insérer, ou Supprimer des bytes dans le fichier Cible
(donc fichier Source et Cible de taille différente)
mais le patch maker ne permet pas encore de calculer tout sa....
ce sera pr la prochaine promis !
Je penses aussi faire un mode permettant au cas ou les modifications sont trop importante, de copier l'original en ressource du patch et faire juste une simple copie standard de l'exe (avec compression UPX tjrs dispo)
Je penses aussi rajouter un mode PatchMaker en ligne de commande...


Version 2.0
(c'est mon 2ème PatchMaker mais l'autre est vraiment pas terrible donc sa commence à 2, en plus je préfère les chiffres pairs, enfin toute façon c'est moi qui décide :)

Taille de 11,5ko à ~20ko
L'algo de comparaison de Bytes sera amélioré prochainement, au lieu de passer par des strings, un buffer de base serais mieux et sauvegarder les Bytes en tant que Bytes au lieu de string serais plus correcte et prendrait moins de mémoire pour le future patch (il suffit de compressé pour l'instant pour annuler cet effet, la taille sera quazi égale)
Juste à partir de fichiers de 5Mo, le patch deviens vraiment lent... mais c'est juste la méthode qui est pas classe (StrtoInt)
Aussi je penses rajouter la possibilité d'avoir une différence de taille... (pk pas plus tard, une analyse comparative un peu à la Windiff)

Attention j'ai fait cette source avec Delphi 7, je ne sais vraiment pas si c'est compatible avec une autre version...
Au cas merci de me le signaler.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

30 mai 2007 02:03:14 :
N'utilise plus ResHacker, Taille de 7ko à 15,5ko non packé suivant le type de patch Meilleur algo, possibilité d'insertion, suppression de bytes dans le Patch (prévu comme futur amélioration car le PatchMaker ne gére pas encore des tailles différentes entre versions)

 Sources du même auteur

DISTANCE DE JARO-WINKLER
Source avec Zip Source avec une capture BROUILLEUR DE TEXTE (CHANGE L' ORDRE DES LETTRES)
Source avec Zip Source avec une capture MSN - "CE QUE J'ÉCOUTE" ET PSEUDO ( NICKNAME ) TEXTE DÉFILAN...
Source avec Zip Source avec une capture GÉNÉRATEUR DE FICHIERS ALÉATOIRES : CLIENT DU SITE : HTTP://...

 Sources de la même categorie

Source avec Zip SAUVEGARDE DE PLUSIEURS DISQUES/PARTITIONS par danfranjo
Source avec Zip Source avec une capture FICLOCK : LOCKEZ LES FICHIERS par JulioDelphi
Source avec Zip Source avec une capture MODIFICATION DES EXTENSIONS DE FICHIERS par JeremyLecouvert
EXPLORATION RÉCURSIVE DE RÉPERTOIRE par JeremyLecouvert
Source avec Zip OBTENIR LE PROPRIÉTAIRE D'UN FICHIER (WIN32;NTFS) par ILP

 Sources en rapport avec celle ci

Source avec Zip COMPOSANT TTHRESCOLLECTION par ThWilliam
Source avec Zip Source avec une capture JEU DU REVERSO par Bacterius
Source avec Zip Source avec une capture API DISKUTILS / DISKMONITOR V1.1.6 - MULTI-MONITEUR D'UNITÉS... par f0xi
Source avec Zip Source avec une capture DÉCOMPTEUR DE TEMPS POUR MATCH DE BOXE (OU AUTRE) par antubis
Source avec Zip OPTIMISATION DES RESSOURCES HOSPITALIÈRES (PARTIE SERVEUR) par chouaib911

Commentaires et avis

Commentaire de ELCouz le 09/05/2007 10:04:45

tu savais que KOL & MCK sa lexistait ?
cest bcp moins complexe,, il converti une bonne parti de ton code en asm...
Sa permet de faire VISUELEMENT des applications via Delphi vrm pti sans vcl ceux de borland,,
un form vide avec un editbox cest 10K pas upxer
jai faite un keygen 65K (avec un bmp de fond 130K + 18k music XM + 6K de code uFMOD sans ressource ((voir mon post Array of bytes sur le forum)) ni dll)

pour ceux qui non pas KOL & MCK jai compiler une version ici : http://www.elcouz.net/delphifr/LiTEKGeN - VMware v5.rar

je posterai la source si qqn est interesser a travailler avec KOL-MCK...

salut

Laurent!

Commentaire de ELCouz le 09/05/2007 10:06:13

PS: cetais juste un conseil pour que tu devellope ta prochaine version plus facilement et rapidement ;)

Commentaire de PoulpHunter le 09/05/2007 11:40:35

ah, uép sa a l'air sympa ce machin !
Merci de l'info

Commentaire de PoulpHunter le 30/05/2007 02:24:10

J'ai remis à jour en me servant un peu de KOL, sa donne un patch mini de 7ko UPX de 5,5ko j'aime bien :p
Je me sert plus de ResHack (c'été en attendant de me servir des APIs windows conçues pour sa)

Cette source peut aussi servir de source sur comment modifier l'icone d'un .exe, je croyais sa assez simple et finalement j'ai du bosser...
Si il y en a qui sont intéressés je mettrais une source à part (sinon tout est dans celle la déjà)

Si quelqu'un à une idée d'amélioration, s'il y a des bugs, ou le moindre truc, je suis preneur !

Au passage l'exe est téléchargeable ici :
http://poulphunter1.free.fr/dl/Mesprogs/dlid.php3?dl=19

Commentaire de ELCouz le 03/06/2007 04:24:23

jvais te donner un truc pour en enlever encore plus aumois 1 k

ce que ta besoin :
www.elcouz.net/delphifr/peoptim.zip (PE optmizer)

dans un bat pour te sauver du temps

@echo off
ResHacker.exe  -script reduce.txt
pause
peoptim.exe exefinal.exe
pause
upx exefinal.exe --best --force

dans un fichier texte ,, le script reshacker (reduce.txt):

[FILENAMES]
Exe=monexebrute.exe
SaveAs=exefinal.exe
Log=FinalRes.log

[COMMANDS]
-delete bitmap ,,
-delete dialog ,,
-delete CursorGroup ,,
-delete StringTable ,,
-delete RCData ,DVCLAL,
-delete RCData ,PACKAGEINFO,

et voila !! :)
Laurent

Commentaire de ELCouz le 03/06/2007 04:25:34

ah oui joublais sa te prend upx et reshacker le tout dans le meme dossier

PS: cest moi ou ton exe fait 170 k dans le lien que tu ma donner ???

Laurent!

Commentaire de ELCouz le 03/06/2007 04:30:02

ahhh lol javais mal compris ,, si jcomprend bien cest tes patch qui genere qui sont 7 k !!!
assaye pareil  ma technique pour ton exe de ton projet sa va surement i enlever plus aulieu detre 170 k sa va p-e etre 120k :D

Laurent

Commentaire de PoulpHunter le 03/06/2007 11:39:17

Ui alors t'as pas du voir que j'ai mis à jour, je n'utilise plus ResHacker,
et oui ce sont les patchs générés qui font 7ko, l'exe principal lui la taille est pas importante, en utilisant KOL on peut surement la réduire même à une 20-30ko mais je laisse le codeur améliorer sa si il le souhaite, la ou la source prend son intéret c'est coté taille du Patch en lui même.

Sinon pour PE Optimizer, il ne donne rien de plus, car perso je compresse par défault tout mes projets delphi (la le projet du PatchMaker fait dans les 450ko) même en gagnant 30ko au départ la compression donne la même chose (30ko qui servent à rien -> 1k max comprimer enfin en gros)
PE Optimizer donne rien non plus sur mes ptits Patchs vu que j'ai déjà virer les relocations, quand à l'optimisation du PE Header, dans notre cas cela ne fais rien gagner.

Dans ton script pour ResHacker, j'ai vu que tu vire toute les ressources, dans les patchs, il n'y en a de base aucune (de trop) à part DVCLAL et PACKAGEINFO, pour pas réutiliser ResHacker, je vais faire virer sa par le PatchMaker ou une version modifiée de StripReloc on verra...
Le patch mini de 7ko reste à 7ko, juste le patch avec player de zik fait 14,5ko now...

Sinon pour UPX j'utilise plutôt le mode --ultrabruteforce qui est le plus lent mais le max niveau compression :p

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Icone - Ressource [ par frayst ] J'utilise le code de delphicool pour afficher un icone d'un fichier res sur la form : [code]procedure TForm1.Button9Click(Sender: TObject); var&n a propos des patcheurs [ par loadexe ] slt a tous et a toute.Voila,excuser mon ignorance,il y'a beaucoup de source a propos des patcheurs.C'est tres simple a les realiser,mais voila mon pro icone dans un Tbgrid [ par sraverdy ] bonjour je cherche à savoir si kel kun peut me dire comment on fait apparaitre un icone dans une cellule d'un Tbgridmerci besoin rapide Icone sur une appli console [ par kanuxxx ] Bonjour, Je souhaite savoir comment afficher une icone sur une application console, a la maniere des icones sur les applications non consoles ? J'ai icone sur EXE [ par ced55957 ] cedricbonjourj'aimerai savoir comment fait on pour changer une icone une fois l'EXE compiler ou avant d'etre conpilermerci d'avance comment recup lien+url+icone dans un richedit merci [ par pucenet21 ] Salut   Voi Utiliser TClientSocket sans placer l'icone ClientSocket(ScktComp) sur une Form ! [ par lazit ] Voilà je voudrais pouvoir me servir de TClientSocket sans placer l'icone ClientSocket(ScktComp) sur une form. En gros je veux que ça ma Popup sur le bureau [ par petitripol ] Bonjour tout le monde!   Bon j'ai un petit soucis dans mon prog.J'aimerais savoir si il est possible a partir du bureau que quand on cl Exe ds Ressource puis extrait en mémoire. [ par Filipe35 ] bonjour,Est-il possible de mettre un exe ds notre Ressource puis de l'extraire en mémoire et pas sur le disque ?Cela a pour but (?) de proté Ressource limite de la table temporaire [ par oluha ] BonjourJ'ai un gros soucis avec mon programme. Lorsque je fais des traitements sur une table contenant un grand nombre d'enregistrement j'ai le messag


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,108 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales