begin process at 2012 05 29 13:50:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Pointeurs et mémoire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pointeurs et mémoire

mercredi 4 février 2004 à 18:17:41 | Pointeurs et mémoire

hilairenicolas


Salut,

après un petit voyage dans la msdn, j'ai découvert cette méthode IsBadReadPtr qui permet de savoir si le processus à les droits de lecture de la mémoire, et puis je me suis demandé par curiosité s'il y avait pas une fonction dans l'api qui permettrait de savoir si un pointeur pointe correctement vers une bonne zone mémoire, qui permettrait de se proteger des mauvais delete ou autres écritures dans la mémoire à des endroits pas autorisé.

J'en doute, mais sait-on jamais, l'api win32 recele de trésors que je ne soupconne meme pas

Merci de vos réponses

Nico
mercredi 4 février 2004 à 19:00:06 | Re : Pointeurs et mémoire

djl


j'en sais rien mais je dirai que le meilleur moyen c'est de rester propre, il faut t'assurer que chaque pointeur pointe sur une zone allouer par toit meme ou est NULL, ca permet deja de savoir quand allouer et desallouer

"...écritures dans la mémoire à des endroits pas autorisé"

idem si c'est propre tu sais si tu peut ecrire, non?

quand tu peut pas tu le sais aussi?

genre
char m[]="lklmlklklklmkk";

le tout est de penser a se proteger de m[2]='g'; par ex dans ce cas tu utilise const tout simplement

cependant on peut en arriver a ce demander si un pointeur pointe bien vers une zone "autoriser" mais le fait de savoir ca ca n'avance a rien, imagine ton pointeur pointe et modifie une variable au sein de ton programme san que tu le veuille, je pense que c'est loin d'etre suffisant ...
t'aurai pas un exemple stp?
mercredi 4 février 2004 à 19:07:19 | Re : Pointeurs et mémoire

hilairenicolas

non, j'ai pas d'exemple en fait, j'ai tendance à essayer du mieux que je peux à faire du code propre un peu à la facon que tu décris, mais c'était surtout une curiosité.

Merci de ta réponse
mercredi 4 février 2004 à 19:34:42 | Re : Pointeurs et mémoire

djl

je crois avoir trouver un exemple, tu recupere un projet assez consequent (plus de 10000 lignes), pas tres propre, ca serait utilie dans ce cas la, non?
mercredi 4 février 2004 à 23:14:07 | Re : Pointeurs et mémoire

hilairenicolas

Je pense aussi qu'il peut y avoir des programmes, nottament dans le monde des process COM, où il y a plusieurs instances, avec des pointeurs qui ont la meme valeur, mais qui ne sont pas accessibles par tout le monde, ou bien dont la gestion mémoire n'est pas optimale, et lorsqu'une instance détruit un pointeur, l'autre instance ne le sait pas.

Mais, dans ce cas, c'est peut etre la méthode IsBadReadPtr qu'il faut plutot utiliser.

Mais le cas d'un delete et apres on teste si la zone pointée est valide ou pas, peut etre evité avec le pointeur mis automatiquement à NULL lorsqu'il est détruit
mercredi 4 février 2004 à 23:18:29 | Re : Pointeurs et mémoire

djl



"Je pense aussi qu'il peut y avoir des programmes, nottament dans le monde des process COM, où il y a plusieurs instances, avec des pointeurs qui ont la meme valeur, mais qui ne sont pas accessibles par tout le monde, ou bien dont la gestion mémoire n'est pas optimale, et lorsqu'une instance détruit un pointeur, l'autre instance ne le sait pas."

oui mais delete met a NULL donc suffit de rajouter des test pour les autres hinstance, d'ailleur pour etre propre faut toujours le faire


Cette discussion est classée dans : api, mémoire, pointeurs, permettrait


Répondre à ce message

Sujets en rapport avec ce message

MySQL API C, libération de mémoire tampon... [ par Guizmo95 ] Bonjour,je développe un programme en C avec l'API C pour MySQL, et mon mon problème est le suivant, je lance le programme et je regarde la mémoire qu' Pointeurs ... [ par Ziman ] Bonjour,J'ai une petite question, c'est pas vraiment un probleme de code mais plutot de théorie. Imaginez qu'en global j'ai déclaré un pointeur vers u Libération de mémoire (C API Win32) [ par ndubien ] Bonjour,Je me pose la question suivante:Faut-il libérer un HBITMAP avant de le réinitialiser?Si oui, comment?Merci d'avance et à bientôt... API Hooking & accés mémoire [ par simtiers ] Salut !Voilà, j'essaie de faire un API Hooking sur Virtual PC pour le rendre transportable sur une clé USB.Le but est en fait de traiter tous ses appe Win32 affichage graphique fuite mémoire [ par _Jonathan ] Bonjour a tous,j'ai fait une petite application affichant un graphique. Mais lorsque je le lance, le programme me bouffe toutes les ressources sous wi est ce une api? [ par tezca_system ] Bonjour,je cherche un moyen de verifier le nom de mon executable lors de sa propre executio mémoire partagée sécurisé ou pas ? [ par HeavenForsaker ] Bonjour,J'utilise la fonction CreateFileMapping pour partager des variables entre différentes applications, pour accéder aux variables de la mémoire p ressources fichier texte API Win [ par THEwarrior333 ] Bonjour,sous Visual 6 en API win:je cherche à inclure un fichier texte dans mes resources pour ensuite l'inclure dans un edit box.comment on fait ca ? FMOD libération de la mémoire.... [ par MorbhAck ] Bonsoir a tous !J'amerai savoir comment on libère le mémoire avec FMOD.Je suis en train de faire un Chipdisk (une sorte de Jukebox)et le problème c'es Enregistrer variables [api win32] [ par moumouteb ] Bonjour, J'ai cherché de la documentation pour savoir comment enregistrer dans un fichier sous Windows. J'ai trouvé la fonction : WriteFile(...)  mais


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,232 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales