IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 16-bits Assembleur Discussion :

Interception des commandes in et out


Sujet :

x86 16-bits Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    KDD
    KDD est déconnecté
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3
    Par défaut Interception des commandes in et out
    Salut à tous.

    J'aimerai savoir comment intercepter les commandes in et out.
    C.A.D que lorsque un prog appelle la commande in ou out ( dialogue avec les ports), je voudrai avoir la main avant que le processeur ne réponde. un peu comme un gestionaire de mémoire en V86 ou l'interception des interruptions. Dans mon cas, je veux intercepter les commandes d'écriture et de lecture dans la CMOS (ports 70h et 71h, il me semble).

    Merci d'avance

    KDD

  2. #2
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Hum...
    Je n'ai jamais vu ça. Ca me semble plutôt ardu.
    Si tu veux contrôler n'importe quel système, je ne sais même pas si c'est faisable.

    Maintenant, si c'est pour contrôler des progs faits maison, il reste la solution de passer par une proc bien de chez toi qui filtrera les entrées/sorties quand on l'appellera.

    A+

  3. #3
    KDD
    KDD est déconnecté
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3
    Par défaut Redemande de l'interception des ports 70h et 71h
    J'explique le pb.
    Je programme (pour le plaisir) pour mon lycée et il exite des progs qui chopent le mot de pass bios en lisant certains octets dans la cmos
    Mon but c'est d'empéché la lecture ou l'écriture dans certaines parties de la cmos d'où l'utilité d'intercepté les ports 70h et 71h
    Dans le bouquin PC programmation système, il dise que c'est faisable sans donné de prog qui le fait. Il donne juste un exemple de prog qui le fait, celui de la gestion de la mémoire haute il me semble : (EMM386.exe sous windows).
    Donc en faite je recherche un exemple de prog qui intercepte des ports.

    Merci à tous ceux qui me répondent et qui m'ont répondu

    A+

  4. #4
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 27
    Par défaut
    Hello

    Je dis ça comme ça, mais déjà, c'est chaud, en plus je vois pas comment surveiller l'accès à la mémoire CMOS. Ca dépend beaucoup de l'os. Quel OS?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 8
    Par défaut
    faut intervenir a un tres bas niveau, au niveau des tss a mon avis.
    Et je pense âs que tu arrives a faire un truc compatible avec l'os.
    Sous un unix-like, peut-etre, mais sous win, ca m'etonnerait.

    bonne chance


  6. #6
    Membre émérite
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Par défaut
    Je trouve cela bizarre que tu puisse intercepter les in et out. Ce sont des instructions assembleur, et il ne me semble pas que cela declanche des interuptions. Lorsque le processeur execute cette instruction, il envoie simplement une valeur sur un port. Il faut peut-etre voir ou est-ce qu'il ecrit (s'il y a un autre controleur, que l'on peut, lui, controler).

    Si quelqu'un trouve, ca m'interesse...

  7. #7
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 27
    Par défaut
    Après reflexion, je pense, comme D[r]eadLock que il est impossible de jouer avec in et out. Je pense que la seule technique c'est un controle mémoire avec les SEH. Et là, je pense que c'est réellement faisable. Je conseille donc d'orienter la recherche sur les IDT, SEH.

    A+

  8. #8
    Candidat au Club
    Inscrit en
    Septembre 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 4
    Par défaut
    Citation Envoyé par yokito
    Après reflexion, je pense, comme D[r]eadLock que il est impossible de jouer avec in et out. Je pense que la seule technique c'est un controle mémoire avec les SEH. Et là, je pense que c'est réellement faisable. Je conseille donc d'orienter la recherche sur les IDT, SEH.
    A+
    Lorsque l'on tente un "in" ou "out" sous NT, cela déclenche une exception.
    Est-ce qu'il n'y aurait pas une histoire de niveau de privilège et de mode protégé ? C'est à cela que tu fais allusion en parlent des SEH ? (ça veut dire quoi d'abord SEH ?)

  9. #9
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 27
    Par défaut
    Hello

    Structured Exception Handling

    A+

  10. #10
    mat.M
    Invité(e)
    Par défaut
    J'aimerai savoir comment intercepter les commandes in et out.
    A mon sens les commandes in et out sont les commandes les plus bas-niveau possible , à moins que quelq'un me prouve le contraire.
    Si vous faites un in numéro de port c'est direct , il n'ya pas d'instructions intermédiaire.
    Faire gaffe avec ce genre d'instruction.

  11. #11
    Invité de passage
    Inscrit en
    Août 2002
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 1
    Par défaut
    A mon avis, c'est possible car l'accès aux ports est controlé par l'OS, via une exception. Il suffirait peut-être de créer une application "ring 0" et ainsi rediriger les interruptions dans une nouvelle routine que tu devras créer et qui empêchera l'accès à tels ou tels ports. Par contre, sur la métode qui permet au système de savoir quel port a essayé d'être accédé, et sur le numéro de l'exception qui sert à ça, je ne sais rien, mais je serais curieux de voir le code.

    Mais, en même temps, je n'ai pas essayé alors je ne garantis rien !

    Le mieux c'est d'étudier le chapitre de "IA-32 Intel ® Architecture Software Developer’s Manual Vol ume 3 : System Programming Guide"

  12. #12
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 65
    Par défaut
    solution: le fer a souder

  13. #13
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 16
    Par défaut Ce sont des instructions du microp
    Citation Envoyé par addicted_to_MFC
    J'aimerai savoir comment intercepter les commandes in et out.
    A mon sens les commandes in et out sont les commandes les plus bas-niveau possible , à moins que quelq'un me prouve le contraire.
    Si vous faites un in numéro de port c'est direct , il n'ya pas d'instructions intermédiaire.
    Il n'y a, en effet, pas de moyen logiciel pour intercepter les instructions d'E/S (inportb, outportb). Ce sont des instructions du processeur qui s'exécutent directement, la seule solutions est matérielle : analyseur logique, émulateur hard, scope etc.
    Par contre si les E/S s'appuient sur des API ou un bios, dans ces cas tu peux détourner les-dites routines.
    Cela répond-il à ta question?

  14. #14
    Membre habitué
    Inscrit en
    Mai 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 15
    Par défaut
    la solution la plus simple pour resoudre ton probleme est de proteger la memoire qui contient les ports en i mettant uniquement des droits pour le niveau 0 ou 1. faudra que que tu modifie la table de descripteur de segment en ring 0 ou 1, et que tu soit sur que dautre soft qui ont des priorité moins elevees nont pas besion, de ces memes interuptions.
    tt ceci implique bien sur de ne pas fonctionner en mode reel, mais en mode protege.

Discussions similaires

  1. Intercepter des commandes DOS
    Par gta126 dans le forum Windows
    Réponses: 5
    Dernier message: 22/09/2007, 23h59
  2. Transmettre des commandes à un process lancé par ksh
    Par jojolepabo dans le forum Linux
    Réponses: 3
    Dernier message: 19/10/2005, 17h05
  3. Réponses: 3
    Dernier message: 24/05/2004, 17h20
  4. [VB6] Interception des évènement Copier/Couper/Coller
    Par youtch dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/10/2002, 18h09
  5. Réponses: 3
    Dernier message: 02/09/2002, 19h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo