Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

voir le langage machine pour un projet:)



  1. #1
    bob le scientifique

    Talking voir le langage machine pour un projet:)


    ------

    bonjour

    j'aimerais savoir comment faire pour voir le langage machine (le code binaire) je programme en java et je voudrais voir le langage machine binaire complet de
    mon programme

    merci de m'aider très cordialement bob le scientifique

    pour ceux qui me connaissent déja
    Correcteur d'orthographe et grammaireflagfrançaisarrowgif
    Aucune erreur détectée!

    bonjour j'aimerais savoir comment faire pour voir le langage machine (le code binaire) je programme en java et je voudrais voir le langage machine binaire complet de mon programme merci de m'aider très cordialement bob le scientifique
    wow première fois que sa m'arrive

    -----

  2. Publicité
  3. #2
    Jack
    Modérateur

    Re : voir le langage machine pour un projet:)

    je ne vois pas trop l’intérêt, surtout pour du code non natif mais bon, un simple éditeur hexadécimal devrait suffire.

  4. #3
    JPL
    Responsable des forums

    Re : voir le langage machine pour un projet:)

    Sans compter que Java n'utilise pas du binaire mais un code intermédiaire qui est interprété à l'exécution par le Java Runtime, raison pour laquelle un même programme Java peut être exécuté sans recompilation sur n'importe quelle machine utilisant n'importe quel OS, sous réserve qu'il existe un Java Runtime pour ce système.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  5. #4
    pm42

    Re : voir le langage machine pour un projet:)

    Pour en rajouter sur les remarques, il faudrait savoir ce qu'on entend par "code machine binaire"...
    Tout est binaire sur un ordinateur et comme déjà dit, Java n'est pas du code machine à strictement parler.

    Si c'est pour voir une suite d'octets, un éditeur hexa fait l'affaire en effet mais l'intérêt est plus que limité.

    Sinon, il y a en standard javap qui avec l'option -c permet de voir le code pour la machine virtuelle. Là aussi, c'est un peu pointu parce qu'il faut connaitre les instructions et le fonctionnement de la dite machine (à pile) pour comprendre.
    Cela n'a pas grand intérêt sauf pour les gens qui écrivent des outils de développement travaillant directement au niveau du bytecode : compilateurs, outils d'instrumentation du bytecode...

    Le plus intéressant est sans doute les différents décompilateurs parce que certains mettent en face le code source reconstitué et le bytecode ce qui aide grandement à la compréhension du fonctionnement du compilateur.
    Mon préféré était jad mais depuis Java 8, j'ai l'impression que ceux qui marchent encore se font rare. Il y a JD-GUi : https://en.wikipedia.org/wiki/Java_Decompiler qui est pas mal.

  6. A voir en vidéo sur Futura
  7. #5
    Jack
    Modérateur

    Re : voir le langage machine pour un projet:)

    Citation Envoyé par JPL Voir le message
    Sans compter que Java n'utilise pas du binaire mais un code intermédiaire qui est interprété à l'exécution par le Java Runtime, raison pour laquelle un même programme Java peut être exécuté sans recompilation sur n'importe quelle machine utilisant n'importe quel OS, sous réserve qu'il existe un Java Runtime pour ce système.
    Tout à fait, c'est pour cela que je parlais de code non natif. Ca reste toutefois du "binaire", même s'il doit être interprété pour être traduit en code natif.

    Je constate que nous sommes tous circonspects sur l'intérêt d'une telle question.

  8. #6
    azad

    Re : voir le langage machine pour un projet:)

    Tout à fait, et le code objet en binaire sera sans doute très difficile à tracer à cause des appels à une multitude des fonctions ou méthode contenues dans des bibliothèques appelées indépendamment de ton code source dans lesquelles tu ne trouveras rien qui pourrait te permettre de te situer par rapport à ce que tu aurais écrit toi-même. Et les compilateurs modernes, qui jouent de façon pas très transparente avec les registres internes du processeur, ne vont certainement pas t'aider à t'y retrouver.
    Fais un test avec un "Hello Word" simpliste et tes espoirs s'envoleront.

  9. Publicité
  10. #7
    pm42

    Re : voir le langage machine pour un projet:)

    Citation Envoyé par azad Voir le message
    Tout à fait, et le code objet en binaire sera sans doute très difficile à tracer à cause des appels à une multitude des fonctions ou méthode contenues dans des bibliothèques appelées indépendamment de ton code source dans lesquelles tu ne trouveras rien qui pourrait te permettre de te situer par rapport à ce que tu aurais écrit toi-même.
    On voit des appels de méthode par leur nom. Aucune différence avec du code source de ce coté là.

    Citation Envoyé par azad Voir le message
    Et les compilateurs modernes, qui jouent de façon pas très transparente avec les registres internes du processeur, ne vont certainement pas t'aider à t'y retrouver.
    Fais un test avec un "Hello Word" simpliste et tes espoirs s'envoleront.
    Vu qu'on parle de Java, ce n'est absolument pas le cas. D'autant plus que le bytecode n'utilise pas de registres...

  11. #8
    azad

    Re : voir le langage machine pour un projet:)

    OK, merci. Je pensais aux problèmes que posent la décompilation en général. Les subtilités de Java, dues sans doute à sa portabilité, m'échappent.

  12. #9
    pm42

    Re : voir le langage machine pour un projet:)

    Citation Envoyé par azad Voir le message
    OK, merci. Je pensais aux problèmes que posent la décompilation en général.
    En général tu as parfaitement raison en effet.

    Citation Envoyé par azad Voir le message
    Les subtilités de Java, dues sans doute à sa portabilité, m'échappent.
    C'est effectivement très différent puisque les programmes arrivent à très bien reconstituer le code source depuis le bytecode.
    Les IDE ont même des modules qui le font de façon transparente ce qui permet de continuer à tracer quand on rentre dans une librairie dont on n'a que le binaire.
    Ce n'est pas parfait mais cela reste impressionnant quand on vient du C/C++.

  13. #10
    bob le scientifique

    Re : voir le langage machine pour un projet:)

    moi je veux juste me faire un portrait genre Matrix de 1 et de 0 de mon code perso

    et je me demande seulement si n'y avais pas de logiciels gratuits qui convertirent en beaux code binaire genre
    Code:
    10010101001
                   1010100101001
    
    
    1010100101
    101001001000000000000000
                           0000000010101001000100100
                            1001001001
                            1010010
    
    1010010000000000101010011111111010101001001
    
    
    101001010001
    10
    0010010001
    
    1001010101010001000100011000001010010101001010010010010010010100
                     101001010010100100101001
                     10101010001
    01010
    
               10010101001010101001
                              10100101001001010
                           101001
                           10010101001010

  14. #11
    Ludwig1

    Re : voir le langage machine pour un projet:)

    Citation Envoyé par azad Voir le message
    OK, merci. Je pensais aux problèmes que posent la décompilation en général. Les subtilités de Java, dues sans doute à sa portabilité, m'échappent.
    Salut,
    C'est un peu moins compliqué qu'on pourrait le croire. Java est une machine virtuelle, son organisation interne est très proche d'une autre machine virtuelle dont je ne citerai pas le nom.
    Java marche selon le même procédé. Il suffit d'écrire le décompilateur avec les " instructions de la machine virtuelle" alors il marche sur toutes les plateformes.

    Exemple:
    si je tourne sur un xx.86 et que je tape la commande SEE suivi du nom de la fonction que je souhaite décompiler j'obtient le code machine pour un XX.86

    Code:
    See Dup
    4037FF   4 # EBP SUB                    83ED04
    403802   EBX 0 [EBP] MOV                895D00
    403805   RET                            C3 ok
    Si je suis sur un ARDUINO, j'obtient le code machine du processeur AT....
    Etc...

    Cordialement

    Ludwig

Discussions similaires

  1. Projet Langage JS
    Par Francois-62 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 24/05/2014, 18h41
  2. sound machine pour projet flipper
    Par goa125 dans le forum Électronique
    Réponses: 4
    Dernier message: 20/07/2011, 19h53
  3. Projet en langage C
    Par lui dans le forum Logiciel - Software - Open Source
    Réponses: 10
    Dernier message: 18/04/2007, 00h05