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

Assembleur Discussion :

Extraire instructions d'un WinPE 32Bit


Sujet :

Assembleur

  1. #1
    Membre chevronné
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 588
    Points : 1 770
    Points
    1 770
    Billets dans le blog
    1
    Par défaut Extraire instructions d'un WinPE 32Bit
    Bonjour
    j'ai une question très importante

    Comment faire pour extraire des instructions d'un exécutable Win32 en FreeBasic (ou un ressemblant comme Visual basic) ?

    Pourquoi? pour mon projet Kernel, je voudrais intégrer le graphique des applications Windows sur mon noyau.

    Je pense que je peux créer des API «virtuels» pour cette application de WinPE

    par exemple
    Si ma demande de WinPE veulent créer une fenêtre avec un bouton, comment je peux savoir? (par GDI)

    Merci
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    Salut,

    J'ai un peu de mal à te comprendre.
    Tu l'as fini ton kernel ?
    D'après ce que je crois comprendre, tu souhaites pouvoir executer des binaires au format PE à partir d'un kernel tier, en l'occurence le tiens, c'est bien ça ?

    Si c'est bien le cas, c'est loin d'être simple.
    Pour extraire des instructions, tu peux le faire avec un debugger, ligne par ligne, ou via un objdump, ou "ida free" qui est plutôt pratique pour ce genre de chose.
    Mais c'est également loin d'être simple.
    Une function est liée avec d'autres fonctions, qui sont liées à d'autres fonctions, etc, etc, etc...
    Tout est lié ensemble, donc tu ne peux pas en prendre juste une.
    Là avec ce que tu veux faire, tu partirais dans de l'émulation, alors bon courage (cf:wine) ^

    edit:
    J'ai regardé tes précédants messages, donc apparemment tu parles d'un kernel tout fait, le "cpcdos".
    De ce cas il faut que tu regardes du côté de la doc de ce kernel.
    Mais j'imagine qu'il doit y avoir une solution simple pour faire un "MessageBoxA" ton kernel, au lieu d'un "MessageBoxA" kernel win32. Peut être au niveau des import du PE.
    Il doit y avoir une dll liée à ce kernel et qui se charge automatiquement, de la même façon que le fait "kernel32.dll" pour le kernel d'origine.

    edit2:
    Tout est clairement expliqué dans la doc.
    Pour exécuter un programme WIN32, il suffit d'indiquer le paramètre suivant :
    Exemple :
    shell/ /win32 {fichier exécutable}
    A prevoir que le Kernel n'est pas en mesure d'exécuter des programme ayant une interface
    graphique Windows
    Mais compatible uniquement en format Console pour le moment
    Vous pourrez exécuter des programme ty
    source: http://cpcdos.e-monsite.com/medias/files/cpcdosc-15.pdf

    Donc apparemment ce n'est pas possible.
    a+

  3. #3
    Membre chevronné
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 588
    Points : 1 770
    Points
    1 770
    Billets dans le blog
    1
    Par défaut
    Merci de votre réponse !

    Donc si je comprend bien, il faut que j'utilise un debogueur, le quelle vous me conseillerez pour une appli en VB5 ?

    J'ai déjà visualisé une application au debogage c'est un vrais bordel je ne vois pas où sont les évènements et les imports

    Je suis Favier Sébastien je suis justement le créateur du noyau Cpcdos, je pose cette question c'est pour ajouter cette fonctionnalité sur mon noyau en partant de zéro
    Car j'utilise une application externe pour exécuter du Win32

    Et non je n'est pas finis mon kernel je suis qu'en Alpha (depuis Juillet 2011)

    Oui en gros je souhaite exécuter des binaire format PE

    Comment récupérer les instruction ? ( à partir de VB par exemple ) comment je peux "détecter" ce «MessageBoxA» et ses paramètres dans cette application.. afin que je le traduise POUR Cpcdos ?

    merci
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  4. #4
    Membre chevronné
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 588
    Points : 1 770
    Points
    1 770
    Billets dans le blog
    1
    Par défaut
    J'arrive à voir un peux près comment traduire les information "assembleur"

    Dans le debogueur je vois

    Addresse
    0040111F

    en Hexadécimale dans le fichier
    43 6F 6D 6D 61 6E 64 31 00

    Commande traduite
    ASCII "Command1",0
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    Perso le meilleur debugger que j'ai pu tester pour Win32 c'est Immunity debugger, qui est un portage d'Ollydbg, mais la gui d'Olly est moche.

    Pas besoin de t'expliquer, c'est un debugger très intuitif.
    Fouille dedans et tu trouveras à peu près tout ce que tu veux.
    Pour les imports il me semble que c'est "view names" (je ne l'ai pas sous la main, il est sous ma vm qui est éteinte).

    Tu lances un executable à partir du debugger.
    En temps normal, il breakpoint tout seul sur le point d'entrée du programme. Si ce n'est pas le cas, tu fais une fois F9.

    Puis tu fait du "in" avec F7, ou du "out" avec F8.

    Par exemple, avec F7, si tu arrives sur un "call", le debugger va suivre ce call, alors qu'avec F8 il va passer outre (donc executer tout ce "call" mais sans te le faire voir).
    Avec F9, tu executes le programme. A ne pas utiliser sans avoir breakpointer avec F2 par exemple, sinon, bah le programme va se terminer tout simplement ^
    Avec F4 tu executes jusqu'à la ligne sélectionnée (ça c'est génial car pas besoin de breakpointer).
    Et "new origin", qui permet poursuivre (ou même démarrer) le programme à l'endroit que tu souhaite. Donc utile pour sauter des instructions, voir des blocs de code.

    Tu peux aussi modifier les registres, la pile et les instructions à la volée. Et aussi les droits de page. Un peu de tout quoi.

    Concernant vb, je ne connais pas ce language, mais si ça produit un PE, alors c'est valable pour tout ce que je t'ai dit ci-dessus.
    Si tu veux suivre la fonction MessageBoxA, le plus simple c'est de créer un PE qui est censé executer cette fonction, et suivre son execution au debugger.

    Je n'ai jamais fait ce que tu cherches à faire (récupérer du code d'une fonction Win32), mais si je voudrais le faire, c'est comme ça que je procéderais. Ca te permet de bien suivre l'execution de la fonction, bien voir ce qui est empilé, transmis aux autres fonctions.

    a+

  6. #6
    Membre chevronné
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 588
    Points : 1 770
    Points
    1 770
    Billets dans le blog
    1
    Par défaut
    D'accord merci beaucoup vous m'avez éclairé sur ce que je recherchait !!

    après dernière question
    quand j'ouvrirais mon fichier .exe avec nimporte qu'elle langage

    quand je lis mon fichier, en retour j'aurais des codes hexadécimales
    comment je peux savoir à quelle commande il correspond ?
    Par exemple, si A4 = JMP, 12 = MOV, D9 = CALL ? avec leurs paramètres AX, BX , EAX etc...

    Existe t-il un site où sont référencé toutes les commandes ? (en hexa)

    Merci
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    La traduction en instructions est directement écrite à coté du code hexa.
    C'est le principe de ce genre d'outil, sinon ce serait illisible sans référencement du code comme tu le dis.

Discussions similaires

  1. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h17
  2. [Crystal Report][VB6] instruction PrintReport
    Par yyyeeeaaahhh dans le forum SDK
    Réponses: 4
    Dernier message: 29/07/2002, 14h58
  3. [TASM] Problème concernant l'instruction LGDT
    Par Ninkosen dans le forum Assembleur
    Réponses: 3
    Dernier message: 15/07/2002, 19h09
  4. Réponses: 2
    Dernier message: 10/07/2002, 11h51
  5. Réponses: 2
    Dernier message: 30/05/2002, 10h19

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