Précédent   Forum des professionnels en informatique > Autres langages > Assembleur
Assembleur Forum d'entraide Assembleur. Avant de poster -> F.A.Q Assembleur Tutoriels Assembleur
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/03/2011, 02h28   #1
Futur Membre du Club
 
Inscription : mars 2010
Messages : 28
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 28
Points : 15
Points : 15
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
microhft est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/03/2011, 09h48   #2
Membre confirmé
 
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 48
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 : 48
Points : 275
Points : 275
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.
Chevalier au taureau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 12h53   #3
Membre habitué
 
Inscription : juin 2002
Messages : 93
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juin 2002
Messages : 93
Points : 138
Points : 138
Bonjour.

Un site intéressant sur ce sujet : http://www.ghostsinthestack.org/
Prof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 01h00   #4
Membre expérimenté
 
Avatar de edfed
 
être humain
Inscription : décembre 2007
Messages : 465
Détails du profil
Informations professionnelles :
Activité : être humain

Informations forums :
Inscription : décembre 2007
Messages : 465
Points : 582
Points : 582
à 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.
__________________
http://www.pending.me.uk/nmc/bla_1356091200.png
Vivement 21/12/2012
edfed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 17h15   #5
 
Homme
Inscription : 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...
identifiant2 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/10/2011, 15h48   #6
Membre actif
 
Inscription : octobre 2005
Messages : 169
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 169
Points : 168
Points : 168
Citation:
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.
ToutEnMasm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 17h29   #7
Membre expérimenté
 
Avatar de edfed
 
être humain
Inscription : décembre 2007
Messages : 465
Détails du profil
Informations professionnelles :
Activité : être humain

Informations forums :
Inscription : décembre 2007
Messages : 465
Points : 582
Points : 582
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.
__________________
http://www.pending.me.uk/nmc/bla_1356091200.png
Vivement 21/12/2012
edfed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 05h09   #8
Expert Confirmé Sénior
 
Développeur informatique
Inscription : novembre 2006
Messages : 4 215
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 : 4 215
Points : 5 291
Points : 5 291
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
__________________
Alea Jacta Est
Mat.M est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 05h14   #9
Expert Confirmé Sénior
 
Développeur informatique
Inscription : novembre 2006
Messages : 4 215
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 : 4 215
Points : 5 291
Points : 5 291
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...
__________________
Alea Jacta Est
Mat.M est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h13.


 
 
 
 
Partenaires

Hébergement Web