J'ai une adresse que je voudrais modifier. J'ai le processus. J'ai la nouvelle valeur. Alors maintenant, quoi? Comment puis-je écrire 0x63 code> (99) à cette adresse sur une autre mémoire de processus? P> P>
4 Réponses :
Vérifiez ÉLIMINATIONPROCESSMEMORY à Pinvoke.net P>
Voici une autre similaire publier A> sur Stackoverflow, mais ils parlent de C ++. Vous pouvez faire la même chose avec Pinvoke. P>
Ote la vraie documentation à ce sujet et les remparts de haute qualité dont vous avez besoin. Même un compte administrateur ne suffit pas. MSDN.MicRosoft.com/en-us/Library /ms681674(V=VS.85).aspx est un point de départ.
Merci, de cette référence, j'ai trouvé beaucoup :)
Vous pouvez utiliser ÉLIMELESSMEMORY Mais sachez que vous devez activer les privilèges de débogage et qu'il ne fonctionnera pas avec beaucoup de processus sécurisés à Vista et plus tard. P>
Et que vous vous tiriez probablement dans le pied et vous écrasez quelques fois de choses. Je suggère que vous n'ayez pas de programmes importants en cours d'exécution lorsque vous faites cela. P>
bonne chance, vous en aurez besoin. :) p>
@Harvey, de votre réponse, j'ai déterré et trouvé beaucoup:
Ouvrir, fermer et écrire des signatures: p> drapeaux: p> static void Main(string[] args)
{
var p = Process.GetProcessesByName("ePSXe").FirstOrDefault();
WriteMem(p, 0x00A66DB9, 99);
}
Euh ... Puis-je vous suggérer que vous n'avez jamais, jamais b> Utilisez à nouveau int code> pour représenter une adresse mémoire? Merci. :)
Je suis trop paresseux pour taper intPTR code>, mais je garderai ça à l'esprit: p
Vous avez oublié de fermerHeDle () dans Writemem ()
Vous voudrez peut-être aussi vérifier la valeur de retour de l'écritureProcessmemorior () que TomTom a souligné qu'il nécessite en effet un privilège de le faire. Si vous n'avez pas assez de privilège, vous devrez peut-être appeler RightokenPrivilege.
malgré des fonctions natives P / invoquées telles que Utilisation de la bibliothèque MichelySharp , ceci peut être résumé comme suit: p> Le code précédent suppose L'adresse où la valeur est écrite n'est pas rebasée. p> p> écritureProcessmemory code> fonctionne parfaitement, les bibliothèques dédiées à la montage de la mémoire existent et vous permettent d'accomplir cette tâche de manière plus facile.
N'EST L'UTILISATEUR
VAR ADDR CODE> ... Il est par défaut à
int code>. Utilisez
intPTR code> à la place.