p_y_a Le 12/01/2005 à 23:10 Bonjour bonjour !
Voila, j'ai un petit probleme, je m'explique:
j'ai un processus qui tourne, dont l'adresse de début (virtuelle) est 0x00401000
Ensuite, avec un autre programme, je crée dans le premier processus une zone mémoire en 0x00350000 méttons.
Je copie du code asm dedans et j'aimerais l'executer, mais pas à n'importe quel moment !
Voici une partie du code asm du premier processus:
:05AF523 8A8314010000 mov al, byte ptr [ebx+00000114]
:005AF529 84C0 test al, al
:005AF52B 7477 je 005AF5A4
Ce que jveux faire donc, c'est remplacer le mov xxxx par un Call qui pointerais sur l'espace mémoire que j'ai alloué. Ensuite, dans cet espace mémoire, j'execute mon code et je fini par le mov xxxx et un ret.
La question est donc: Comment créer le Call ?
J'ai essayé en mettant l'adresse 0x00350000 mais il veut pas :/ ( a la limite si qqun a la solution avec un jmp, pas de probleme)
"I read the game.dll assembly more easily than you read the joke on the back of your box of Cocoa Pebbles, and have spent the past 2 1/2 years navigating it." ©
tu peux donner la solution?
sinon tu pour te faciliter la tache tu peux utiliser les zones de memoires partagées (Unix/Linux)
Questions :
- tu as quel processeur ?
et
- tu as SP2 installé ?
Sauf qu'avec le SP2 et un processeur récent ça va planter (protection des données contre l'exécution)
c'est quoi ce delire? ils interdisent tout ce qui est JIT compiled du coup? y doit bien y avoir moyen de le desactiver ca nan?
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960
*** Ne sous-estimez pas la puissance de la Marmotte ***
©
Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina
Pollux> tu paries mal, d'après le site de Microsoft lui-même.
(en plus tu vois vraiment microsoft dépenser de l'argent pour faire marcher une technologie concurrente ?)
Google n'a pas l'air d'être loquace sur des conflits entre Java et WinXP SP2 liés au bit NX, donc à moins que tu aies des références précises, je n'y crois pas...
Après MS dit sans doute qu'il ne supporte pas la JVM de Sun, mais c'est encore autre chose ^^
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
- c'est pas la jvm mais uniquement les progs en jit
- c'est uniquement avec des processeurs K8 (ou supérieur mais comme y'a pas de supérieurs)
Donc c'est pas anormal qu'il y ait pas plus d'infos.
- oui, mais ts les progs sont exécutés par défaut en jit, non ?
- certes, mais on peut pas dire que ça soit rarissime...
et je dois donc en déduire que tu n'as pas la moindre source ?
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
- Ca dépend : un prog qui est exécuté par la jvm c'est pas un problème suffit de mettre à jour la jvm. Le problème vient des applications utilisant java, intégrant leur jvm ou leur compiler jit (même une copie d'une version un peu plus ancienne) dans leur répertoire. Toutes ces applis là ne pourront pas marcher sans mise à jour.
- Pour l'instant les K8 sont pas super répandus, et faut à la fois le K8 et windows xp pro sp2
Ben j'ai la source de Microsoft qui fait mention que les programmes jit ne fonctionneront pas.
Sauf ceux .net parce qu'ils ont fait une routine pour les détecter et désactiver la protection.
p_y_a Le 16/01/2005 à 09:38 Ca marche niquel sur mon XP2800+ sous winXp pro SP1
"I read the game.dll assembly more easily than you read the joke on the back of your box of Cocoa Pebbles, and have spent the past 2 1/2 years navigating it." ©
Oui, sauf que si t'as lu ce qui précède ça doit foirer à partir de la série K8 (Athlon64 et Opteron) avec winxp pro SP2
p_y_a Le 17/01/2005 à 00:10 yep, j'ai pas encore eu l'occasion de tester, mais bientot
"I read the game.dll assembly more easily than you read the joke on the back of your box of Cocoa Pebbles, and have spent the past 2 1/2 years navigating it." ©