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 :

désassembler un matériel


Sujet :

Assembleur

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 28
    Points : 29
    Points
    29
    Par défaut désassembler un matériel
    Bonjour,

    Avant d'expliquer le sujet de mon post il faut préciser quelque chose pour ceux qui ont la gâchette facile: C'est uniquement dans le but d'APPRENDRE, je ne veux nuire à personne.

    Voilà, je voudrai commencer à apprendre le Hardware Hacking: calculatrices, téléphones, consoles.... En voyant d'autres le faire pour l'Iphone ou la PS3 par exemple, je me suis demandé comment peuvent ils faire ça? En effet, je sais qu'en général cela passe par l'exploitation de failles dans les programmes qui tournent sur le matériel en question (buffer overflow ou autre). Le problème c'est que je n'arrive pas à comprendre comment cela se passe en pratique sur un matériel sur lequel on a aucun contrôle. Exemple: Je vous donne un téléphone qui a une architecture proche de celle d'un PPC, vous pouvez surfer sur internet avec, et je vous dis qu'il y a une faille BO dans la librairie de gestion des images TIFF. Vous décidez alors de créer une image pour l'exploiter, vous mettez ensuite cette image sur un site internet avant de la télécharger pour lancer votre shell. Vu de cette façon ca a l'air simple, mais pour moi ca ne l'est pas du tout, en effet pour comprendre comment marche un matériel, il me faut un débogueur, un désassembleur,.... et tout ca sur le matériel que je veux étudier. Je suis confus, je ne sais plus comment expliquer ce que je veux, mais en gros voilà: je voudrai commencer à m'amuser moi aussi comme ils le font , sauf que je ne sais pas du tout par quoi commencer, à chaque fois que je commence à lire quelque chose, je découvre autre chose et je n'arrête pas de sauter de l'un à l'autre, dans le désordre, mes derniers pensées et actions de ces derniers temps:

    Apprendre l'assembleur et l'architecture d'un ordi est obligatoire, pour ça il faut programmer un OS, et puis non, programmer juste un driver, et puis non, il faut programmer un OS sur une calculatrice et non pas sur ordi, et puis zut, je ne sais pas quoi faire, ah j'ai compris, il faut aller chercher sur internet comment ont fait les autres, et essayer de reproduire ça, d'accord mais pour ça, il faut apprendre l'assembleur et bien comprendre la gestion de la mémoire.... après quelques semaines, voilà maintenant je commence à gérer un peu en assembleur, quelle est l'étape suivante, un OS, un driver, attaquer directement un matériel... téléphone par exemple.... non trop dur, je débute encore... une calculatrice alors... $$$ je risque de ne pas trouver beaucoup d'informations la dessus...Ah peut être qu'il ne faut pas chercher à comprendre les matériels des autres mais en faire un moi même et le programmer, un robot par exemple mais... j'y connais rien en robots moi rggghhhh je ne sais pas. Bon il est 2h13 du matin, ça fait un mois que je tourne en rond et pas d'idées:

    Ah... je viens d'avoir ma meilleure idée: Aller demander sur développez.com, ils ont surement bien plus de recul que moi, et je vais sûrement trouver quelqu'un pour me montrer le chemin.

    Un mot sur moi: Je fais des maths et je programme en langages haut niveau (C,C++ principalement) depuis 10 ans au moins, et j'utilise Linux depuis autant de temps, cela ne veut pas dire que je suis devenu un dieu en informatique, je me suis rendu compte que même après 10 ans d'utilisation journalière de Linux, je ne sais toujours rien faire à part les trucs de base (exemple, je programme depuis le début sous emacs, et je n'avais encore jamais utilisé gdb avant cette année pour le simple fait que je débuggais sans débogueur, pour voir le contenu d'une variable... je l'affichais sur l'écran , le pire c'est que cela ne m'a jamais empéché de travailler sur des projets assez conséquents).

    Bon vous m'avez compris j'espère, je sais que ce n'est pas très clair, mais c'est très représentatif de ce qui se passe dans mon cerveau.

    Merci beaucoup de m'avoir lu

  2. #2
    Membre averti

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 82
    Points : 341
    Points
    341
    Par défaut
    Je ne fais pas de sécurité informatique en général, mais si c'était le cas, j'irai me renseigner sur des bogues connus et rudement éprouvés, tels que l'injection SQL et le débordement de pile. Les explications sur ces bogues montrent que cela ne dépend que peu de l'architecture et sont une première étape pour comprendre comment fonctionne le "stéganocode" embarqué dans une image...

    Après manipulation d'exemples de débordement de pile, ça devrait être beaucoup plus clair.

  3. #3
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Juin 2002
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2002
    Messages : 239
    Points : 567
    Points
    567
    Par défaut
    Bonjour.

    Un site intéressant sur ce sujet : http://www.ghostsinthestack.org/

  4. #4
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    à ton niveau, le première faille que tu peux essayer d'exploiter, c'est sous Linux.

    je ne sais pas quelles failles existent sus ce système, mais il y en a, j'en suis sur, et beaucoup plus que l'on ne peut l'imaginer.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Salut frero
    Je suis comme toi je passe toujours d'une idée à l'autre sans jamais m'arreter je n'arrive pas à me concentrer. Comme toi j'utilise un affichage à l'écran pour debuguer he houai ca marche aussi ca me rappel que certain on inventé un stylo qui écrit dans l'espace qui a du couter très cher mais peut etre rapporter également tandis que d'autre on utiliser un crayon a papier d'où l'espression time is money. Si tu n'aime pas l'argent tu aura du temps à toi car pour gagner de l'argent il faut avoir du temps à perdre...

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 193
    Points : 277
    Points
    277
    Par défaut
    Avant d'expliquer le sujet de mon post il faut préciser quelque chose pour ceux qui ont la gâchette facile: C'est uniquement dans le but d'APPRENDRE, je ne veux nuire à personne.
    Tu devrais expliquer cela aux policiers qui n'ont surement pas manqué de lire ton message.
    En gros,ça commence mal.

  7. #7
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    meuh non toutenasm, les policiers n'ont pas encore lu ce post.
    pour ça, faudrait que notre user fasse une grosse betise sur le net, et qu'en retour, la police s'amuse à retracer toute son activité pour mieu monter un dossier pour le juge.

    en dehors de ça, il est autorisé de bricoler en amateur pour soi, meme dans le monde numerique. du moment que ça n'agit pas sur le monde reel, on te remarquera pas.

    pour ce qui est de par quoi commencer.. je dirais par là où u te sens d'attaquer. on à tous une manière differente de penser, et d'aborder un probleme.
    l'apprentissage est un probleme comme un autre, dont la solution depend du contexte, et le contexte, c'est l'eleve.

    selon les bases que tu as dejà, tu peut attaquer par le front que tu connais.

    en l'occurence, si tu à demarré en C, tu aurais tout à gagner à commencer par coder une petite DLL en asm, et l'importer et l'appeler depuis ton code C. puis limiter de plus en plus l'utilisation du C, jusqu'à ce qu'il n'y en ai plus.
    mais comme l'asm n'est pas une solution viable pour les entreprises, il te faudra par la suite appliquer tout ce que l'asm t'a appris au C.
    c'est à dire, commencer à utiliser les operateurs logiques, et faire des vraies maths pour optimiser ton code C.

    car avant de penser que l'asm est plus rapide que le C, il faut preciser sur quel point.

    si on prend un codeur C qui fait ça dans les regles de l'art, et un codeur asm qui fait tout sauf du bon code, le C era plus rapide.
    si on prend un codeur C expert, et un autre codeur ASM expert, le code sera plus performant sur ASM, mais attention aussi le nombre de lignes de code comparé au C, totu ça pour quelques microsecondes de gagné, on se tappe une semaine de plus d'ecriture de code, car evidement, ecrire de l'asm est plus long que d'ecrire du C. ce qui est à l'origine le but du C, ecrire plus vite qu'en ASM.

    donc, première mission, ecrire une fonction en ASM, la mettre sous forme de DLL, et l'importer dans un code C. c'est possible, meme très facile. un indice, le site de fasm propose un exemple de DLL dans la section examples. une lecture du code montre à quel point il est simple de creer une DLL.

  8. #8
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par microhft Voir le message
    Bonjour,

    Voilà, je voudrai commencer à apprendre le Hardware Hacking: calculatrices, téléphones, consoles....
    ce que tu veux faire demande beaucoup de temps mais c'est faisable.
    Quoiqu'un peu ardu tout de même.

    1 Tu parles de PPC de Iphone etc... le gros problème avec les systèmes informatiques et tout intégrés c"est que les CPU sont différents ; tu as des Motorola,des Intel..
    ceci dit l'architecture d'un Motorola est très proche d'un Intel.
    Le truc qui est pénible avec Intel c'est le modèle de segmentation en mode réel que je n'ai jamais pigé
    Les CPU Intel fonctionnent en 2 modes : protégé et réel ; en mode protégé c'est multitâche, en mode réel c'est pour l'antique MS-DOS 16 bits.

    Ensuite il faudra que tu comprennes le fonctionnement d'un microcontroleur,un contrôleur d'interruption...
    C'est pas trop compliqué ça fonctionne comme un CPU.
    En fait un CPU malgré les apparences le fonctionnenemt n'est pas si terrible que ça : tu as
    -les registres internes de mémoire,
    -la pile interne d'instruction,
    -les caches niveau 1 , 2 ( prefetch..)
    -l'Arithmetic Logical Unit qui effectue les opérations...
    -la prise pour le grille-pain

    2 il faut que tu apprennes un peu aussi comment fonctionnent différents composant électroniques comme les bascules J-K, T, les multiplexeurs, les portes NAND,NOR
    c'est bien de connaître comment fonctionnent les circuits logiques..

    3 après pour hacker un programme il faut apprendre à le debugguer avec un désassembleur, lire les ports d'entrée/sortie ( en ASM 86 c'est avec IN et OUT)...

    Bref de l'amusement en perspective

  9. #9
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par edfed Voir le message
    c'est à dire, commencer à utiliser les operateurs logiques, et faire des vraies maths pour optimiser ton code C.
    ainsi que les tables/équations de Karnaugh...

Discussions similaires

  1. Ingénierie inverse (désassembler un programme)
    Par slackspace dans le forum Assembleur
    Réponses: 7
    Dernier message: 06/09/2004, 19h52
  2. Clé matérielle - A la recherche d'une adresse ...
    Par B-Pascal dans le forum Ordinateurs
    Réponses: 6
    Dernier message: 09/11/2003, 15h03
  3. Comment désassembler le BIOS
    Par Isis dans le forum Assembleur
    Réponses: 15
    Dernier message: 10/07/2003, 23h15
  4. [Kylix] Développement de pilotes matériels
    Par cmp-france dans le forum EDI
    Réponses: 1
    Dernier message: 26/01/2003, 20h11
  5. Bouquins d'Assembleur - interruptions matérielles
    Par Stef784ever dans le forum x86 16-bits
    Réponses: 4
    Dernier message: 12/11/2002, 21h23

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