NewbieContest

Divers => Informatique => Discussion démarrée par: z0biw@n le 18 Janvier 2007 à 22:25:09



Titre: MBR - code source assembleur
Posté par: z0biw@n 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


Titre: MBR - code source assembleur
Posté par: Invit 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 :lol:)

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...


Titre: MBR - code source assembleur
Posté par: Zmx 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 ...


Titre: MBR - code source assembleur
Posté par: Nebelmann 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...


Titre: MBR - code source assembleur
Posté par: z0biw@n 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 !


Titre: MBR - code source assembleur
Posté par: Invit 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 (http://www.google.fr/) z0biw@n
- GNU Grub (http://ftp://alpha.gnu.org/gnu/grub/)
- Lilo (http://lilo.go.dyndns.org/) (le projet est sur Freshmeat, par contre ça m'a halluciné de voir un dyndns pour un projet comme Lilo :lol:)

Enjoy & have fun :wink:


Titre: MBR - code source assembleur
Posté par: neoflo 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 :P

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.