Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1869 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Virtual protect sous linux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Virtual protect sous linux

n°950763
chrisbk
-
Posté le 11-01-2005 à 14:26:22  profilanswer
 

bonjour,
 
Mes collegues sont farceurs et arretent pas de faire volontairement des bugs qui ecrivent dans l'espace mémoire alloué par mes bouts de code. Conséquence : mon code plante comme une buse plus tard, je passe pour un con, c'est le drame, alors que je suis drapé du blanc de l'innocence, une auréole au dessus de ma tete et un rameaux d'olivier a la main.
 
Bref, tout ca pour dire que je me demandais si sous, hum, linux, y'avait moyen de changer les droits d'acces a certaines plage mémoire (genre 'lecture seule', quoi) et si oui, par quelle fonction ? Un genre de VirtualProtect, mais sous nioux, quoi.
 
Merci
 


Message édité par chrisbk le 11-01-2005 à 14:28:51
mood
Publicité
Posté le 11-01-2005 à 14:26:22  profilanswer
 

n°950771
Lam's
Profil: bas.
Posté le 11-01-2005 à 14:34:08  profilanswer
 

man mprotect ?

n°950773
chrisbk
-
Posté le 11-01-2005 à 14:37:27  profilanswer
 

superbe. Fini les blagues, ca va chier.
merci
 
(bon, sinon, man c'est bien (angelina) joli mais quand tu connais pas le nom de la fonction ca t'aide pas des (jeanne) masses)

n°950774
chrisbk
-
Posté le 11-01-2005 à 14:37:55  profilanswer
 

ha bin non, mon man a moi il dit pas ca ?

n°950775
chrisbk
-
Posté le 11-01-2005 à 14:38:18  profilanswer
 

exemple tiré du man :

Code :
  1. char *p;
  2.            char c;
  3.            /* Allocation d'un buffer, protection
  4.               par défaut PROT_READ|PROT_WRITE. */
  5.            p = malloc(1024 + PAGESIZE - 1);
  6.            if (!p) {
  7.                perror("Impossible d'allouer suffisament de mémoire" );
  8.                exit(errno);
  9.            }
  10.            /*
  11.             * Aligner p sur un multiple de PAGESIZE (que l'on suppose être
  12.             * une puissance de 2)
  13.             */
  14.            p = (char *) (((int) p + PAGESIZE-1) & ~(PAGESIZE-1));
  15.            c = p[666];         /* lecture ok */
  16.            p[666] = 42;        /* ecriture ok */
  17.            /* Buffer marqué en lecture-seule */
  18.            if (mprotect(p, 1024, PROT_READ)) {

n°950776
Lam's
Profil: bas.
Posté le 11-01-2005 à 14:39:52  profilanswer
 


ca te donne quoi un "apropos protect" ?


Message édité par Lam's le 11-01-2005 à 14:49:52
n°950781
chrisbk
-
Posté le 11-01-2005 à 14:42:58  profilanswer
 

Lam's a écrit :

ca te donne quoi un "apropos protect" ?


 
ca va, ta schyzo ? [:joce]
(connaissais pas apropos, moi et les OS datant de noé on est pas trop copain)

n°950786
chrisbk
-
Posté le 11-01-2005 à 14:51:19  profilanswer
 

et l'equivalent de virtualalloc c'est quoi ? [:moule_bite]
 
pour ton apropos :
 
 
mprotect             (2)  - control allowable accesses to a region of memory
 

n°950790
Lam's
Profil: bas.
Posté le 11-01-2005 à 14:56:11  profilanswer
 

man mmap
 
Et ensuite, tu décides si tu veux mapper /dev/zero ou /dev/mem
 
Mais j'ai une question: avec VirtualAlloc, comment fais tu pour savoir que l'adresse que tu lui donnes est une "bonne" adresse ?

n°950792
chrisbk
-
Posté le 11-01-2005 à 14:59:29  profilanswer
 

msdn virtualalloc [:moule_bite]
(en fait jcomprends pas ta question et j'ai jamais utilisé virtualalloc
 
mais la ils racontent des trucs : http://msdn.microsoft.com/library/ [...] ctions.asp

mood
Publicité
Posté le 11-01-2005 à 14:59:29  profilanswer
 

n°950794
Lam's
Profil: bas.
Posté le 11-01-2005 à 15:02:55  profilanswer
 

chrisbk a écrit :

msdn virtualalloc [:moule_bite]


 
Putain, commence pas à foutre une ambience de merde sur ce topic... :o
 

n°950812
++fab
victime du syndrome IH
Posté le 11-01-2005 à 15:20:03  profilanswer
 

chrisbk a écrit :

bonjour,
 
Mes collegues sont farceurs et arretent pas de faire volontairement des bugs qui ecrivent dans l'espace mémoire alloué par mes bouts de code. Conséquence : mon code plante comme une buse plus tard, je passe pour un con, c'est le drame, alors que je suis drapé du blanc de l'innocence, une auréole au dessus de ma tete et un rameaux d'olivier a la main.
 
Bref, tout ca pour dire que je me demandais si sous, hum, linux, y'avait moyen de changer les droits d'acces a certaines plage mémoire (genre 'lecture seule', quoi) et si oui, par quelle fonction ? Un genre de VirtualProtect, mais sous nioux, quoi.
 
Merci


 
Quels farceurs !
C'est impossible avec des droits utilisateurs. Un processus ayant son propre espace d'adressage, il faudrait a vu de nez, modifier les vm_area_struct que gère le noyau ... Ca demande des privilèges.
 

n°950941
chrisbk
-
Posté le 11-01-2005 à 17:10:22  profilanswer
 

bin mprotect alors ?

n°950952
Lam's
Profil: bas.
Posté le 11-01-2005 à 17:12:59  profilanswer
 

Il faudrait un truc genre VirtualProtect en fait...

n°950957
chrisbk
-
Posté le 11-01-2005 à 17:14:41  profilanswer
 

!§§§§§!

n°951095
chrisbk
-
Posté le 11-01-2005 à 20:03:01  profilanswer
 

RePoNdEz A lA QuEsTiOn !§!§!

n°951163
++fab
victime du syndrome IH
Posté le 11-01-2005 à 21:21:38  profilanswer
 

chrisbk a écrit :

RePoNdEz A lA QuEsTiOn !§!§!


 
J'ignore comment ces farceurs de collègues :D s'y prennent pour faire planter ton programme, mais c'est probablement pas en écrivant/bidouillant des données contenues dans l'espace d'adressage de ton processus. Sauf s'ils ont des droits root, ou qu'ils profitent d'un module "viral" pour écrire dans l'espace d'adressage en question ... tout est possible, mais c'est loin d'etre simple ...
Peut-etre qu'ils t'escamotent des bibliotheques ? ton .bashrc ou équivalent est protégé ?  
Comment plante tes programmes ?
 
mprotect, ça va protéger les données en mémoire contre toi meme, et uniquement pour le meme processus.

n°951167
chrisbk
-
Posté le 11-01-2005 à 21:24:55  profilanswer
 

bin j'ai pas parler de processusn, mais de bout de code
on bosse ts ensemble sur une appli, parfois un bout de code A merde et ecrit dans un espace du bout de code B. B part en sucette et on s'enerve a comprendre poruquoi B deconne alors que c'est A le coupable. Bref, sur certaines données "critique" et utilisée uniquement en read-only, je me dis que ca sera pas mal, un truc de ce genre (pour spotter plus vite les merdes)

n°951180
++fab
victime du syndrome IH
Posté le 11-01-2005 à 21:36:11  profilanswer
 

ah d'acoord !
ben c'est pas en changeant les permissions des "données" en mémoire que ça réglera le probleme. Ca fera peut etre un SIGSEGV plus rapidement encore !  
On ne peut pas faire grand chose si A (le code merdique) provoque un dépasement de tampon, ou écrit à une mauvaise adresse ...
Je vois plusieurs solutions :
1 - changer de crémerie :D
2 - changer de langage.
3 - fesser le programmeur de A et lui faire expier ses méfaits.

n°951193
chrisbk
-
Posté le 11-01-2005 à 21:51:39  profilanswer
 

jsutement, aevc un SIGSEV plus rapide on a plus facile a cerner le pb, car ca plantera la ou ca ecrit de travers, pas 10ans apres

n°951200
++fab
victime du syndrome IH
Posté le 11-01-2005 à 22:10:07  profilanswer
 

ça peut se faire ...
Mais je pense qu'un débogueur, ou/et un cerveau humain branché sont une meilleure alternative !

n°951215
chrisbk
-
Posté le 11-01-2005 à 22:20:03  profilanswer
 

Pour le cerveau humain branché, je dis direct non, et ta remarque est insultante envers mes collegues [:petrus75]. les conenries tout le monde en fait, surtout quand y commence a voir des kg de code
pour le debuggueur, je ne re-commencerais pas un débat sur linux non plus, j'en sors [:petrus75]
 
bref [:petrus75]

n°951217
Lam's
Profil: bas.
Posté le 11-01-2005 à 22:21:40  profilanswer
 

Valgrind ?

n°951218
chrisbk
-
Posté le 11-01-2005 à 22:22:32  profilanswer
 

yep, on l'utilise, mais assez solution de dernier ecours : nos traitement sont assez lourd et le lancer sous valgrind prends parfois un certain tps (meme en strippant l'inutile)

n°951237
++fab
victime du syndrome IH
Posté le 11-01-2005 à 22:34:11  profilanswer
 

ouais, tout le monde fait des conneries, c'est clair.
Je voulais dire que pour trouver les erreurs de corruptions de pile, tas, tout ce qu'on veux, il faut vraiment mettre le cerveau sur ON. Chose que l'on ne peut malheureusement pas faire 8h durant!
Pour le débogugeur, ça sert vachement quand il y a un SIGSEGV, tu sais tout de suite ou se trouve l'erreur.

n°951240
chrisbk
-
Posté le 11-01-2005 à 22:35:30  profilanswer
 

bin chui d'accord pour le debuggueur, hein, le pb, c'est le debuggueur en lui meme, justement [:petrus75] (je fais de frequente crise de nostalgie de mon VS adoré)

n°951249
++fab
victime du syndrome IH
Posté le 11-01-2005 à 22:47:48  profilanswer
 

tachons de résister au trol :)

n°951252
chrisbk
-
Posté le 11-01-2005 à 22:49:18  profilanswer
 

c'est dur, c'est dur [:petrus75]
.
.
.
.
.
.
.
.
.
.
.
.
paske quand meme, le debuggueur a vs, c'est le pied comparé a cette me^@#]#^#^#^]#
.
.
.
.
.
.
.
.
.
.
 
j'ai resisté [:petrus75]
 
 
 

n°951255
push
/dev/random
Posté le 11-01-2005 à 22:49:54  profilanswer
 

ban  :o

n°951269
++fab
victime du syndrome IH
Posté le 11-01-2005 à 22:57:54  profilanswer
 


 :lol:

n°951271
chrisbk
-
Posté le 11-01-2005 à 22:59:02  profilanswer
 

bon les enfants la récrés est finie [:petrus75]

n°951275
push
/dev/random
Posté le 11-01-2005 à 23:03:02  profilanswer
 

sinon pq mprotect ne satisfait pas tes vils désires ?


Message édité par push le 11-01-2005 à 23:03:25
n°951276
Lam's
Profil: bas.
Posté le 11-01-2005 à 23:03:44  profilanswer
 

20 GOTO 10

n°951278
chrisbk
-
Posté le 11-01-2005 à 23:05:14  profilanswer
 

push a écrit :

sinon pq mprotect ne satisfait pas tes vils désires ?


 
 
sisi, il me caresse le sexe la [:petrus75]
 
par contre il semble preferable de l'utilisation en conjonction avec valloc plutot qu'un bete malloc

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Virtual protect sous linux

 

Sujets relatifs
LINUX - Problème de gestion voie serie avec ecran tactile[UML] diagramme des classes et linux
Probleme compilation package sous linuxEquivalent de GetCursoPos() sous Linux ...[resolu]
[usb.h] Comment utiliser /usr/src/linux-2.4.20-8/includ e/linux/usb.h[Sous LINUX Mandrake] prob de compilation
virtual ~Destructeur ( )[C/Linux]Question sur les pthread
LINUX to WINDOWS[C++]passage linux -> windows
Plus de sujets relatifs à : Virtual protect sous linux


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)