logo Homepage
+  NewbieContest
|-+  Divers» Informatique» MBR - code source assembleur
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: MBR - code source assembleur  (Lu 4653 fois)
z0biw@n
Profil challenge

Classement : 12584/54345

Néophyte
*
Hors ligne Hors ligne
Messages: 12


Voir le profil
« le: 18 Janvier 2007 à 22:25:09 »

Bonjour à tous !
Voilà par simple curiosité j'ai récupérer le MBR de mon disque dur dans un fichier mbr.dump (avec la commande dd if=/... of=/...).
Quand je visualise le mbr.dump, j'ai des trucs du genre offset 0 1 2 3 ... 0123456789abcdef, normal quoi.

Je voudrais convertir ces instructions binaires en langage assembleur pour analyser le code source du MBR : vous savez quel outil utiliser ?

En éspérant ne pas poster une question déjà faite ( après recherche je n'ai pas trouvé ).

Merci d'avance
Journalisée
Invit
Invité
« #1 le: 19 Janvier 2007 à 07:56:47 »

Hmm.. Avec un désassembleur standard tu auras ta réponse, faut maniper un poil le code, genre tu exportes ton dump sous forme d'un tableau en C que tu castes en fonction par exemple, ensuite tu ouvres un OllyDbg, clic droit, "View" / "Executable file" et tu trouveras ton dump en cherchantun peu, ça revient au même que de désassembler un shellcode par exemple (j'ai fait ça encore dernierement c'est pour ça )

soit le **No Sms** code en C qui va bien :

Code:
char dump[] =  "\x00\x00\x00...";

void main()
{
    void (*func)() = (void (*) ()) dump;
    func();
}
Une autre possibilité ça serait d'aller voir directement dans le code source de ton bootstrap, à savoir Lilo ou Grub par exemple si c'est eux qui se chargent de squatter le MBR.

Il existe sans doute d'autres solutions...
Journalisée
Zmx

Profil challenge

Classement : 73/54345

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 559


Voir le profil WWW
« #2 le: 19 Janvier 2007 à 17:31:03 »

renomme ton .dump en .com ça deviens un executable "valide" (enfin sous msdos, windows risque de geuler un peu) et donc tous a fait decompilable par tous ce qui traine) ollydbg, win32dsm, ida, etc ...
Journalisée

Nebelmann

Profil challenge

Classement : 464/54345

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1357


Voir le profil
« #3 le: 19 Janvier 2007 à 19:55:30 »

Si tu t'intéresses aux MBR, tu peux aller fouiner du côté des sites de développement de kernels/OS, y'a des codes de bootstrap qui traînent...
Journalisée

-- Nebelmann -- Registered linux user #429186
«Si les lecteurs étaient des compilateurs, les posteurs feraient peut-être davantage attention à ce qu'ils écrivent...»
z0biw@n
Profil challenge

Classement : 12584/54345

Néophyte
*
Hors ligne Hors ligne
Messages: 12


Voir le profil
« #4 le: 07 Février 2007 à 20:43:29 »

Merci pour vos répones !
Voici mes réponses/questions idiotes à celles-ci :

BufferBob : Où peut-on chopper le code source du MBR de Grub ou Lilo ?
Zmx : Merci, je vais essayer
Nebelmann : Merci, je vais chercher

A bientôt j'éspère !
Journalisée
Invit
Invité
« #5 le: 07 Février 2007 à 21:37:01 »

Citation de: z0biw@n
BufferBob : Où peut-on chopper le code source du MBR de Grub ou Lilo ?
Suffisait de chercher un tout petit peu sur internet z0biw@n
- GNU Grub
- Lilo (le projet est sur Freshmeat, par contre ça m'a halluciné de voir un dyndns pour un projet comme Lilo )

Enjoy & have fun
Journalisée
neoflo
Profil challenge

Classement : 8123/54345

Membre Complet
***
Hors ligne Hors ligne
Messages: 171


Voir le profil WWW
« #6 le: 11 Février 2007 à 18:46:20 »

Citation de: BufferBob
void main()
{
    void (*func)() = (void (*) ()) dump;
    func();
}
Bon, vous allez dire que je fais mon emmerdeur

En C standard, main a deux prototypes possible :
Code:
int main(void)

ou

int main(int argc, char* argv[])
void main() ne compile si si les paramètres du compilateur sont bien configurés.
Journalisée

Pages: [1]
  Imprimer  
 
Aller à: