Live data from Hacker News

Defusing a binary bomb with gdb – Part 1

blog.carlosgaldino.com

1–10 of 22 posts

Re: Defusing a binary bomb with gdb – Part 1

#2
This was one of my favorite lab assignments when I was at university. If I recall correctly this lab was run back to back with another really fun one out of the same book. The other had to do with modifying code to take advantage of some compiler optimizations. Loop unrolling, array layout, stuff like that.

allow me to brag a bit: I was the only one in my class to not set off the bomb!

Re: Defusing a binary bomb with gdb – Part 1

#4
I took the course the book was designed for at CMU (and with the guys who wrote it, all CS majors have to take it), everyone on campus always knew when "bomb-lab" was happening because people would post on FB "Just defused a bomb", confusing anyone who was new around =P

Not setting off the bomb is pretty easy as long as you remember to set a break point right before the "explode" function before every gdb run. Super satisfying when you get through all six stages. (there's also a secret bonus stage)

The book/course is the best designed one I've ever seen for the subject matter. Highly recommend it for anyone interested in taking it on, and on taking any course that is based on it.

Re: Defusing a binary bomb with gdb – Part 1

#5
post #2

This was one of my favorite lab assignments when I was at university. If I recall correctly this lab was run back to back with another really fun one out of the same book. The other had to do with modifying code to take advantage of some compiler optimizations. Loop unrolling, array layout, stuff like that. allow me to brag a bit: I was the only one in my class to not set off the bomb!

[deleted]

Re: Defusing a binary bomb with gdb – Part 1

#6
post #4

I took the course the book was designed for at CMU (and with the guys who wrote it, all CS majors have to take it), everyone on campus always knew when "bomb-lab" was happening because people would post on FB "Just defused a bomb", confusing anyone who was new around =P Not setting off the bomb is pretty easy as long as you remember to set a break point right before the "explode" function before every gdb run. Super…

If I am not mistaken, the book is called Computer Systems: A Programmer's Perspective (CS:APP) by Randal E. Bryant and David R. O'Hallaron. It's very nicely written, and 3rd edition just came out this year. Coursera also has an archive of a great course based on this book from University of Washington - 'The Hardware/Software Interface'.

Re: Defusing a binary bomb with gdb – Part 1

#7
At least for the first stage you don't actually need to run the executable (under gdb or otherwise). You can just get the string with objdump:

    $ objdump -s --start-address 0x402400 bomb|head

    bomb:     file format elf64-x86-64

    Contents of section .rodata:
     402400 426f7264 65722072 656c6174 696f6e73  Border relations
     402410 20776974 68204361 6e616461 20686176   with Canada hav
     402420 65206e65 76657220 6265656e 20626574  e never been bet
     402430 7465722e 00000000 576f7721 20596f75  ter.....Wow! You
     402440 27766520 64656675 73656420 74686520  've defused the
     402450 73656372 65742073 74616765 2100666c  secret stage!.fl
Post reply on HN