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