Page 1 sur 1

[R] Ecrire une chaîne dans l'exécutable actuel

Posté : mar. 25 août 2009 21:57
par Artemis
Bonjour à tous et à toutes.

Mon problème est le suivant : j'aimerais pouvoir inscrire une suite de caractère variable (d'une vingtaine de lettres et de chiffres) dans l'exécutable compilé qui est actuellement en cours d'exécution, par exemple pour inscrire un nom d'utilisateur. Je me doute qu'il faudra passer par l'hexadécimal, mais comment ?

Merci d'avance pour vos réponses constructives.

Artemis ;)

Re: [..] Ecrire une chaîne dans l'exécutable actuel

Posté : mar. 25 août 2009 22:16
par tplanet
Salut,

Lis la doc au sujet de la commande GUICtrlCreateInput, tu devrait y trouver l'info nécessaire et des exemples.

Thierry

Re: [..] Ecrire une chaîne dans l'exécutable actuel

Posté : mar. 25 août 2009 22:25
par Tlem
Ce n'est vraisemblablement pas ce que Artemis à dans l'idée.

Mais plutôt le fait de rajouter en dur le nom d'un utilisateur dans le script compilé.
Ce qui à mon avis est plutôt pas très simple à faire pour la simple raison que le script compilé (l'exe) est composé de l'interpréteur AutoIt (du moins sa partie binaire) puis du code compilé (non en clair). Vous ne pouvez donc pas rechercher une chaine pour la remplacer par une autre. Une autre solution consisterait à modifier les propriétés de l'exe ou d'ajouter une ressource, mais cela impliquerais l'utilisation d'un logiciel tiers tel que ResHacker.
Je crois avoir vu sur le forum Anglais un script qui permet la modification des ressources d'un fichier sans ResHacker. Cela serait sans doute une direction à creuser.

Edit : J'ai retrouvé le lien : http://www.autoitscript.com/forum/index ... opic=85618
Mais vraisemblablement ceci ne fera pas l'affaire.

Vous pourriez plus simplement rajouter un fichier 'crypté' avec un numéro de série en relation avec l'exécutable compilé qui serait plus facilement modifiable. :roll:

Re: [..] Ecrire une chaîne dans l'exécutable actuel

Posté : mer. 26 août 2009 10:02
par Artemis
Merci de ta réponse, Tlem.

Ce que je voudrais c'est avoir un seul fichier. Ce n'est pas grave si je peux modifier uniquement un autre exe que celui en cours d'utilisation. Il n'y a pas moyen d'utiliser l'hexadécimal en AutoIt ?

Artemis

P.S : Merci également pour ta réponse, tplanet mais bien qu'elle ne soit pas correspondante, le post incitait à la confusion.

Re: [..] Ecrire une chaîne dans l'exécutable actuel

Posté : mer. 26 août 2009 12:54
par L4crymal
Sinon ResHacker peut être utiliser en ligne de commande ;)

Re: [..] Ecrire une chaîne dans l'exécutable actuel

Posté : mer. 26 août 2009 17:12
par Tlem
Une solution à tester, c'est de rajouter les quelques octets à la fin du script compilé ou de tout autre EXE.

Voici une ébauche pour modifier le script lui-même :
► Afficher le texte
Ensuite il vous faudra lire les derniers octets pour avoir votre chaine.
Évidement puisque le script est en cours de fonctionnement, on ne peut le modifier comme ça. D'où l'astuce de le copier dans le dossier temporaire, puis de le modifier, puis de fermer le script après avoir lancer un Batch qui remettra le script modifié à la place de l'original.

C'est tordu, mais je vois pas comment faire autrement.
La solution du fichier complémentaire reste selon moi une bien meilleure solution (Il existe des tas de softs accompagné de DLL, de fichier .bin ou apparentés).

Re: [..] Ecrire une chaîne dans l'exécutable actuel

Posté : mer. 26 août 2009 20:11
par Artemis
Merci pour cette solution qui marche également sur les éxécutables, je pense l'adopter.

Mais maintenant, comment lire la chaîne rajoutée ? (en supposant que je connaisse sa longueur)

Artemis ;)

L4crymal : Oui, les options sont disponibles dans l'aide mais ça fait un fichier de plus (ce que je shouaiterais éviter). Le mettre en FileInstall n'est pas une solution car cela alourdit beaucoup le fichier compilé.

Re: [..] Ecrire une chaîne dans l'exécutable actuel

Posté : mer. 26 août 2009 21:44
par Tlem
Hé bien, pour lire cette chaine, il faudra lire en mode binaire l'exécutable, ensuite ne prendre que la dernière partie (longueur de chaine + un CRLF), ensuite on filtre le tout, et on convertit en chaine.

J'avais bricolé rapidement un truc pour vérifier si ça fonctionnait. Il y à sans doute mieux à faire.
► Afficher le texte

Re: [..] Ecrire une chaîne dans l'exécutable actuel

Posté : lun. 26 déc. 2011 20:17
par Artemis
Merci pour vos réponses. Sujet résolu.

Artemis

Re: [R] Ecrire une chaîne dans l'exécutable actuel

Posté : lun. 26 déc. 2011 20:55
par Tlem
Huummmm, vous vivez surement dans une région proche du pôle nord ou sud, car là ça fait quand même quatre mois !!!
C'était sans doute les quatres mois ou le soleil ne montre pas le bout de son nez et où vous avez fait un très gros dodo... :lol:

Re: [R] Ecrire une chaîne dans l'exécutable actuel

Posté : lun. 26 déc. 2011 21:08
par PandiPanda
[HS ON]
à vrai dire ca fait un peu bcp plus que 4 mois ^^.
Mer 26 Aoû 2009
[HS OFF]

Re: [R] Ecrire une chaîne dans l'exécutable actuel

Posté : lun. 26 déc. 2011 21:57
par Tlem
Houuu laaaa oui !
J'avais pas fait attention. :lol:

Re: [R] Ecrire une chaîne dans l'exécutable actuel

Posté : jeu. 29 déc. 2011 20:54
par Artemis
J'ai juste édité mon message car mon smiley a été remplacé par une toute autre image sur le serveur où il était hébergé :/

Navré d'avoir déterré le topic.