disassembly - Books on reversing with GDB? - Reverse Engineering Stack Exchange
How to use gdb to reverse engineer an ELF which runs another program? - Stack Overflow
Anyone doing Reverse-engineering ? What tools do you use ?
Used to do some on Windows with Olly and IDA. Mostly I'm just glad I don't often have to bother myself with it.
More on reddit.comReverse engineering homelab, GDB and multiple architectures?
Videos
Special for beginners Dennis Yurichev wrote this book: Reverse Engineering for Beginners
You can find it and download on his site for free.
Topics discussed: x86/x64, ARM/ARM64, MIPS, Java/JVM.
Topics touched: Oracle RDBMS, Itanium, copy-protection dongles, LD_PRELOAD, stack overflow, ELF, win32 PE file format, x86-64, critical sections, syscalls, TLS, position-independent code (PIC), profile-guided optimization, C++ STL, OpenMP, win32 SEH.
If you want to learn reverse engineering on Linux, I highly recommend: Learning Linux Binary Analysis.
It is the only book (that I know of) that goes in depth on the ELF format.
https://www.amazon.com/Learning-Binary-Analysis-elfmaster-ONeill/dp/1782167102/ref=sr_1_1?ie=UTF8&qid=1493623237&sr=8-1&keywords=linux+binary+analysis
First start gdb from a shell prompt:
$ gdb bomb
Then run your program from the (gdb) prompt with the command line you want:
(gdb) run model.abc
You need to launch your program this way because gdb doesn't allow you to specify command line arguments for your program on the gdb command line.
Another, more convenient way of debugging a program with arguments:
gdb --args program <arguments>
If you don't have symbols, you'll have to start from the entry point. To figure our where it is, use:
(gdb) info file
Symbols from "/.../tesprog".
Local exec file:
`/.../tesprog', file type elf32-i386.
Entry point: 0x804abc0
Then you can set breakpoint on it before running:
break *0x804abc0
Note that the entry will be most often the library startup code (ctr0.s), it might take a while to get to the actual code written by the programmer.