2008-11-21 7 views
1

Je dois définir une variable d'environnement en Python et trouver l'adresse dans la mémoire où elle se trouve. Comme c'est sur Linux, cela ne me dérange pas d'utiliser des bibliothèques qui ne fonctionnent que de manière cohérente sur Linux (si c'est le seul moyen). Comment ferais-tu ceci? Edit: L'étendue du problème est la suivante: J'essaie de pirater un programme pour la classe, et essentiellement je mets mon shellcode dans une variable d'environnement et écrase ensuite un octet sur le code victime avec l'adresse de ma variable d'environnement. Je dois trouver un moyen d'automatiser cela en Python, donc ma question est double:Python - Paramétrer/Obtenir des variables d'environnement et des Addrs

  • Y at-il un moyen d'obtenir l'adresse dans mémoire d'une variable d'environnement? Est-ce que cela peut seulement être fait en bash/C ou puis-je le faire purement en Python?

Répondre

1

La fonction intégrée id() renvoie un identifiant unique pour n'importe quel objet, qui se trouve être son adresse mémoire.

http://docs.python.org/library/functions.html#id

+0

Je réalise que cette question a été acceptée mais je ne vois pas comment elle répond au problème de la racine, à savoir "J'ai besoin de définir une variable d'environnement en python". Comment, en fonction de l'ID retournant une adresse mémoire, résoudre le problème? –

+0

J'ai supposé qu'il faisait référence aux variables python, seulement parce que "l'adresse mémoire" d'une variable d'environnement shell n'a pas vraiment de sens. – JimB

+0

J'ai vraiment besoin d'un moyen d'obtenir l'adresse de la mémoire où est la variable d'environnement shell afin que je puisse le nourrir à un programme différent, que vous pouvez faire avec getenv() en C. –

4

Pour accéder et la définition des variables d'environnement, lire sur le dictionnaire os.environ. Vous pouvez également utiliser os.putenv pour définir une variable d'environnement.

0

Passez l'adresse elle-même dans une variable d'environnement, et lisez-la simplement avec os.getenv().

Questions connexes