Comment désactiver l'ASLR (address space layout randomization) sur Windows 7 x64?

Comment désactiver l'ASLR sur Windows 7 x64, de sorte que mon programme sera toujours à la charge de l'partagé CRT à la même adresse?

  • Avez-vous besoin de faire cela, ou est-il juste de faire quelque chose de plus facile?
  • J'ai vraiment besoin de le faire.
  • Notez que cela dégrade la sécurité du système et devrait être fait seulement avec la permission de l'utilisateur.
  • Bon, je suis l'utilisateur. (Le seul utilisateur, et le seul administrateur, en fait. :P)
  • Haha... à mon humble avis, si vous êtes un administrateur, vous devrait être en mesure de faire ce que vous voulez, par définition.
  • L'partagé CRT n'est pas de votre fichier DLL, de sorte que vous ne pouvez pas désactiver l'ASLR pour elle. Vous ne pouvez désactiver l'ASLR pour les Exe et Dll que vous possédez (en désactivant le DLL_IMAGE_RELOCATABLE drapeau dans l'en-tête PE). La raison pour cela est que Windows Vista et au-dessus de délocaliser une partie de la clé des binaires pour windows pendant le démarrage du système afin qu'ils puissent partager la dérivation de la mémoire entre les processus - ce qui inclut des choses comme ntdll, kernel32, gdi32, user32, wininet et, malheureusement pour vous, mscrt.
  • c'est vrai, c'est vrai xD. SecurityMatt: en EFFET, Vous êtes autorisé à désactiver CRT ASLR, en tant qu'administrateur, car c'est une clé de registre dans ma réponse ci-dessous.
  • Ok, vous êtes autorisé à désactiver l'ASLR et DEP à l'échelle du système (qui est une horrible chose à faire - vous êtes littéralement mettre l'ensemble du système à risque), mais vous n'êtes pas autorisé à le désactiver simplement dans votre processus.
  • ^ C'est vrai, et c'est aussi ce que j'essayais de dire à Mehrdad, mais je suppose qu'il est vraiment, vraiment, vraiment besoin.
  • Hmm, bien sûr, le jour d'après je réponds à cette question: 9to5google.com/2012/03/07/... Suspect beaucoup? 😀
  • Lollllll il est en effet O_O
  • Oui, en effet. Eh bien, c'est ce qui arrive lorsque vous désactivez l'ASLR, donc soyez prudent!
  • Ne désactivez pas l'ASLR! Kittehs meurent chaque fois que quelqu'un se désactive l'ASLR... allez, peut-être que @Mehrdad juste besoin de tester un exploit technique sous une VM.

InformationsquelleAutor Mehrdad | 2012-03-05