Creer exe automodifiable

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
yves

Creer exe automodifiable

Message par yves »

Bonjours !
peut on creer un exe avec des parrametres ( data) modifiable
par lui meme ?
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

comme turbo pascal ?

patrick
Fred
Site Admin
Messages : 2805
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Je comprends pas la question :). Si c'est passer des paramètres à un executable, c'est oui grace a ProgramParameter(). Si c'est pour écrire du code automodifiable, c'est oui aussi, mais faut avoir un sacré niveau en assembleur :wink:
yves

exe automodifiable ( suite)

Message par yves »

Je me suis mal exprimé .
j'aimerais stoker des parrametres
( comme on le ferais avec un fichier ini )
a l'interieur de l'executable .

Pour reduire a 1 seule fichier la plupart des petites d'applications.

cela fait pas mal de temps que je me pose cette question.
ce n'est sans doute pas facile ( l'exe est en memoire mais
l'os marque le fichier sur le disque comme ouvert " )

vu de l'exterieur ce serai comme si l'exe se recompile lui meme
avec de nouvelle donnée dans des data par exemple !

le copilateur sait integrer des "données" , "images" dans l'exe
l'idée serait d'utiliser ce type " d'espace " pour stoker des infos ( en live !)
Fred
Site Admin
Messages : 2805
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

a mon avis ca parait carrement difficile (mais pas impossible). Surtout que l'exe peut etre stockée dans une zone disque en lecture seule. Mon conseil: utilise un .ini dans le rep de l'utilisateur.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Je ne sais pas si c'est possible de réécrire les sections d'un fichier en mémoire et de là le sauvegarder sur le disque.

J'ai pensé à une méthode, un artifice, c'est-à-dire depuis l'exe on lance un thread qui se terminera lorsqu'il aura réécrit l'exe avec les modifs.

Ce Thread testerait si le fichier exe est fermé et si oui, il le modifie. Là ou je ne sais pas trop car je n'ai pas assez travaillé avec les Thread, c'est de savoir si l'exe qui se ferme termine le Thread ?
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

faire un exe qui en crée un 2ème avec les nouveau param (copie de l'exe puis modif) puis un fichier *.bat crée aussi par l'exe qui supprime le premier et renomme le 2ème
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Régis, si tu lis bien le message, il veut du tout en un, sans un autre fichier.
yves

suite !

Message par yves »

Merci !

Mais ne vous torturez pas trop l'esprit . ( un fichier externe marche tres bien !)
Je pose ces questions dans un but de culture general.

Le probleme pour utilisez " un espace reservé " dans l'exe est que l'on
ne sait pas avant compilation ou sera cette 'espace" dans le prog !
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: suite !

Message par Patrick88 »

yves a écrit : Le probleme pour utilisez " un espace reservé " dans l'exe est que l'on
ne sait pas avant compilation ou sera cette 'espace" dans le prog !
1) tu peux peut-être ajouter à ton executable tes données, un peu comme on lie les images avec includebinary

2) ou creer une zone tampon en tant que constante, après il faut pouvoir aller la modifier pendant ou après l'execution, je ne sais pas. ( avac des data aussi )
la constante sera compilée en même temps que l'exe. mais je pense que si tu modifies quelque chose dans l'exe , il doit y avoir une somme de controle (crc) et cela risque d'empècher le fonctionnement de l'exe.

pat
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

mais je pense que si tu modifies quelque chose dans l'exe , il doit y avoir une somme de controle (crc) et cela risque d'empècher le fonctionnement de l'exe.
Je pense pas que l'on puisse ajouter des variables dans un EXE. Parcontre, il est possible d'aller changer la valeur des variables existantes dans l'exe. (Il faut savoir lire en Hexadécimal et/ou en binaire)

C'est de cette manière que l'on peut "Pirater" le EXE d'un jeu pour lui ajouter des éléments qui sont programmé mais non utilisés.

Dans le cas du jeu X-wing Alliance, on peut ajouter des chasseurs qui ne sont pas dans le jeu original parce que dans le programme il y a des espaces programmé pour des chasseurs mais qui sont vide. Alors avec un utilitaire on va changer la valeur de certaines variables. Et voilà, un nouveau chasseur se retrouve dans le jeu.

Mais modifier un exe à partir de l'extérieur, c'est pas toujours facile. On peut bouzziller le programme plusieurs fois avant d'arriver à quelque chose stable.

Une solution serait de travailler avec 2 programmes le premier passe les paramètres à un deuxième qui va arrêter et modifier le premier puis relancer le programme modifié.

À mon avis il est beaucoup plus simple de modifier le source et recompiler le programme avec les modifications que le modifier par l'extérieur.

A+
Guimauve
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

heu, Denis, ou tu as vu qu'il y avait plusieurs fichiers dans ma solution ?
Tous ceux qui sont créés sont supprimés. :roll:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Peut-être en créant une DLL qui le ferait vu que le fichier exécutable est mit comme ouvert, donc impossible d'y écrire.
On dirait au programme d'appeler une fonction de la dll, on quite le programme, la dll fait son travail, relance le programme, et voila!
Oui c'est vrai qu'il y a deux fichiers mais bon...
hardy
Messages : 333
Inscription : mer. 02/juin/2004 13:19
Localisation : Tours

Message par hardy »

Lors de l'éxecution du programme, dans la mesure où celui-ci est chargé en mémoire vive, n'y-a-t-il pas moyen de fermer le fichier .exe?
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

@hardy,

C'est ce que je cherche à trouver ... mais des chercheurs qui cherchent on en trouve, alors que des chercheurs qui trouvent on en cherche encore !
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
Répondre