I'm currently practicing some RE w/ GDB and am having issues simply stopping the run/start on the first/second instruction. I am new to GDB/RE and have a limited knowledge of some of GDB's inner workings. So far when I open the program I have done:
(gdb) set disassembly-flavor intel
(gdb) file /path/to/binary
(gdb) info file
Symbols from "/path/to/binary".
Local exec file:
`/path/to/binary', file type elf32-i386.
Entry point: 0x8048450
.
.
.
(gdb) b *0x8048450
(gdb) start
Temporary breakpoint 2 at 0x80485f7
Starting program: /path/to/binary
During startup program exited with code 1.
So clearly setting the breakpoint at the entry point is not useful. Below is the output of the command :
objdump /path/to/binary -M intel -D
At the preceeding memory address.
08048450 <_start>:
8048450: 31 ed xor ebp,ebp
8048452: 5e pop esi
8048453: 89 e1 mov ecx,esp
8048455: 83 e4 f0 and esp,0xfffffff0
8048458: 50 push eax
8048459: 54 push esp
804845a: 52 push edx
804845b: 68 c0 86 04 08 push 0x80486c0
8048460: 68 60 86 04 08 push 0x8048660
8048465: 51 push ecx
8048466: 56 push esi
8048467: 68 e9 85 04 08 push 0x80485e9
804846c: e8 bf ff ff ff call 8048430 <__libc_start_main@plt>
8048471: f4 hlt
8048472: 66 90 xchg ax,ax
8048474: 66 90 xchg ax,ax
8048476: 66 90 xchg ax,ax
8048478: 66 90 xchg ax,ax
804847a: 66 90 xchg ax,ax
804847c: 66 90 xchg ax,ax
804847e: 66 90 xchg ax,ax
My overall goal is to jump to a specific function in the program using the b *Mem, jump *Mem technique and execute the code w/in that function. In order to do this however I need to be able to stop the program while it is running I believe.