Page 1 sur 1
[..] Extraire source .exe
Posté : mer. 15 mai 2013 10:09
par Julien
Bonjour,
Est il possible d'extraire une source de type .exe ajoutée lors de la compilation d'un script .au3 avec la commande :
D'avance merci.
Re: [..] Extraire source .exe
Posté : mer. 15 mai 2013 10:13
par Tlem
Il existe plusieurs outils pour ce genre de chose, mais ResHacker est l'un des plus connu.
Re: [..] Extraire source .exe
Posté : mer. 15 mai 2013 12:46
par Julien
Effectivement je viens de regarder la documentation et j'arrive à extraire une source d'un fichier .dll de test que j'ai créée avec votre utilitaire (de tête je crois que c'est le votre).
Je n'ai pas réussi à extraire un fichier de mon .exe avec la commande :
Code : Tout sélectionner
Run('"' & $DirTemp & 'ResHacker.exe" -extract ' & '"' & @ScriptFullPath & '", fichier.rc, RCDATA, NOM_EXE,', "", @SW_HIDE)
en fait il m'exporte bien quelques chose mais inutilisable, en effet il m'indique que le .exe de base est compressé ce qui doit rendre l'extract inutile. J'ai essayé en changeant le taux de compression mais rien n'y fait.
Je n'ai pas réussi à affecté un nom à mon fichier ajouté avec :
Re: [..] Extraire source .exe
Posté : mer. 15 mai 2013 14:03
par Tlem
Avant de le faire en ligne de commande, essayez de le faire par l'interface de Reshacker.
Il se peut effectivement que si votre script est compressé par UPX, Reshacker soit dans l'incapacité de récupérer des ressources. Dans ce cas, décompressez le script et relancez Reshacker.
PS : Reshacker n'est pas mon utilitaire mais celui d'Angus Johnson.

Re: [..] Extraire source .exe
Posté : mer. 15 mai 2013 16:28
par Julien
Je parlais de : Ressource Dll Generator
via l'interface graphique j'ai le même résultat qu'en ligne de commande. Le .exe est bien extrait du fichier .dll mais pas du .exe
Je me dis donc que cela est du à la compression.
Pour compiler mon script j'utilise AutoIt3Wrapper inclus dans le pack pour débutant.
Pour le décompresser je dois utiliser 7zip ou une commande interne ?
Si je décoche upx à la compilation du script j'ai des effets de bord assez étrange.
Re: [..] Extraire source .exe
Posté : mer. 15 mai 2013 17:08
par Julien
Pour le décompresser je dois utiliser 7zip ou une commande interne ?
upx.exe -d "Chemin"
Le problème est que après décompression, le lancement de mon .exe lance en réalité le .exe inclus dans le premier.
Je ne peux donc pas faire le test complet après décompression.
Re: [..] Extraire source .exe
Posté : mer. 15 mai 2013 18:14
par Julien
Je viens de refaire un test mais en zipant (.zip) le fichier .exe. Même compressé cela fonctionne mieux si je fais :
Code : Tout sélectionner
Run('"' & $DirTemp & 'ResHacker.exe" -extract ' & '"' & @ScriptFullPath & '", fichier.rc, RCDATA, NOM_ZIP,', "", @SW_HIDE)
Dommage car cela implique de zipper mes fichiers en amont c'est pas très grave mais j'aurais préféré faire autrement.
Re: [..] Extraire source .exe
Posté : jeu. 16 mai 2013 08:13
par Tlem
Julien a écrit :Si je décoche upx à la compilation du script j'ai des effets de bord assez étrange.
Pouvez-vous être plus explicite ?
Re: [..] Extraire source .exe
Posté : jeu. 16 mai 2013 08:20
par Julien
Lorsque que je compile le script via le raccourci F7 (AutoIt3Wrapper) en ayant décoché la case "Use UPX", mon programme est bien compilé mais au lancement au lieu d’exécuter mon programme il exécute
le premier fichier (ici des .exe) inclus par la ligne en tête de script :
Cela ne se produit que avec des .exe. Test fait sans problème avec des .zip
Re: [..] Extraire source .exe
Posté : jeu. 16 mai 2013 18:04
par Tlem
En ce qui me concerne, si je compile (en 32 bits) avec les lignes :
Mon script compilé fonctionne normalement et l'exécutable joint n'est pas lancé. Par contre pour extraire la ressource, cela ce complique puisque celle-ci est compressée de manière non standard. Donc si vous tenez à utiliser ce mode de fonctionnement, vous devez rajouter :
et là ResHacker vous permettra l'extraction.
Par contre l'utilisation de cette méthode pour du binaire n'est généralement pas utilisée/recommandée. Il serait plus judicieux d'utiliser la commande
FileInstall qui sera bien plus souple à l'utilisation.

Re: [..] Extraire source .exe
Posté : jeu. 16 mai 2013 19:54
par Julien
je compile en 32 et 64 mais le premier programme inclus est toujours exécuté en premier.
Je vais partir sur des fichiers zip. Ça fonctionne plutôt bien d'après mes test.
Merci d'avoir pris du temps pour tester.
Edit : je compile que en 32 celui la.
Re: [..] Extraire source .exe
Posté : jeu. 16 mai 2013 22:46
par Tlem
Sans tous les éléments, difficile de vous aider plus. En tout cas, la description de ce que vous faites, fonctionne normalement chez moi.
Re: [..] Extraire source .exe
Posté : ven. 17 mai 2013 23:11
par Julien
J'ai passé beaucoup de temps pour trouver une solution qui fonctionne et a chaque fois que j'utilisais le "fileinstall" avec des .exe j'avais des erreurs lors de la compilation.
Je me suis dit alors que ça serait plus simple avec cette méthode.
Au final je suis revenu au "fileinstall" mais en renommant mais sources en .bin (j'aurais pu utiliser le .zip comme indiqué précédemment mais je n'ai pas réussi dans mon script à le faire fonctionner), que je renomme en .exe lors de l'extraction.
Ceci dit j'ai encore bien appris sur l'utilisation des ressources.