[C] Ubuntu, argumenten debuggen met GDB

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Ik heb een eenvoudig c programma wat ik als argument een string meegeef die ik met printf format op de bash prompt. Daar krijg ik een fout op, ik wil dat debuggen met gdb maar het nadeel is: Ik weet niet hoe ik in GDB die 'printf' string moet repliceren.

code:
1
2
3
4
5
6
$./myprog $(printf "\x50\x89\xcd\x02")
(werkt niet)

$gdb -q ./myprog
Reading symbols from /home/user/myprog.c...done.
(gdb)run \x50\x89\xcd\x02


Als het run commando geef zoals hierboven afgebeeld, krijg ik de string "\x50\x89\xcd\x02" als argument, ipv de 4 bytes die ik feitelijk bedoel.

Uiteraard gezocht met 'help run', daarbij wordt gesproken dat ik de input evt kan pipen met < maar dat werkt niet met deze hex karakters. Daarnaast wordt gesproken over een mogelijk om een shell te krijgen met de optie 'sh' maar als ik 'run sh' geef, krijg ik de letters "sh" als argument ipv een shell...

Weet iemand hoe ik dit kan oplossen?

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23:05
Of ik snap je probleem niet, of je denkt te moeilijk, want volgens mij werkt dit gewoon:
run $(printf "\x50\x89\xcd\x02")


(Los daarvan kun je je afvragen hoe zinnig het is om binary data ongecodeerd als command line arguments door te geven, maar daar ging je vraag niet over. :P)

[ Voor 37% gewijzigd door Soultaker op 28-01-2012 18:12 ]


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Verrek, je hebt gelijk ik dacht veel te moeilijk. Dat werkt, probleem opgelost, dank!

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977