Bonjours,
En vue d'optimiser la modifications de paramètre logiciel j'aimerais bien connaitre la syntaxe permettant de definir une valeur précise à une adresse ram, malgrès de nombreuses recherches je ne trouve toujours pas.
Merci.
Bonjours,
En vue d'optimiser la modifications de paramètre logiciel j'aimerais bien connaitre la syntaxe permettant de definir une valeur précise à une adresse ram, malgrès de nombreuses recherches je ne trouve toujours pas.
Merci.
Au vue de votre question, vous devez avoir une vue assez particulière de ce qu'est la RAM.
Pouvez-vous développer votre besoin ?
si p est l'adresse (p est probablement de type char *), *p = 0xFF place la valeur 0xFF à l'adresse p.
p étant une adresse virtuelle dans l'espace d'adressage du processus courant, adresse qui n'est pas forcément en mémoire RAM physique.si p est l'adresse (p est probablement de type char *), *p = 0xFF place la valeur 0xFF à l'adresse p.
Justement, je pense que c'est de cette mémoire virtuelle qu'il est question ici.
L'un des programmes que je souhaite optimser est un par-feu. Au lieu d'avoir à le redémarrer ou à effectuer plusieurs manipulations, j'aimerais pouvoir modifié la valeur d'une des adresses pour pouvoir, dans cet exemple, activé/desactivé une règle de filtrage.
J'ai songé aux pointeurs mais je ne sais pas comment definir une adresse précise avec une valeur précise.
Cela me semble louche, mais je vais quand même te répondre. Ca serait néanmoins bien si tu pouvais nous dire quel est exactement ton but. Peut-être existerait-il des solutions plus conventionnelles.
Si l'adresse à laquelle tu veux écrire appartient à ton processus (autrement dit si c'est toi-même qui écrit le code du pare-feu), c'est comme je te l'avais déjà indiqué. Supposons que l'adresse soit 0x004F0000. Alors c'est :
Ecris (char *)0x004F0000 au lieu de 0x004F0000 tout court si les messages de warning te gènent, mais cela ne change absolument rien à ton programme. C'est obligatoire par contre si tu codes en C++ et non en C.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 char * p = 0x004F0000; *p = 0xFF;
Si l'adresse appartient à un autre processus (autrement dit t'es un programme étranger qui veut prendre contrôle du pare-feu), il faut utiliser la fonction WriteProcessMemory.
Merci de la reponse. Mon par-feu possède un fichier de configuration (.conf) chargé à chaque démarrage du programme et chargé en mémoire ensuite, ce qui permet, même par suppression du fichier de conserver les données (le fichier est regénéré ensuite).
Deplus, ce par-feu (Tiny peronnal firewall), possede deux executables, l'un propre au par feu, et l'autre permettant sa configuration.
Le but du script étant de pouvoir fermer ou bien modifier cette configuration à distance (Je configure actuellement un serveur Ftp sur une de mes machines, et laisser ouvert tout les ports que cela inclus est dangeureux (TCP, 20-21 et plage de port 5000-5100), le script serais lancé uniquement lorsque le pc hôte reçois une requête de la part d'un utilisateur précis (les ports ne s'ouvrirais et ne permettrais qu'a mon ordinateur d'avoir accés à mes données distantes.)
Pourquoi ne pas lancer l'exécutable de configuration avec les bonnes options en ligne de commande ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager