Virtual protect sous linux - C - Programmation
Marsh Posté le 11-01-2005 à 14:37:27
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)
Marsh Posté le 11-01-2005 à 14:38:18
exemple tiré du man :
Code :
|
Marsh Posté le 11-01-2005 à 14:39:52
ca te donne quoi un "apropos protect" ?
Marsh Posté le 11-01-2005 à 14:42:58
Lam's a écrit : ca te donne quoi un "apropos protect" ? |
ca va, ta schyzo ?
(connaissais pas apropos, moi et les OS datant de noé on est pas trop copain)
Marsh Posté le 11-01-2005 à 14:51:19
et l'equivalent de virtualalloc c'est quoi ?
pour ton apropos :
mprotect (2) - control allowable accesses to a region of memory
Marsh Posté le 11-01-2005 à 14:56:11
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 ?
Marsh Posté le 11-01-2005 à 14:59:29
msdn virtualalloc
(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
Marsh Posté le 11-01-2005 à 15:02:55
chrisbk a écrit : msdn virtualalloc |
Putain, commence pas à foutre une ambience de merde sur ce topic...
Marsh Posté le 11-01-2005 à 15:20:03
chrisbk a écrit : bonjour, |
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.
Marsh Posté le 11-01-2005 à 21:21:38
chrisbk a écrit : RePoNdEz A lA QuEsTiOn !§!§! |
J'ignore comment ces farceurs de collègues 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.
Marsh Posté le 11-01-2005 à 21:24:55
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)
Marsh Posté le 11-01-2005 à 21:36:11
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
2 - changer de langage.
3 - fesser le programmeur de A et lui faire expier ses méfaits.
Marsh Posté le 11-01-2005 à 21:51:39
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
Marsh Posté le 11-01-2005 à 22:10:07
ça peut se faire ...
Mais je pense qu'un débogueur, ou/et un cerveau humain branché sont une meilleure alternative !
Marsh Posté le 11-01-2005 à 22:20:03
Pour le cerveau humain branché, je dis direct non, et ta remarque est insultante envers mes collegues . 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
bref
Marsh Posté le 11-01-2005 à 22:22:32
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)
Marsh Posté le 11-01-2005 à 22:34:11
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.
Marsh Posté le 11-01-2005 à 22:35:30
bin chui d'accord pour le debuggueur, hein, le pb, c'est le debuggueur en lui meme, justement (je fais de frequente crise de nostalgie de mon VS adoré)
Marsh Posté le 11-01-2005 à 22:49:18
c'est dur, c'est dur
.
.
.
.
.
.
.
.
.
.
.
.
paske quand meme, le debuggueur a vs, c'est le pied comparé a cette me^@#]#^#^#^]#
.
.
.
.
.
.
.
.
.
.
j'ai resisté
Marsh Posté le 11-01-2005 à 23:03:02
sinon pq mprotect ne satisfait pas tes vils désires ?
Marsh Posté le 11-01-2005 à 23:05:14
push a écrit : sinon pq mprotect ne satisfait pas tes vils désires ? |
sisi, il me caresse le sexe la
par contre il semble preferable de l'utilisation en conjonction avec valloc plutot qu'un bete malloc
Marsh Posté le 11-01-2005 à 14:26:22
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