Full Disclosure mailing list archives

Re: Step-by-step instructions for debugging Cisco IOS using gdb


From: Andrew Farmer <andfarm () gmail com>
Date: Sat, 16 Aug 2008 13:24:20 -0700

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/


Current thread: