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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
| [xavius@localhost xavius]$ gdb death_knight_modify
GNU gdb 19991004
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux"...
(gdb) attach 916
Attaching to program: /home/xavius/death_knight_modify, Pid 916
Reading symbols from /lib/libc.so.6...done.
Reading symbols from /lib/ld-linux.so.2...done.
0x400cabc2 in __libc_recv () from /lib/libc.so.6
(gdb) disassemble main
Dump of assembler code for function main:
0x80488c4 <main>: push %ebp
0x80488c5 <main+1>: mov %esp,%ebp
0x80488c7 <main+3>: sub $0x54,%esp
0x80488ca <main+6>: push $0x0
0x80488cc <main+8>: push $0x1
0x80488ce <main+10>: push $0x2
0x80488d0 <main+12>: call 0x804861c <socket>
0x80488d5 <main+17>: add $0xc,%esp
0x80488d8 <main+20>: mov %eax,%eax
0x80488da <main+22>: mov %eax,0xffffffd4(%ebp)
0x80488dd <main+25>: cmpl $0xffffffff,0xffffffd4(%ebp)
0x80488e1 <main+29>: jne 0x8048900 <main+60>
0x80488e3 <main+31>: push $0x8048afb
0x80488e8 <main+36>: call 0x804853c <perror>
0x80488ed <main+41>: add $0x4,%esp
0x80488f0 <main+44>: push $0x1
0x80488f2 <main+46>: call 0x80485dc <exit>
0x80488f7 <main+51>: add $0x4,%esp
0x80488fa <main+54>: lea 0x0(%esi),%esi
0x8048900 <main+60>: movw $0x2,0xffffffc0(%ebp)
0x8048906 <main+66>: push $0x7a69
0x804890b <main+71>: call 0x80485fc <htons>
0x8048910 <main+76>: add $0x4,%esp
0x8048913 <main+79>: mov %eax,%eax
0x8048915 <main+81>: mov %ax,0xffffffc2(%ebp)
0x8048919 <main+85>: movl $0x0,0xffffffc4(%ebp)
0x8048920 <main+92>: push $0x8
0x8048922 <main+94>: lea 0xffffffc0(%ebp),%eax
0x8048925 <main+97>: lea 0x8(%eax),%edx
0x8048928 <main+100>: push %edx
0x8048929 <main+101>: call 0x80485cc <bzero>
0x804892e <main+106>: add $0x8,%esp
0x8048931 <main+109>: push $0x10
0x8048933 <main+111>: lea 0xffffffc0(%ebp),%edx
0x8048936 <main+114>: mov %edx,%eax
0x8048938 <main+116>: push %eax
---Type <return> to continue, or q <return> to quit---
0x8048939 <main+117>: mov 0xffffffd4(%ebp),%eax
0x804893c <main+120>: push %eax
0x804893d <main+121>: call 0x80485bc <bind>
0x8048942 <main+126>: add $0xc,%esp
0x8048945 <main+129>: mov %eax,%eax
0x8048947 <main+131>: cmp $0xffffffff,%eax
0x804894a <main+134>: jne 0x8048963 <main+159>
0x804894c <main+136>: push $0x8048b02
0x8048951 <main+141>: call 0x804853c <perror>
0x8048956 <main+146>: add $0x4,%esp
0x8048959 <main+149>: push $0x1
0x804895b <main+151>: call 0x80485dc <exit>
0x8048960 <main+156>: add $0x4,%esp
0x8048963 <main+159>: push $0xa
0x8048965 <main+161>: mov 0xffffffd4(%ebp),%eax
0x8048968 <main+164>: push %eax
0x8048969 <main+165>: call 0x804856c <listen>
0x804896e <main+170>: add $0x8,%esp
0x8048971 <main+173>: mov %eax,%eax
0x8048973 <main+175>: cmp $0xffffffff,%eax
0x8048976 <main+178>: jne 0x8048990 <main+204>
0x8048978 <main+180>: push $0x8048b07
0x804897d <main+185>: call 0x804853c <perror>
0x8048982 <main+190>: add $0x4,%esp
0x8048985 <main+193>: push $0x1
0x8048987 <main+195>: call 0x80485dc <exit>
0x804898c <main+200>: add $0x4,%esp
0x804898f <main+203>: nop
0x8048990 <main+204>: nop
0x8048991 <main+205>: jmp 0x8048998 <main+212>
0x8048993 <main+207>: jmp 0x8048a60 <main+412>
0x8048998 <main+212>: movl $0x10,0xffffffac(%ebp)
0x804899f <main+219>: lea 0xffffffac(%ebp),%eax
0x80489a2 <main+222>: push %eax
0x80489a3 <main+223>: lea 0xffffffb0(%ebp),%edx
0x80489a6 <main+226>: mov %edx,%eax
0x80489a8 <main+228>: push %eax
---Type <return> to continue, or q <return> to quit---
0x80489a9 <main+229>: mov 0xffffffd4(%ebp),%eax
0x80489ac <main+232>: push %eax
0x80489ad <main+233>: call 0x804855c <accept>
0x80489b2 <main+238>: add $0xc,%esp
0x80489b5 <main+241>: mov %eax,%eax
0x80489b7 <main+243>: mov %eax,0xffffffd0(%ebp)
0x80489ba <main+246>: cmpl $0xffffffff,0xffffffd0(%ebp)
0x80489be <main+250>: jne 0x80489d0 <main+268>
0x80489c0 <main+252>: push $0x8048b0e
0x80489c5 <main+257>: call 0x804853c <perror>
0x80489ca <main+262>: add $0x4,%esp
0x80489cd <main+265>: jmp 0x8048991 <main+205>
0x80489cf <main+267>: nop
0x80489d0 <main+268>: call 0x804854c <fork>
0x80489d5 <main+273>: mov %eax,%eax
0x80489d7 <main+275>: test %eax,%eax
0x80489d9 <main+277>: jne 0x8048a30 <main+364>
0x80489db <main+279>: push $0x0
0x80489dd <main+281>: push $0x34
0x80489df <main+283>: push $0x8048b20
0x80489e4 <main+288>: mov 0xffffffd0(%ebp),%eax
0x80489e7 <main+291>: push %eax
0x80489e8 <main+292>: call 0x80485ec <send>
0x80489ed <main+297>: add $0x10,%esp
0x80489f0 <main+300>: push $0x0
0x80489f2 <main+302>: push $0x6
0x80489f4 <main+304>: push $0x8048b55
0x80489f9 <main+309>: mov 0xffffffd0(%ebp),%eax
0x80489fc <main+312>: push %eax
0x80489fd <main+313>: call 0x80485ec <send>
0x8048a02 <main+318>: add $0x10,%esp
0x8048a05 <main+321>: push $0x0
0x8048a07 <main+323>: push $0x100
0x8048a0c <main+328>: lea 0xffffffd8(%ebp),%eax
0x8048a0f <main+331>: push %eax
0x8048a10 <main+332>: mov 0xffffffd0(%ebp),%eax
0x8048a13 <main+335>: push %eax
---Type <return> to continue, or q <return> to quit---
0x8048a14 <main+336>: call 0x804860c <recv>
0x8048a19 <main+341>: add $0x10,%esp
0x8048a1c <main+344>: mov 0xffffffd0(%ebp),%eax
0x8048a1f <main+347>: push %eax
0x8048a20 <main+348>: call 0x804852c <close>
0x8048a25 <main+353>: add $0x4,%esp
0x8048a28 <main+356>: jmp 0x8048a60 <main+412>
0x8048a2a <main+358>: lea 0x0(%esi),%esi
0x8048a30 <main+364>: mov 0xffffffd0(%ebp),%eax
0x8048a33 <main+367>: push %eax
0x8048a34 <main+368>: call 0x804852c <close>
0x8048a39 <main+373>: add $0x4,%esp
0x8048a3c <main+376>: lea 0x0(%esi,1),%esi
0x8048a40 <main+380>: push $0x1
0x8048a42 <main+382>: push $0x0
0x8048a44 <main+384>: push $0xffffffff
0x8048a46 <main+386>: call 0x804858c <waitpid>
0x8048a4b <main+391>: add $0xc,%esp
0x8048a4e <main+394>: mov %eax,%eax
0x8048a50 <main+396>: test %eax,%eax
0x8048a52 <main+398>: jg 0x8048a56 <main+402>
0x8048a54 <main+400>: jmp 0x8048a58 <main+404>
0x8048a56 <main+402>: jmp 0x8048a40 <main+380>
0x8048a58 <main+404>: jmp 0x8048991 <main+205>
0x8048a5d <main+409>: lea 0x0(%esi),%esi
0x8048a60 <main+412>: mov 0xffffffd4(%ebp),%eax
0x8048a63 <main+415>: push %eax
0x8048a64 <main+416>: call 0x804852c <close>
0x8048a69 <main+421>: add $0x4,%esp
0x8048a6c <main+424>: leave
0x8048a6d <main+425>: ret
0x8048a6e <main+426>: nop
0x8048a6f <main+427>: nop
End of assembler dump.
(gdb) b *main+341
Breakpoint 1 at 0x8048a19
(gdb) c
Continuing.
|