|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Instruction SYSENTER et WRMSR ??? [ Archives / Autres asm ] (toto8966)
Informations & options pour cette discussion
lundi 25 août 2003 à 17:11:31 |
Instruction SYSENTER et WRMSR ???

toto8966
|
Utiliser l'instruction Pentium SYSENTER pour exécuter du code en Ring0 au départ de Ring3, c'est normalement possible ! Seulement, y'a un problème. Quand on exécute SYSENTER, le processeur va chercher les parmètres d'appel de l'instruction dans un des registres MSR. Pour pouvoir initialiser un registre MSR, on utilise l'instruction WRMSR (write MSR). Mais pas d'bol, WRMSR ne peut etre utilisée qu'en Ring0 !!!!! Un truc de dingue quoi ? Qui a trouvé le moyen de se servir de SYSENTER ... et surtout qui a réussi a utiliser l'instruction WRMSR au départ du Ring3 ... ou plus simplement, qui a réussi a initialiser un registre MSR au départ du mode utilisateur, quel que soit la facon ? Oui, ... c'est une question a 1000 balles ! suis d'accord ! hi amicalement a tous !
|
|
|
lundi 25 août 2003 à 20:44:25 |
Re : Instruction SYSENTER et WRMSR ???

Vermifuge
|
Les instructions processeur tel que SysEnter sont faites pour assurer un minimum de sécurité, je doute fort qu'il soit possible de passer en ring0 facilement. Evidement, reste les failles du kernel...( très rares sous nux malheuresement ).
Vermifuge http://codingskillz.free.fr/
|
|
|
lundi 25 août 2003 à 21:15:27 |
Re : Instruction SYSENTER et WRMSR ???

toto8966
|
Merci de m'avoir répondu, mais ta réponse bien que bien sympathique ne m'apporte pas grand chose. L'instruction SYSENTER est concue pour permettre l'acces au niveau Ring0 depuis une application tournant en Ring3. Il s'agit "presque" d'un "callgate" mais optimisé vitesse. La doc Intel présente en tout cas cette instruction de cette façon. Ma question était, ... pour utiliser SYSENTER (reconnue par l'assembleur en ligne de Delphi, au passage ...) il faut charger les bonnes valeurs dans 3 registres MSR. Comment faire (par quelle méthode) puisque l'instruction WRMSR (write MSR) est une instruction inaccessible en Ring3. Il y a peut etre une autre méthode d'atteindre les registres MSR, ou un moyen de débloquer WRMSR. Tout grand merci de ta réponse Vermifuge. Si tu sais qq chose de plus précis, n'hésite pas ! amicalement
------------------------------- Réponse au message : -------------------------------
> Les instructions processeur tel que SysEnter sont faites pour assurer un minimum de sécurité, je doute fort qu'il soit possible de passer en ring0 facilement. Evidement, reste les failles du kernel...( très rares sous nux malheuresement ). > > Vermifuge > http://codingskillz.free.fr/
|
|
|
mardi 26 août 2003 à 16:31:59 |
Re : Instruction SYSENTER et WRMSR ???

Vermifuge
|
Désolé, je n'ai jamais étudié ces commandes, mais je viens de coir qu'une source à été ajoutée sur le site qui devrait de permettre de réaliser ton souhait. Cependant, quand je serais un peut moins occupé qu'en ce moment, je jetterais un coup d'oeuil dans les docs intel pour voir ce que je peux trouver. Je te recontacterais à ce moment là.
@+ Vermifuge
|
|
|
mardi 26 août 2003 à 16:50:28 |
Re : Instruction SYSENTER et WRMSR ???

toto8966
|
Merci de ta réponse. Cherche pas ! L'instruction SYSENTER n'est pas utilisable pour passer simplement en Ring0 depuis le mode utilisateur Ring3. En fait, avant d'utiliser SYSENTER, il faut initialiser 3 registres MSR du processeurs. La seule instruction capable de le faire est WRMSR (Write to MSR). Et bein, WRMSR est uniquement accessible en Ring0 !!! pour faire rapide (très), SYSENTER permet effectivement de passer de Ring3 en Ring0, a condition que l'os soit au courant et te l'autorise avant. Tu parles d'une solution ! hi ! J'ai contacté " Pierre Maurette " par mail a ce sujet, il parle de l'instruction SYSENTER dans son bouquin "assembleur" ... il m'a expliqué ! Au passage, Pierre Maurette, super gars et super bouquin. Oui, la source de l'ami Chris pour passer en Ring0 via le procédé du CallGate .. j'ai vu ... je l'ai contacté ! pas mal du tout ! Je suis en train d'essayer de la transcrire pour la faire tourner sous l'assembleur en ligne Basm de Delphi ... mon but final ! Avoir une procédure en delphi (a laquelle je passe l'adresse de "mon-code", capable de faire tourner "mon-code" en Ring0 ... et retour ensuite Ring3 ! Le CallGate, je connaissais ... je cherchais la d'sus, mais Chris la fait ! Bravo Chris .. Bon, te laisse, encore merci a toi !
------------------------------- Réponse au message : -------------------------------
> Désolé, je n'ai jamais étudié ces commandes, mais je viens de coir qu'une source à été ajoutée sur le site qui devrait de permettre de réaliser ton souhait. Cependant, quand je serais un peut moins occupé qu'en ce moment, je jetterais un coup d'oeuil dans les docs intel pour voir ce que je peux trouver. Je te recontacterais à ce moment là. > > @+ > Vermifuge
|
|
|
vendredi 29 août 2003 à 00:22:17 |
Re : Instruction SYSENTER et WRMSR ???

CoreBreaker
|
Je savais qu'un callgate pouvait le faire mais à condition que le segment de code qui exécute le callgate soit un segment dit docile (flag de type dans le descripteur de segment) mais l'OS ne mets pas ce flag. Ce bout de code pour passer en Ring0 m'intéresse. Pourrais-tu me le passer STP ou un lien pour l'obtenir. Merci. Core Breaker 
|
|
|
vendredi 29 août 2003 à 00:28:22 |
Re : Instruction SYSENTER et WRMSR ???

toto8966
|
va voir dans les dernières sources déposées. Ring0 sous XP de Chrishka .. en MASM je suis en train d'essayer d'implémenter ca en BASM + DELPHI ... me faudra un peu de temps ! Moi, j'en étais tjs a la théorie ... mais sur base de cette théorie (via forum), Chrishka a été plus loin ! bravo a lui ! ------------------------------- Réponse au message : ------------------------------- > Je savais qu'un callgate pouvait le faire mais à condition que le segment de code qui exécute le callgate soit un segment dit docile (flag de type dans le descripteur de segment) mais l'OS ne mets pas ce flag. > > Ce bout de code pour passer en Ring0 m'intéresse. Pourrais-tu me le passer STP ou un lien pour l'obtenir. > > Merci. > > Core Breaker  > >
|
|
|
mercredi 3 septembre 2003 à 00:38:55 |
Re : Instruction SYSENTER et WRMSR ???

CoreBreaker
|
Je n'ai pas vu SYSENTER Mais en fait Chrishka utilises des API. Pour SYSENTER, je vais me documenter chez Dr Doobs. Core Breaker 
|
|
|
Cette discussion est classé dans : instruction, départ, sysenter, wrmsr, msr
Répondre à ce message
Sujets en rapport avec ce message
instruction MID(vb) en ASM [ par flagyg ]
Bonjour,J'essaye de traduire des codes que j'ai fait en vb en asm. mais je n'arrive pas à programmer la fonction mid.Qqn pourrait me la programmer svp
Instructions ASM [ par BarthOlivier ]
Salut a tous.Je voudrais savoir où je pourrais trouver tout le jeux d'instruction disponible pour un processeur recent (type P3 ou P4 par exemple).Est
Besoin d'explications sur les flags [ par teknocrack ]
salut à tous,je programme habituellement en VB, donc je n'ai pas vraiment la notion de flags, même si en réalité on peut comparer un IF avec un flags-
pb avec l'instruction loop ( bla..ro de 1ere) ! [ par vinc1008881 ]
bonjour tlm voila mon pb ( pour moi s'en n'est un ..) : a:mov ecx, 00000000hloop aet le pb c 'est que le b
Faire des conditions sans instruction J* [ par grandvizir ]
Bonjour,Quand je fais un programme Delphi, je dois souvent faire des IF : if MaVariable then {quelque chose};<
probleme instruction assembleur [ par kadwin ]
bonsoir!! j'ai un petit probleme de comprehension!! si eax = 1001101010 (en binaire) je fais ensuite l'instruction: shl eax, 7 quelle sera la vale
chronomètre radiotélécommandé en langage C [ par afiach ]
Bonjour,Je voudrais chronométrer une course de dragsters, je vous explique le principe..Au départ de la course: je dois donner la top départ moyennant
Instruction test [ par RM50Man ]
Bonjour, question qui pourrait paraitre debile, mais ca sert a quoi de faire par ex:test edx, edxjnz suivantLe test sera toujours égal.Mais aussi, est
Comment faire un sleep en assembleur MIPS ? [ par Yakurena ]
Bonsoir, J'aimerais faire un programme en assembleur MIPS permettant de synchroniser la saisie de caractères au clavier par l'utilisateur et leur affi
de l'Aide.....SVP [ par john491 ]
Bonsoir tout le monde et un grand merci pour tous ceux qui participent a ce forum et nous aident a resoudre nos problèmes.J'ai le programme suivant :
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|