full-disclosure-uk August 2008 archive
Main Archive Page > Month Archives  > full-disclosure-uk archives
full-disclosure-uk: Re: [Full-disclosure] Step-by-step instructi

Re: [Full-disclosure] Step-by-step instructions for debugging Cisco IOS using gdb

From: Andrew Farmer <andfarm_at_nospam>
Date: Sat Aug 16 2008 - 20:24:20 GMT
To: Smiler S <smiler808@googlemail.com>


On 15 Aug 08, at 11:20, Smiler S wrote:
> From: Andy Davis
> <iosftpexploit_at_googlemail.com<iosftpexploit_at_googlemail.com?
> Subject=Re:%20Step-by-step%20instructions%20for%20debugging%20Cisco
> %20IOS%20using%20gdb>>
>
> Date: Tue, 12 Aug 2008 22:01:37 +0100
>
>> Congratulations you are now debugging IOS ;-)
>> One unusual feature, which I have yet to explain is that when the
>> registers are displayed they are all offset by 1 e.g:
>
> If a vector variable is stored in a register, gcc writes debug
> information
> telling gdb which register the variable is stored in. This mapping is
> changed between gcc2 & gcc3. Since there isn't anything in the debug
> output
> to distinguish code compiled by gcc3 from code compiled by gcc2,
> there is no
> way for gdb to know the right map. gdb supports the gcc3 map.
>
> If vector code is compiled by gcc2 as in the case of IOS, then the
> register
> assignment will be off by 1.

This isn't vector code, though - the whole register map is off. I'm not particularly familiar with IOS, but my guess is the debugging protocol is a little off from what GDB expects.



Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html Hosted and sponsored by Secunia - http://secunia.com/