[..] Utiliser les pointeurs avec auto it ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
trust
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mar. 11 août 2009 11:49
Status : Hors ligne

[..] Utiliser les pointeurs avec auto it ?

#1

Message 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.
Modifié en dernier par trust le mer. 26 août 2009 23:09, modifié 1 fois.
Avatar du membre
L4crymal
Niveau 8
Niveau 8
Messages : 513
Enregistré le : mer. 24 sept. 2008 14:53
Status : Hors ligne

Re: Utiliser les pointeurs avec auto it ?

#2

Message par L4crymal »

Il me semble que l'UDF Memory.au3 prend en compte les pointeurs ;)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11816
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Utiliser les pointeurs avec auto it ?

#3

Message par Tlem »

@trust

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

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
trust
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mar. 11 août 2009 11:49
Status : Hors ligne

Re: Utiliser les pointeurs avec auto it ?

#4

Message 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 =)
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#5

Message 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
Modifié en dernier par SagePourpre le jeu. 27 août 2009 08:35, modifié 2 fois.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Avatar du membre
L4crymal
Niveau 8
Niveau 8
Messages : 513
Enregistré le : mer. 24 sept. 2008 14:53
Status : Hors ligne

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

#6

Message par L4crymal »

Un tricheur ?!? OOooooow PAS BIEN ! :shock:
trust
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mar. 11 août 2009 11:49
Status : Hors ligne

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

#7

Message 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.
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#8

Message 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...
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Avatar du membre
L4crymal
Niveau 8
Niveau 8
Messages : 513
Enregistré le : mer. 24 sept. 2008 14:53
Status : Hors ligne

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

#9

Message 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 :?
Dididj
Niveau 4
Niveau 4
Messages : 58
Enregistré le : lun. 17 août 2009 17:29
Status : Hors ligne

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

#10

Message 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.
trust
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mar. 11 août 2009 11:49
Status : Hors ligne

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

#11

Message 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.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

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

#12

Message 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.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
trust
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mar. 11 août 2009 11:49
Status : Hors ligne

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

#13

Message 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.
Répondre