1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
| hugh@codegate-desktop:/tmp/by$ gdb -q easy
Reading symbols from /tmp/by/easy...done.
(gdb) disassemble main
Dump of assembler code for function main:
0x0804850b <main+0>: push %ebp
0x0804850c <main+1>: mov %esp,%ebp
0x0804850e <main+3>: and $0xfffffff0,%esp
0x08048511 <main+6>: sub $0x20,%esp
0x08048514 <main+9>: movl $0x0,0x1c(%esp)
0x0804851c <main+17>: mov $0x8048640,%eax
0x08048521 <main+22>: mov %eax,(%esp)
0x08048524 <main+25>: call 0x8048408 <printf@plt>
0x08048529 <main+30>: movl $0x0,(%esp)
0x08048530 <main+37>: call 0x80483e8 <fflush@plt>
0x08048535 <main+42>: mov 0x804a024,%eax
0x0804853a <main+47>: mov %eax,%edx
0x0804853c <main+49>: lea 0x18(%esp),%eax
0x08048540 <main+53>: mov %edx,0x8(%esp)
0x08048544 <main+57>: mov %eax,0x4(%esp)
0x08048548 <main+61>: lea 0x1c(%esp),%eax
0x0804854c <main+65>: mov %eax,(%esp)
0x0804854f <main+68>: call 0x80483d8 <getline@plt>
0x08048554 <main+73>: mov 0x18(%esp),%edx
0x08048558 <main+77>: mov 0x1c(%esp),%eax
0x0804855c <main+81>: mov %edx,0x4(%esp)
0x08048560 <main+85>: mov %eax,(%esp)
0x08048563 <main+88>: call 0x80484e4 <func>
0x08048568 <main+93>: movl $0x8048648,(%esp)
0x0804856f <main+100>: call 0x8048418 <puts@plt>
0x08048574 <main+105>: leave
0x08048575 <main+106>: ret
End of assembler dump.
(gdb) disassemble func
Dump of assembler code for function func:
0x080484e4 <func+0>: push %ebp
0x080484e5 <func+1>: mov %esp,%ebp
0x080484e7 <func+3>: sub $0x118,%esp
0x080484ed <func+9>: mov 0xc(%ebp),%eax
0x080484f0 <func+12>: mov %eax,0x8(%esp)
0x080484f4 <func+16>: mov 0x8(%ebp),%eax
0x080484f7 <func+19>: mov %eax,0x4(%esp)
0x080484fb <func+23>: lea -0x108(%ebp),%eax
0x08048501 <func+29>: mov %eax,(%esp)
0x08048504 <func+32>: call 0x80483f8 <memcpy@plt>
0x08048509 <func+37>: leave
0x0804850a <func+38>: ret
End of assembler dump.
(gdb) b *func+38
Breakpoint 1 at 0x804850a
(gdb) r
Starting program: /tmp/by/easy
Input: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Breakpoint 1, 0x0804850a in func ()
(gdb) x/32wx $esp
0xbffff74c: 0x08048568 0x0804b008 0x00000078 0x002ef420
0xbffff75c: 0xbffff778 0x001dd345 0x0019ed20 0x00000078
0xbffff76c: 0x0804b008 0x08048590 0x00000000 0xbffff7f8
0xbffff77c: 0x001c4b56 0x00000001 0xbffff824 0xbffff82c
0xbffff78c: 0x0053b858 0xbffff7e0 0xffffffff 0x001acff4
0xbffff79c: 0x080482dd 0x00000001 0xbffff7e0 0x0019e326
0xbffff7ac: 0x001ad828 0x0053bb40 0x002eeff4 0x00000000
0xbffff7bc: 0x00000000 0xbffff7f8 0xcc6d256e 0x0b141211
(gdb) x/32wx 0x0804b008
0x804b008: 0x41414141 0x41414141 0x41414141 0x41414141
0x804b018: 0x41414141 0x41414141 0x41414141 0x41414141
0x804b028: 0x41414141 0x41414141 0x41414141 0x41414141
0x804b038: 0x41414141 0x41414141 0x41414141 0x41414141
0x804b048: 0x41414141 0x41414141 0x41414141 0x41414141
0x804b058: 0x41414141 0x41414141 0x41414141 0x000a4141
0x804b068: 0x00000000 0x00000000 0x00000000 0x00000000
0x804b078: 0x00000000 0x00000000 0x00000000 0x00020f81
(gdb)
|