• STATISTIQUES
  • Il y a eu un total de 2 membres et 5675 visiteurs sur le site dans les dernières 24h pour un total de 5 677 personnes!


    1 membre s'est inscrit dans les dernières 24h!


    Membres: 2 399
    Discussions: 3 580
    Messages: 32 820
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] InfoMirmo
    Apprentissage de l'informatique par l'intermédiaire de challenges de sécurité. Venez app...
    Hacking
    [EN] Hack This Site
    Hack This Site est considéré comme un réel terrain d'entraînement légal pour le...
    Hacking
    [EN] Gekko
    Site de challenge présenter sous la forme d'une quête. Vous êtes un agent secret qui répond sous le nom...
    Challenges
    [EN] Reddit
    Subreddit dédié à la sécurité informatique.
    Hacking
    [FR] Comment ca marche
     Gratuit et accessible à tous, ce site de communauté permet de se dépanner, se faire aider ...
    Webmaster
    [EN] Rosecode
    Programming: 36, Math: 29, Probability: 5, Sequence: 7, Crypto: 4, Brainf**k: 13, TimeRace: 4, Hack: 9
    Challenges
    [EN] Dare your mind
    JavaScript: 6, Crypto: 44, Stegano: 36, Logic: 13, Special: 27, Science: 11, Realistic: 7, Programming: 10, Crack It: 6,...
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
remote debugging entre qemu et gdb
13-12-2013, 18h23
Message : #1
gruik Hors ligne
gouteur de savon
*



Messages : 757
Sujets : 44
Points: 482
Inscription : Oct 2012
remote debugging entre qemu et gdb
un post rapide, comme on est plus ou moins sur le bootloader actullement, s'est posé pour ma part le problème de debugger le bootloader que je codais

le principe est simple, on lance notre bootloader avec qemu et l'option qui va bien pour le mettre en serveur, dans une autre fenêtre on se connecte sur le qemu avec gdb comme client

vous remarquerez au passage les ".exe" qui trainent, j'ai fait la manip sous windows avec un gdb dans cygwin ça marche nickel...

Code BASH :
$ nasm -f bin bootloader.asm
$ qemu-system-i386.exe -boot a -fda bootloader -S -gdb tcp::1234,ipv4


l'option -S dit à qemu de freezer le cpu et bloque donc l'exécution (ça nous arrange)
l'option -gdb tcp::1234 spécifie qu'on attend une connexion de gdb (comme c'est bien fait la vie) en tcp sur le port 1234, notez qu'on pourrait remplacer directement ce fatras par -s, sauf que perso je lui rajoute ,ipv4 pour forcer IPv4 au lieu d'IPv6 sous windows

coté gdb dans l'autre fenêtre :
Code BASH :
$ gdb -q
(gdb) set architecture i8086
...
The target architecture is assumed to be i8086
(gdb) set disassembly-flavor intel
(gdb) target remote localhost:1234
Remote debugging using localhost:1234
0x0000fff0 in ?? ()
(gdb) b *0x7c00
Breakpoint 1 at 0x7c00
(gdb) c
Continuing.
Breakpoint 1, 0x00007c00 in ?? ()
(gdb) info registers $bx $cx $cs $eip
bx             0x0      0
cx             0x0      0
cs             0x0      0
eip            0x7c00   0x7c00
(gdb) x/hx $cs*16+$eip+510
0x7dfe: 0xaa55

and voilà Smile vous aurez noté aussi qu'on appelle les registres par leurs petits noms (16bits comme on est en mode réel) à l'exception de IP qui reste $eip (mais qui est bien en 16bits malgré tout), ça reste un moindre mal

si ça peut servir...
Avant donc que d'écrire, apprenez à penser.
Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure.
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément.
(Nicolas Boileau, L'Art poétique)
+1 (7) -1 (1) Répondre
13-12-2013, 18h43
Message : #2
is001_fred Hors ligne
Membre actif
*



Messages : 52
Sujets : 4
Points: 29
Inscription : Oct 2011
RE: remote debugging entre qemu et gdb
Merci beaucoup gruik, c'est très utile, pour ne pas dire carrément essentiel ! :-)
+1 (1) -1 (0) Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut