Page 1 sur 1

[..] Utiliser les pointeurs avec auto it ?

Posté : mer. 26 août 2009 22:15
par trust
Yop all,
J'ai un petit soucis.
J'ai l'adresse mémoire d'un programme qui n'est pas fixe (elle est dynamique), donc elle change d'un PC à l'autre, et éventuellement d'une utilisation à une autre.
De ce fait, j'aimerais utiliser un pointeur pour rendre mon programme compatible à 100% mais comment faire ?

Merci.

Re: Utiliser les pointeurs avec auto it ?

Posté : mer. 26 août 2009 22:37
par L4crymal
Il me semble que l'UDF Memory.au3 prend en compte les pointeurs ;)

Re: Utiliser les pointeurs avec auto it ?

Posté : mer. 26 août 2009 22:43
par Tlem
@trust

Déjà oublié les règles de présentation d'un message. :shock:

Re: Utiliser les pointeurs avec auto it ?

Posté : mer. 26 août 2009 23:10
par trust
Tlem a écrit :@trust

Déjà oublié les règles de présentation d'un message. :shock:
Oopla désolé^^
L4crymal, merci mais j'ai pas trouvé comment s'en servir dans la doc :s

Thx =)

Re: [..] Utiliser les pointeurs avec auto it ?

Posté : jeu. 27 août 2009 00:24
par SagePourpre
Si c'est pour trouver le pointeur, tu peux utiliser Cheat Engine


Une fois que tu as ton pointeur, tu peux utiliser l'udf NomadMemory.au3
Il faut que tu "ouvres" la mémoire avant de faire des opération dessus
Google NomadMemory.au3 pour plus d'infos (ou cherche sur le forum anglais pour l'udf et les tutorials qui lui sont reliés.

Memoryopen
Memorywrite

Re: [..] Utiliser les pointeurs avec auto it ?

Posté : jeu. 27 août 2009 07:19
par L4crymal
Un tricheur ?!? OOooooow PAS BIEN ! :shock:

Re: [..] Utiliser les pointeurs avec auto it ?

Posté : jeu. 27 août 2009 09:33
par trust
Pour trouver le pointeur je sais comment m'y prendre merci^^.
J'utilise déjà NomadMemory pour modifier la valeur d'une adresse mémoire directement, mais comment modifier la valeur de l'adresse mémoire d'un pointeur ?
C'est ça ma question^^

Après pour ce qui est de la triche, je ne vois pas comment tu peux affirmer ça^^
Je crois qu'avec ce que je donne comme explication, et vu ma demande : Comment fonctionne un pointeur sous auto it ? et répondre : Bouh un tricheur...ça vole pas haut.

Re: [..] Utiliser les pointeurs avec auto it ?

Posté : jeu. 27 août 2009 09:55
par SagePourpre
??...

De la même façon ?



Si tu as le pointeur, alors modifie le pointeur directement
avec NomadMemory de la même façon que n'importe quelle adresse ...


Du moins, c'est ce que je faisais et je n'ai jamais eu de soucis...

Re: [..] Utiliser les pointeurs avec auto it ?

Posté : jeu. 27 août 2009 11:13
par L4crymal
Euuu, a ma connaissance de programmeur en C

On nous à dit que modifier la valeur d'une variable contenue par un pointeur etc etc etc était interdit par l'OS pouvant faire cracher l'application cible et même des fois Windows :?

Re: [..] Utiliser les pointeurs avec auto it ?

Posté : jeu. 27 août 2009 11:27
par Dididj
Je pense que c'est possible de modifier le variable d'un autre programme.
Les programme de cheat sur les jeux modifient les variables et ne font pas planter le jeux.
Tout dépens des variables que tu modifies, donc oui tu peux faire planter le programme.

Re: [..] Utiliser les pointeurs avec auto it ?

Posté : jeu. 27 août 2009 12:47
par trust
Mais qui vous parle de cheat ?
Bref, L4crymal, le pointeur contient une adresse mémoire.
En C :

int *pointeur={Adresse_Memoire};

Si tu modifie le &pointeur, tu modifie l'adresse mémoire et non sa valeur.
Pour en modifier la valeur il faudrait faire :
*pointeur={Nouvelle valeur};

Je me trompe ?
Donc modifier la valeur du pointeur directement n'est pas un probleme, il faut juste faire attention à ne pas modifier l'adresse mémoire.

Re: [..] Utiliser les pointeurs avec auto it ?

Posté : jeu. 27 août 2009 22:07
par sylvanie
Bonjour,
et si on commençait par regarder les tutoriels ? :mrgreen:
http://www.autoitscript.fr/forum/viewto ... f=11&t=846

Il faut faire attention au fait qu'une adresse mémoire est relative à un processus.
Pour certains c'est évident, pour d'autres moins, donc je vais expliciter :
prenons deux exe A.exe et B.exe.
Windows dans son infinie bontée va adresser virtuellement jusqu'à 4Go (me semble-t-il de mémoire; c'est le cas de le dire :mrgreen: ) par processus de ram, même si celui-ci n'en consomme que quelque kilos. Mais cela reste du virtuel. Derrière la MMU passe son temps à translater de l'adressage virtuel vers des adresses physiques (les vraies).
Tout ça pour dire que A.exe peut utiliser une adresse en 0x12345678; tout comme B.exe, mais physiquement ceux ne sont pas les mêmes zones.
Ainsi si on écrit brute de fonderie dans B.exe 0x12345678 reçoit 0x25, ça ne le changera pas dans A.exe.

Pour réaliser ceci, comme suggérer dans le tutoriel, il faut passer par le PID pour que le système fasse la translation (cf _MemoryOpen pour ensuite appeler les Read et Write)
Alors maintenant attention sur ce qu'on veut faire ...
Taper dans une exe pour changer des valeurs de façon illicite c'est pas bien du tout
et en plus si le programme fait des checks d'intégrité on se fait vite jeter, voir
ça enclenche une action de défense (extinction de l'exe, shutdown du système, libre choix au programmeur...) donc un accès direct sur un exe tierce est toujours risqué, voir hasardeux.

Personnellement j'utilise ceci pour émuler des Threads, des vrais du coups pas
comme AdlibEnable qui est trop pieds et mains liés vis à vis des boucles de scripts.
De plus j'ai la possibilité de contrôler / maîtriser ce que je fait des 2 (voir plus) côtés contrairement au point ci dessus où parfois on n'a aucune idée de l'organisation des structures en mémoires, du coups risques énormes de jardinage mémoire comme le soulignait L4crymal.
Sans parler que ça reste quand de la haute bidouille ^^

Après c'est chacun qui agit en son âme et conscience, sachant que pour rendre ceci plus concret, arrivé à un certain stade il y a les règlements puis les lois.

Re: [..] Utiliser les pointeurs avec auto it ?

Posté : jeu. 27 août 2009 23:21
par trust
Re,
Ce que je fait est légal vous en faîtes pas^^
En fait je ne veux pas vraiment changer la valeur sous tous les processus du même nom, juste un. Donc pas vraiment besoin du PID dans mon cas^^
J'aurais une autre question, est-ce possible de faire marcher AutoIt en background mais lié à un programme ?

Par exemple cliquer sur firefox alors que celui ci est réduit dans ma barre de tache.

Merci.