论坛
BBS
空间测绘
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
IOT
[15841] 2020-09-12_Linuxpwn入门学习到放弃
文档创建者:
s7ckTeam
浏览次数:
3
最后更新:
2025-01-18
IOT
3 人阅读
|
0 人回复
s7ckTeam
s7ckTeam
当前离线
积分
-54
6万
主题
-6万
回帖
-54
积分
管理员
积分
-54
发消息
2020-09-12_Linuxpwn入门学习到放弃
L
i
n
u
x
p
w
n
入
门
学
习
到
放
弃
酒
仙
桥
六
号
部
队
F
r
e
e
B
u
f
2
0
2
0
-
0
9
-
1
2
P
W
N
是
一
个
黑
客
语
法
的
俚
语
词
,
自
”
o
w
n
”
这
个
字
引
申
出
来
的
,
意
为
玩
家
在
整
个
游
戏
对
战
中
处
在
胜
利
的
优
势
。
本
文
记
录
菜
鸟
学
习
l
i
n
u
x
p
w
n
入
门
的
一
些
过
程
,
详
细
介
绍
l
i
n
u
x
上
的
保
护
机
制
,
分
析
一
些
常
见
漏
洞
如
栈
溢
出
,
堆
溢
出
,
u
s
e
a
f
t
e
r
f
r
e
e
等
,
以
及
一
些
常
见
工
具
介
绍
等
。
l
i
n
u
x
程
序
的
常
用
保
护
机
制
程
序
的
常
用
保
护
机
制
先
来
学
习
一
些
关
于
l
i
n
u
x
方
面
的
保
护
措
施
,
操
作
系
统
提
供
了
许
多
安
全
机
制
来
尝
试
降
低
或
阻
止
缓
冲
区
溢
出
攻
击
带
来
的
安
全
风
险
,
包
括
D
E
P
、
A
S
L
R
等
。
从
c
h
e
c
k
s
e
c
入
手
来
学
习
l
i
n
u
x
的
保
护
措
施
。
c
h
e
c
k
s
e
c
可
以
检
查
可
执
行
文
件
各
种
安
全
属
性
,
包
括
A
r
c
h
,
R
E
L
R
O
,
S
t
a
c
k
,
N
X
,
P
I
E
等
。
p
i
p
安
装
p
w
n
t
o
o
l
s
后
自
带
c
h
e
c
k
s
e
c
检
查
e
l
f
文
件
.
另
外
笔
者
操
作
系
统
为
m
a
c
O
S
,
一
些
常
用
的
l
i
n
u
x
命
令
如
r
e
a
d
e
l
f
需
要
另
外
b
r
e
w
i
n
s
t
a
l
l
b
i
n
u
t
i
l
s
安
装
g
d
b
里
p
e
d
a
插
件
里
自
带
的
c
h
e
c
k
s
e
c
功
能
C
A
N
N
A
R
Y
金
丝
雀
金
丝
雀
(
栈
保
护
栈
保
护
)
/
S
t
a
c
k
p
r
o
t
e
c
t
/
栈
溢
出
保
护
栈
溢
出
保
护
栈
溢
出
保
护
是
一
种
缓
冲
区
溢
出
攻
击
缓
解
手
段
,
当
函
数
存
在
缓
冲
区
溢
出
攻
击
漏
洞
时
,
攻
击
者
可
以
覆
盖
栈
上
的
返
回
地
址
来
让
s
h
e
l
l
c
o
d
e
能
够
得
到
执
行
。
当
启
用
栈
保
护
后
,
函
数
开
始
执
行
的
时
候
会
先
往
栈
里
插
入
c
o
o
k
i
e
信
息
,
当
函
数
真
正
返
回
的
时
候
会
验
证
c
o
o
k
i
e
信
息
是
否
合
法
,
如
果
不
合
法
就
停
止
程
序
运
行
。
攻
击
者
在
覆
盖
返
回
地
址
的
时
候
往
往
也
会
将
c
o
o
k
i
e
信
息
给
覆
盖
掉
,
导
致
栈
保
护
检
查
失
败
而
阻
止
s
h
e
l
l
c
o
d
e
的
执
行
。
在
L
i
n
u
x
中
我
们
将
c
o
o
k
i
e
信
息
称
为
c
a
n
a
r
y
/
金
丝
雀
。
g
c
c
在
4
.
2
版
本
中
添
加
了
-
f
s
t
a
c
k
-
p
r
o
t
e
c
t
o
r
和
-
f
s
t
a
c
k
-
p
r
o
t
e
c
t
o
r
-
a
l
l
编
译
参
数
以
支
持
栈
保
护
功
能
,
4
.
9
新
增
了
-
f
s
t
a
c
k
-
p
r
o
t
e
c
t
o
r
-
s
t
r
o
n
g
编
译
参
数
让
保
护
的
范
围
更
广
。
开
启
命
令
如
下
:
F
O
R
T
I
F
Y
/
轻
微
的
检
查
轻
微
的
检
查
f
o
r
i
t
y
其
实
非
常
轻
微
的
检
查
,
用
于
检
查
是
否
存
在
缓
冲
区
溢
出
的
错
误
。
适
用
情
形
是
程
序
采
用
大
量
的
字
符
串
或
者
内
存
操
作
函
数
,
如
m
e
m
c
p
y
,
m
e
m
s
e
t
,
s
t
r
c
p
y
,
s
t
r
n
c
p
y
,
s
t
r
c
a
t
,
s
t
r
n
c
a
t
,
s
p
r
i
n
t
f
,
s
n
p
r
i
n
t
f
,
v
s
p
r
i
n
t
f
,
v
s
n
p
r
i
n
t
f
,
g
e
t
s
以
及
宽
字
符
的
变
体
。
F
O
R
T
I
F
Y
_
S
O
U
R
C
E
设
为
1
,
并
且
将
编
译
器
设
置
为
优
化
1
(
g
c
c
-
O
1
)
,
以
及
出
现
上
述
情
形
,
那
么
程
序
编
译
时
就
会
进
行
检
查
但
又
不
会
改
变
程
序
功
能
开
启
命
令
如
下
:
看
编
译
后
的
二
进
制
汇
编
我
们
可
以
看
到
g
c
c
生
成
了
一
些
附
加
代
码
,
通
过
对
数
组
大
小
的
判
断
替
换
s
t
r
c
p
y
,
m
e
m
c
p
y
,
m
e
m
s
e
t
等
函
数
名
,
达
到
防
止
缓
冲
区
溢
出
的
作
用
。
N
X
/
D
E
P
/
数
据
执
行
保
护
数
据
执
行
保
护
数
据
执
行
保
护
(
D
E
P
)
(
D
a
t
a
E
x
e
c
u
t
i
o
n
P
r
e
v
e
n
t
i
o
n
)
是
一
套
软
硬
件
技
术
,
能
够
在
内
存
上
执
行
额
外
检
查
以
帮
助
防
止
在
系
统
上
运
行
恶
意
代
码
。
在
M
i
c
r
o
s
o
f
t
W
i
n
d
o
w
s
X
P
S
e
r
v
i
c
e
P
a
c
k
2
及
以
上
版
本
的
W
i
n
d
o
w
s
中
,
由
硬
件
和
软
件
一
起
强
制
实
施
D
E
P
。
支
持
D
E
P
的
C
P
U
利
用
一
种
叫
做
N
X
(
N
o
e
X
e
c
u
t
e
)
不
执
行
”
的
技
术
识
别
标
记
出
来
的
区
域
。
如
果
发
现
当
前
执
行
的
代
码
没
有
明
确
标
记
为
可
执
行
(
例
如
程
序
执
行
后
由
病
毒
溢
出
到
代
码
执
行
区
的
那
部
分
代
码
)
,
则
禁
止
其
执
行
,
那
么
利
用
溢
出
攻
击
的
病
毒
或
网
络
攻
击
就
无
法
利
用
溢
出
进
行
破
坏
了
。
如
果
C
P
U
不
支
持
D
E
P
,
W
i
n
d
o
w
s
会
以
软
件
方
式
模
拟
出
D
E
P
的
部
分
功
能
。
N
X
即
N
o
-
e
X
e
c
u
t
e
(
不
可
执
行
)
的
意
思
,
N
X
(
D
E
P
)
的
基
本
原
理
是
将
数
据
所
在
内
存
页
标
识
为
不
可
执
行
,
当
程
序
溢
出
成
功
转
入
s
h
e
l
l
c
o
d
e
时
,
程
序
会
尝
试
在
数
据
页
面
上
执
行
指
令
,
此
时
C
P
U
就
会
抛
出
异
常
,
而
不
是
去
执
行
恶
意
指
令
。
开
启
命
令
如
下
:
在
W
i
n
d
o
w
s
下
,
类
似
的
概
念
为
D
E
P
(
数
据
执
行
保
护
)
,
在
最
新
版
的
V
i
s
u
a
l
S
t
u
d
i
o
中
默
认
开
启
了
D
E
P
编
译
选
项
。
A
S
L
R
(
A
d
d
r
e
s
s
s
p
a
c
e
l
a
y
o
u
t
r
a
n
d
o
m
i
z
a
t
i
o
n
)
A
S
L
R
是
一
种
针
对
缓
冲
区
溢
出
的
安
全
保
护
技
术
,
通
过
对
堆
、
栈
、
共
享
库
映
射
堆
、
栈
、
共
享
库
映
射
等
线
性
区
布
局
的
随
机
化
,
通
过
增
加
攻
击
者
预
测
目
的
地
址
的
难
度
,
防
止
攻
击
者
直
接
定
位
攻
击
代
码
位
置
,
达
到
阻
止
溢
出
攻
击
的
目
的
。
如
今
L
i
n
u
x
、
F
r
e
e
B
S
D
、
W
i
n
d
o
w
s
等
主
流
操
作
系
统
都
已
采
用
了
该
技
术
。
此
技
术
需
要
操
作
系
统
和
软
件
相
配
合
。
A
S
L
R
在
l
i
n
u
x
中
使
用
此
技
术
后
,
杀
死
某
程
序
后
重
新
开
启
,
地
址
就
会
会
改
变
在
L
i
n
u
x
上
关
闭
A
S
L
R
,
切
换
至
r
o
o
t
用
户
,
输
入
命
令
c
h
e
c
k
s
e
c
x
x
x
x
.
s
o
A
r
c
h
:
a
a
r
c
h
6
4
-
6
4
-
l
i
t
t
l
e
R
E
L
R
O
:
F
u
l
l
R
E
L
R
O
S
t
a
c
k
:
C
a
n
a
r
y
f
o
u
n
d
N
X
:
N
X
e
n
a
b
l
e
d
P
I
E
:
P
I
E
e
n
a
b
l
e
d
b
r
e
w
i
n
s
t
a
l
l
b
i
n
u
t
i
l
s
w
g
e
t
h
t
t
p
s
:
/
/
g
i
t
h
u
b
.
c
o
m
/
s
l
i
m
m
6
0
9
/
c
h
e
c
k
s
e
c
.
s
h
/
a
r
c
h
i
v
e
/
2
.
1
.
0
.
t
a
r
.
g
z
t
a
r
x
v
f
2
.
1
.
0
.
t
a
r
.
g
z
.
/
c
h
e
c
k
s
e
c
.
s
h
-
2
.
1
.
0
/
c
h
e
c
k
s
e
c
-
-
f
i
l
e
=
x
x
x
g
d
b
l
e
v
e
l
4
/
/
加
载
目
标
程
序
g
d
b
-
p
e
d
a
$
c
h
e
c
k
s
e
c
C
A
N
A
R
Y
:
d
i
s
a
b
l
e
d
F
O
R
T
I
F
Y
:
d
i
s
a
b
l
e
d
N
X
:
E
N
A
B
L
E
D
P
I
E
:
d
i
s
a
b
l
e
d
R
E
L
R
O
:
P
a
r
t
i
a
l
g
c
c
-
o
t
e
s
t
t
e
s
t
.
c
/
/
默
认
情
况
下
,
开
启
C
a
n
a
r
y
保
护
g
c
c
-
f
n
o
-
s
t
a
c
k
-
p
r
o
t
e
c
t
o
r
-
o
t
e
s
t
t
e
s
t
.
c
/
/
禁
用
栈
保
护
g
c
c
-
f
s
t
a
c
k
-
p
r
o
t
e
c
t
o
r
-
o
t
e
s
t
t
e
s
t
.
c
/
/
启
用
堆
栈
保
护
,
不
过
只
为
局
部
变
量
中
含
有
c
h
a
r
数
组
的
函
数
插
入
保
护
代
码
g
c
c
-
f
s
t
a
c
k
-
p
r
o
t
e
c
t
o
r
-
a
l
l
-
o
t
e
s
t
t
e
s
t
.
c
/
/
启
用
堆
栈
保
护
,
为
所
有
函
数
插
入
保
护
代
码
g
c
c
-
o
t
e
s
t
t
e
s
t
.
c
/
/
默
认
情
况
下
,
不
会
开
这
个
检
查
g
c
c
-
D
_
F
O
R
T
I
F
Y
_
S
O
U
R
C
E
=
1
-
o
t
e
s
t
t
e
s
t
.
c
/
/
较
弱
的
检
查
g
c
c
-
D
_
F
O
R
T
I
F
Y
_
S
O
U
R
C
E
=
1
仅
仅
只
会
在
编
译
时
进
行
检
查
(
特
别
像
某
些
头
文
件
g
c
c
-
o
t
e
s
t
t
e
s
t
.
c
/
/
默
认
情
况
下
,
开
启
N
X
保
护
g
c
c
-
z
e
x
e
c
s
t
a
c
k
-
o
t
e
s
t
t
e
s
t
.
c
/
/
禁
用
N
X
保
护
g
c
c
-
z
n
o
e
x
e
c
s
t
a
c
k
-
o
t
e
s
t
t
e
s
t
.
c
/
/
开
启
N
X
保
护
e
c
h
o
0
>
/
p
r
o
c
/
s
y
s
/
k
e
r
n
e
l
/
r
a
n
d
o
m
i
z
e
_
v
a
_
s
p
a
c
e
开
启
A
S
L
R
,
切
换
至
r
o
o
t
用
户
,
输
入
命
令
上
面
的
序
号
代
表
意
思
如
下
:
0
-
表
示
关
闭
进
程
地
址
空
间
随
机
化
。
1
-
表
示
将
m
m
a
p
的
基
址
,
s
t
a
c
k
和
v
d
s
o
页
面
随
机
化
。
2
-
表
示
在
1
的
基
础
上
增
加
栈
(
h
e
a
p
)
的
随
机
化
。
可
以
防
范
基
于
R
e
t
2
l
i
b
c
方
式
的
针
对
D
E
P
的
攻
击
。
A
S
L
R
和
D
E
P
配
合
使
用
,
能
有
效
阻
止
攻
击
者
在
堆
栈
上
运
行
恶
意
代
码
。
P
I
E
和
和
P
I
C
P
I
E
最
早
由
R
e
d
H
a
t
的
人
实
现
,
他
在
连
接
起
上
增
加
了
-
p
i
e
选
项
,
这
样
使
用
-
f
P
I
E
编
译
的
对
象
就
能
通
过
连
接
器
得
到
位
置
无
关
可
执
行
程
序
。
f
P
I
E
和
f
P
I
C
有
些
不
同
。
-
f
P
I
C
与
-
f
p
i
c
都
是
在
编
译
时
加
入
的
选
项
,
用
于
生
成
位
置
无
关
的
代
码
位
置
无
关
的
代
码
(
P
o
s
i
t
i
o
n
-
I
n
d
e
p
e
n
d
e
n
t
-
C
o
d
e
)
。
这
两
个
选
项
都
是
可
以
使
代
码
在
加
载
到
内
存
时
使
用
相
对
地
址
,
所
有
对
固
定
地
址
的
访
问
都
通
过
全
局
偏
移
表
固
定
地
址
的
访
问
都
通
过
全
局
偏
移
表
(
G
O
T
)
来
实
现
。
-
f
P
I
C
和
-
f
p
i
c
最
大
的
区
别
在
于
是
否
对
G
O
T
的
大
小
有
限
制
。
-
f
P
I
C
对
G
O
T
表
大
小
无
限
制
,
所
以
如
果
在
不
确
定
的
情
况
下
,
使
用
-
f
P
I
C
是
更
好
的
选
择
。
-
f
P
I
E
与
-
f
p
i
e
是
等
价
的
。
这
个
选
项
与
-
f
P
I
C
/
-
f
p
i
c
大
致
相
同
,
不
同
点
在
于
:
-
f
P
I
C
用
于
生
成
动
态
库
,
-
f
P
I
E
用
与
生
成
可
执
行
文
件
。
再
说
得
直
白
一
点
:
-
f
P
I
E
用
来
生
成
位
置
无
关
的
可
执
行
代
码
。
P
I
E
和
A
S
L
R
不
是
一
样
的
作
用
,
A
S
L
R
只
能
对
堆
、
栈
,
l
i
b
c
和
m
m
a
p
随
机
化
,
而
不
能
对
如
代
码
段
,
数
据
段
随
机
化
,
使
用
P
I
E
+
A
S
L
R
则
可
以
对
代
码
段
和
数
据
段
随
机
化
。
区
别
是
A
S
L
R
是
系
统
功
能
选
项
,
P
I
E
和
P
I
C
是
编
译
器
功
能
选
项
。
联
系
点
在
于
在
开
启
A
S
L
R
之
后
,
P
I
E
才
会
生
效
。
开
启
命
令
如
下
:
R
E
L
R
O
(
r
e
a
d
o
n
l
y
r
e
l
o
c
a
t
i
o
n
)
在
很
多
时
候
利
用
漏
洞
时
可
以
写
的
内
存
区
域
通
常
是
黑
客
攻
击
的
目
标
,
尤
其
是
存
储
函
数
指
针
的
区
域
。
而
动
态
链
接
的
E
L
F
二
进
制
文
件
使
用
称
为
全
局
偏
移
表
(
G
O
T
)
的
查
找
表
来
动
态
解
析
共
享
库
中
的
函
数
,
G
O
T
就
成
为
了
黑
客
关
注
的
目
标
之
一
,
G
C
C
,
G
N
U
l
i
n
k
e
r
以
及
G
l
i
b
c
-
d
y
n
a
m
i
c
l
i
n
k
e
r
一
起
配
合
实
现
了
一
种
叫
做
r
e
l
r
o
的
技
术
:
r
e
a
d
o
n
l
y
r
e
l
o
c
a
t
i
o
n
。
大
概
实
现
就
是
由
大
概
实
现
就
是
由
l
i
n
k
e
r
指
定
指
定
b
i
n
a
r
y
的
一
块
经
过
的
一
块
经
过
d
y
n
a
m
i
c
l
i
n
k
e
r
处
理
过
处
理
过
r
e
l
o
c
a
t
i
o
n
之
后
的
区
之
后
的
区
域
域
,
G
O
T
为
只
读
为
只
读
.
设
置
符
号
重
定
向
表
为
只
读
或
在
程
序
启
动
时
就
解
析
并
绑
定
所
有
动
态
符
号
,
从
而
减
少
对
G
O
T
(
G
l
o
b
a
l
O
f
f
s
e
t
T
a
b
l
e
)
攻
击
。
如
果
R
E
L
R
O
为
“
P
a
r
t
i
a
l
R
E
L
R
O
”
,
说
明
我
们
对
G
O
T
表
具
有
写
权
限
。
开
启
命
令
如
下
:
开
启
F
u
l
l
R
E
L
R
O
后
写
利
用
时
就
不
能
复
写
g
o
t
表
。
p
w
n
工
具
常
见
整
合
工
具
常
见
整
合
p
w
n
t
o
o
l
s
p
w
n
t
o
o
l
s
是
一
个
二
进
制
利
用
框
架
,
网
上
关
于
p
w
n
t
o
o
l
s
的
用
法
教
程
很
多
,
学
好
p
w
n
t
o
o
l
s
对
于
做
漏
洞
的
利
用
和
理
解
漏
洞
有
很
好
的
帮
助
。
可
以
利
用
p
w
n
t
o
o
l
s
库
开
发
基
于
p
y
t
h
o
n
的
漏
洞
利
用
脚
本
。
p
y
c
h
a
r
m
p
y
c
h
a
r
m
可
以
实
时
调
试
和
编
写
攻
击
脚
本
,
提
高
了
写
利
用
的
效
率
。
在
远
程
主
机
上
执
行
用
p
y
c
h
a
r
m
工
具
开
发
p
w
n
代
码
,
远
程
连
接
程
序
进
行
p
w
n
测
试
。
需
要
设
置
环
境
变
量
T
E
R
M
=
l
i
n
u
x
;
T
E
R
M
I
N
F
O
=
/
e
t
c
/
t
e
r
m
i
n
f
o
,
并
勾
选
E
m
u
l
a
t
e
t
e
r
m
i
n
a
l
i
n
o
u
t
p
u
t
c
o
o
n
s
o
o
l
e
然
后
p
w
n
t
o
o
l
s
的
p
y
t
h
o
n
脚
本
使
用
远
程
连
接
e
c
h
o
0
>
/
p
r
o
c
/
s
y
s
/
k
e
r
n
e
l
/
r
a
n
d
o
m
i
z
e
_
v
a
_
s
p
a
c
e
e
c
h
o
2
>
/
p
r
o
c
/
s
y
s
/
k
e
r
n
e
l
/
r
a
n
d
o
m
i
z
e
_
v
a
_
s
p
a
c
e
g
c
c
-
o
t
e
s
t
t
e
s
t
.
c
/
/
默
认
情
况
下
,
不
开
启
P
I
E
g
c
c
-
f
p
i
e
-
p
i
e
-
o
t
e
s
t
t
e
s
t
.
c
/
/
开
启
P
I
E
,
此
时
强
度
为
1
g
c
c
-
f
P
I
E
-
p
i
e
-
o
t
e
s
t
t
e
s
t
.
c
/
/
开
启
P
I
E
,
此
时
为
最
高
强
度
2
g
c
c
-
f
p
i
c
-
o
t
e
s
t
t
e
s
t
.
c
/
/
开
启
P
I
C
,
此
时
强
度
为
1
,
不
会
开
启
P
I
E
g
c
c
-
f
P
I
C
-
o
t
e
s
t
t
e
s
t
.
c
/
/
开
启
P
I
C
,
此
时
为
最
高
强
度
2
,
不
会
开
启
P
I
E
g
c
c
-
o
t
e
s
t
t
e
s
t
.
c
/
/
默
认
情
况
下
,
是
P
a
r
t
i
a
l
R
E
L
R
O
g
c
c
-
z
n
o
r
e
l
r
o
-
o
t
e
s
t
t
e
s
t
.
c
/
/
关
闭
,
即
N
o
R
E
L
R
O
g
c
c
-
z
l
a
z
y
-
o
t
e
s
t
t
e
s
t
.
c
/
/
部
分
开
启
,
即
P
a
r
t
i
a
l
R
E
L
R
O
g
c
c
-
z
n
o
w
-
o
t
e
s
t
t
e
s
t
.
c
/
/
全
部
开
启
s
o
c
a
t
T
C
P
4
-
L
I
S
T
E
N
:
1
0
0
0
1
,
f
o
r
k
E
X
E
C
:
.
/
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
p
=
r
e
m
o
t
e
(
'
1
7
2
.
1
6
.
3
6
.
1
7
6
'
,
1
0
0
0
1
)
i
d
a
当
p
w
n
t
o
o
l
s
开
发
的
p
y
t
h
o
n
脚
本
暂
停
时
,
远
程
i
d
a
可
以
附
加
查
看
信
息
g
d
b
附
加
附
加
g
d
b
插
件
枚
举
插
件
枚
举
1
)
P
E
D
A
-
P
y
t
h
o
n
E
x
p
l
o
i
t
D
e
v
e
l
o
p
m
e
n
t
A
s
s
i
s
t
a
n
c
e
f
o
r
G
D
B
(
h
t
t
p
s
:
/
/
g
i
t
h
u
b
.
c
o
m
/
l
o
n
g
l
d
/
p
e
d
a
)
可
以
很
清
晰
的
查
看
到
堆
栈
信
息
,
寄
存
器
和
反
汇
编
信
息
g
i
t
c
l
o
n
e
h
t
t
p
s
:
/
/
g
i
t
h
u
b
.
c
o
m
/
l
o
n
g
l
d
/
p
e
d
a
.
g
i
t
~
/
p
a
n
d
a
/
p
e
d
a
e
c
h
o
“
s
o
u
r
c
e
~
/
p
a
n
d
a
/
p
e
d
a
/
p
e
d
a
.
p
y
”
>
>
~
/
.
g
d
b
i
n
i
t
2
)
G
D
B
E
n
h
a
n
c
e
d
F
e
a
t
u
r
e
s
(
h
t
t
p
s
:
/
/
g
i
t
h
u
b
.
c
o
m
/
h
u
g
s
y
/
g
e
f
)
p
e
d
a
的
增
强
版
,
因
为
它
支
持
更
多
的
架
构
(
A
R
M
,
M
I
P
S
,
P
O
W
E
R
P
C
…
)
,
和
更
加
强
大
的
模
块
,
并
且
和
i
d
a
联
动
。
3
)
l
i
b
h
e
a
p
(
查
看
堆
信
息
)
p
i
p
3
i
n
s
t
a
l
l
l
i
b
h
e
a
p
—
v
e
r
b
o
s
e
E
D
B
附
加
附
加
E
D
B
是
一
个
可
视
化
的
跨
平
台
调
试
器
,
跟
w
i
n
上
的
O
l
l
y
d
b
g
很
像
。
l
l
d
b
插
件
插
件
v
o
l
t
r
o
n
&
l
i
s
a
。
一
个
拥
有
舒
服
的
u
i
界
面
,
一
个
简
洁
但
又
拥
有
实
用
功
能
的
插
件
。
v
o
l
t
r
o
n
配
合
t
m
u
x
会
产
生
很
好
的
效
果
,
如
下
:
实
践
实
践
通
过
几
个
例
子
来
了
解
常
见
的
几
种
保
护
手
段
和
熟
悉
常
见
的
攻
击
手
法
。
实
践
平
台
u
b
u
n
t
u
1
4
.
1
6
_
x
6
4
实
践
实
践
1
栈
溢
出
利
用
溢
出
改
变
程
序
走
向
栈
溢
出
利
用
溢
出
改
变
程
序
走
向
编
译
测
试
用
例
编
译
测
试
用
例
.
.
.
r
a
w
_
i
n
p
u
t
(
)
#
f
o
r
d
e
b
u
g
.
.
.
p
.
i
n
t
e
r
a
c
t
i
v
e
(
)
#
!
/
u
s
r
/
b
i
n
/
p
y
t
h
o
n
#
-
*
-
c
o
d
i
n
g
:
U
T
F
-
8
-
*
-
i
m
p
o
r
t
p
w
n
.
.
.
#
G
e
t
P
I
D
(
s
)
o
f
t
a
r
g
e
t
.
T
h
e
r
e
t
u
r
n
e
d
P
I
D
(
s
)
d
e
p
e
n
d
s
o
n
t
h
e
t
y
p
e
o
f
t
a
r
g
e
t
:
m
_
p
i
d
=
p
w
n
.
p
r
o
c
.
p
i
d
o
f
(
p
)
[
0
]
p
r
i
n
t
(
"
a
t
t
a
c
h
%
d
"
%
m
_
p
i
d
)
p
w
n
.
g
d
b
.
a
t
t
a
c
h
(
m
_
p
i
d
)
#
链
接
g
d
b
调
试
,
先
在
g
d
b
界
面
按
下
n
下
一
步
返
回
p
y
t
h
o
n
控
制
台
e
n
t
e
r
继
续
(
两
窗
口
同
步
)
p
r
i
n
t
(
"
n
#
#
#
#
#
#
#
#
#
#
s
e
n
d
i
n
g
p
a
y
l
o
a
d
#
#
#
#
#
#
#
#
#
#
n
"
)
p
.
s
e
n
d
(
p
a
y
l
o
a
d
)
p
w
n
.
p
a
u
s
e
(
)
p
.
i
n
t
e
r
a
c
t
i
v
e
(
)
检
测
如
下
:
发
现
没
有
栈
保
护
,
没
有
C
A
N
A
R
Y
保
护
生
成
构
造
的
数
据
生
成
构
造
的
数
据
这
里
用
到
一
个
脚
本
p
a
t
t
e
r
n
.
p
y
来
生
成
随
机
数
据
,
来
自
这
里
获
取
到
溢
出
偏
移
获
取
到
溢
出
偏
移
用
l
l
d
b
进
行
调
试
发
现
溢
出
字
符
串
长
度
为
1
3
6
+
r
e
t
_
a
d
d
r
e
s
s
获
取
获
取
c
a
l
l
s
y
s
t
e
m
函
数
地
址
函
数
地
址
因
为
代
码
中
存
在
辅
助
函
数
c
a
l
l
s
y
s
t
e
m
,
直
接
获
取
地
址
编
写
并
测
试
利
用
编
写
并
测
试
利
用
_
提
权
提
权
p
w
n
t
o
o
l
s
是
一
个
二
进
制
利
用
框
架
,
可
以
用
p
y
t
h
o
n
编
写
一
些
利
用
脚
本
,
方
便
达
到
利
用
漏
洞
的
目
的
,
当
然
也
可
以
用
其
他
手
段
。
#
i
n
c
l
u
d
e
<
s
t
d
i
o
.
h
>
#
i
n
c
l
u
d
e
<
s
t
d
l
i
b
.
h
>
#
i
n
c
l
u
d
e
<
u
n
i
s
t
d
.
h
>
v
o
i
d
c
a
l
l
s
y
s
t
e
m
(
)
{
s
y
s
t
e
m
(
"
/
b
i
n
/
s
h
"
)
;
}
v
o
i
d
v
u
l
n
e
r
a
b
l
e
_
f
u
n
c
t
i
o
n
(
)
{
c
h
a
r
b
u
f
[
1
2
8
]
;
r
e
a
d
(
S
T
D
I
N
_
F
I
L
E
N
O
,
b
u
f
,
5
1
2
)
;
}
i
n
t
m
a
i
n
(
i
n
t
a
r
g
c
,
c
h
a
r
*
*
a
r
g
v
)
{
w
r
i
t
e
(
S
T
D
O
U
T
_
F
I
L
E
N
O
,
"
H
e
l
l
o
,
W
o
r
l
d
n
"
,
1
3
)
;
/
/
/
d
e
v
/
s
t
d
i
n
f
d
/
0
/
/
/
d
e
v
/
s
t
d
o
u
t
f
d
/
1
/
/
/
d
e
v
/
s
t
d
e
r
r
f
d
/
2
v
u
l
n
e
r
a
b
l
e
_
f
u
n
c
t
i
o
n
(
)
;
}
编
译
方
法
:
#
!
b
a
s
h
g
c
c
-
f
n
o
-
s
t
a
c
k
-
p
r
o
t
e
c
t
o
r
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
.
c
-
o
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
-
l
d
l
/
/
禁
用
栈
保
护
g
d
b
-
p
e
d
a
$
c
h
e
c
k
s
e
c
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
C
A
N
A
R
Y
:
d
i
s
a
b
l
e
d
F
O
R
T
I
F
Y
:
d
i
s
a
b
l
e
d
N
X
:
E
N
A
B
L
E
D
P
I
E
:
d
i
s
a
b
l
e
d
R
E
L
R
O
:
P
a
r
t
i
a
l
p
y
t
h
o
n
2
p
a
t
t
e
r
n
.
p
y
c
r
e
a
t
e
1
5
0
A
a
0
A
a
1
A
a
2
A
a
3
A
a
4
A
a
5
A
a
6
A
a
7
A
a
8
A
a
9
A
b
0
A
b
1
A
b
2
A
b
3
A
b
4
A
b
5
A
b
6
A
b
7
A
b
8
A
b
9
A
c
0
A
c
1
A
c
2
A
c
3
A
c
4
A
c
5
A
c
6
A
c
7
A
c
8
A
c
9
A
d
0
A
d
1
A
d
2
A
d
3
A
d
4
A
d
5
A
d
6
A
d
7
A
d
8
A
d
9
A
e
0
A
e
1
A
e
2
A
e
3
A
e
4
A
e
5
A
e
6
A
e
7
A
e
8
A
e
9
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
l
l
d
b
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
(
l
l
d
b
)
t
a
r
g
e
t
c
r
e
a
t
e
"
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
"
C
u
r
r
e
n
t
e
x
e
c
u
t
a
b
l
e
s
e
t
t
o
'
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
'
(
x
8
6
_
6
4
)
.
(
l
l
d
b
)
r
u
n
P
r
o
c
e
s
s
1
1
7
3
6
0
l
a
u
n
c
h
e
d
:
'
/
h
o
m
e
/
p
a
n
d
a
/
D
e
s
k
t
o
p
/
t
e
s
t
/
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
'
(
x
8
6
_
6
4
)
H
e
l
l
o
,
W
o
r
l
d
A
a
0
A
a
1
A
a
2
A
a
3
A
a
4
A
a
5
A
a
6
A
a
7
A
a
8
A
a
9
A
b
0
A
b
1
A
b
2
A
b
3
A
b
4
A
b
5
A
b
6
A
b
7
A
b
8
A
b
9
A
c
0
A
c
1
A
c
2
A
c
3
A
c
4
A
c
5
A
c
6
A
c
7
A
c
8
A
c
9
A
d
0
A
d
1
A
d
2
A
d
3
A
d
4
A
d
5
A
d
6
A
d
7
A
d
8
A
d
9
A
e
0
A
e
1
A
e
2
A
e
3
A
e
4
A
e
5
A
e
6
A
e
7
A
e
8
A
e
9
P
r
o
c
e
s
s
1
1
7
3
6
0
s
t
o
p
p
e
d
*
t
h
r
e
a
d
#
1
:
t
i
d
=
1
1
7
3
6
0
,
0
x
0
0
0
0
0
0
0
0
0
0
4
0
0
5
e
7
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
`
v
u
l
n
e
r
a
b
l
e
_
f
u
n
c
t
i
o
n
+
3
2
,
n
a
m
e
=
'
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
'
,
s
t
o
p
r
e
a
s
o
n
=
s
i
g
n
a
l
S
I
G
S
E
G
V
:
i
n
v
a
l
i
d
a
d
d
r
e
s
s
(
f
a
u
l
t
a
d
d
r
e
s
s
:
0
x
0
)
f
r
a
m
e
#
0
:
0
x
0
0
0
0
0
0
0
0
0
0
4
0
0
5
e
7
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
`
v
u
l
n
e
r
a
b
l
e
_
f
u
n
c
t
i
o
n
+
3
2
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
`
v
u
l
n
e
r
a
b
l
e
_
f
u
n
c
t
i
o
n
:
-
>
0
x
4
0
0
5
e
7
<
+
3
2
>
:
r
e
t
q
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
`
m
a
i
n
:
0
x
4
0
0
5
e
8
<
+
0
>
:
p
u
s
h
q
%
r
b
p
0
x
4
0
0
5
e
9
<
+
1
>
:
m
o
v
q
%
r
s
p
,
%
r
b
p
0
x
4
0
0
5
e
c
<
+
4
>
:
s
u
b
q
$
0
x
1
0
,
%
r
s
p
(
l
l
d
b
)
x
/
x
g
$
r
s
p
0
x
7
f
f
f
f
f
f
f
d
d
5
8
:
0
x
3
7
6
5
4
1
3
6
6
5
4
1
3
5
6
5
p
y
t
h
o
n
2
p
a
t
t
e
r
n
.
p
y
o
f
f
s
e
t
0
x
3
7
6
5
4
1
3
6
6
5
4
1
3
5
6
5
h
e
x
p
a
t
t
e
r
n
d
e
c
o
d
e
d
a
s
:
e
5
A
e
6
A
e
7
1
3
6
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
n
m
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
|
g
r
e
p
c
a
l
l
0
0
0
0
0
0
0
0
0
0
4
0
0
5
b
6
T
c
a
l
l
s
y
s
t
e
m
i
m
p
o
r
t
p
w
n
#
p
=
p
w
n
.
p
r
o
c
e
s
s
(
"
.
/
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
"
)
p
=
r
e
m
o
t
e
(
'
1
7
2
.
1
6
.
3
6
.
1
7
4
'
,
1
0
0
0
2
)
c
a
l
l
s
y
s
t
e
m
_
a
d
d
r
e
s
s
=
0
x
0
0
0
0
0
0
0
0
0
0
4
0
0
5
b
6
p
a
y
l
o
a
d
=
"
A
"
*
1
3
6
+
p
w
n
.
p
6
4
(
c
a
l
l
s
y
s
t
e
m
_
a
d
d
r
e
s
s
)
p
.
s
e
n
d
(
p
a
y
l
o
a
d
)
测
试
利
用
拿
到
s
h
e
l
l
将
二
进
制
程
序
设
置
为
服
务
端
程
序
,
后
续
文
章
不
再
说
明
测
试
远
程
程
序
如
果
这
个
进
程
是
r
o
o
t
测
试
远
程
程
序
,
提
权
成
功
实
践
实
践
2
栈
溢
出
通
过
栈
溢
出
通
过
R
O
P
绕
过
绕
过
D
E
P
和
和
A
S
L
R
防
护
防
护
编
译
测
试
用
例
编
译
测
试
用
例
开
启
A
S
L
R
后
,
l
i
b
c
地
址
会
不
断
变
化
,
这
里
先
不
讨
论
怎
么
获
取
真
实
s
y
s
t
e
m
地
址
,
用
了
一
个
辅
助
函
数
打
印
s
y
s
t
e
m
地
址
。
编
译
方
法
:
检
测
如
下
:
观
察
A
S
L
R
,
运
行
两
次
,
发
现
每
次
l
i
b
c
的
s
y
s
t
e
m
函
数
地
址
会
变
化
,
p
.
s
e
n
d
(
p
a
y
l
o
a
d
)
p
.
i
n
t
e
r
a
c
t
i
v
e
(
)
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
p
y
t
h
o
n
t
e
s
t
.
p
y
[
+
]
S
t
a
r
t
i
n
g
l
o
c
a
l
p
r
o
c
e
s
s
'
.
/
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
'
:
p
i
d
1
1
7
4
5
5
[
*
]
S
w
i
t
c
h
i
n
g
t
o
i
n
t
e
r
a
c
t
i
v
e
m
o
d
e
H
e
l
l
o
,
W
o
r
l
d
$
w
h
o
a
m
i
p
a
n
d
a
s
o
c
a
t
T
C
P
4
-
L
I
S
T
E
N
:
1
0
0
0
1
,
f
o
r
k
E
X
E
C
:
.
/
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
p
y
t
h
o
n
t
e
s
t
2
.
p
y
[
+
]
O
p
e
n
i
n
g
c
o
n
n
e
c
t
i
o
n
t
o
1
2
7
.
0
.
0
.
1
o
n
p
o
r
t
1
0
0
0
1
:
D
o
n
e
[
*
]
S
w
i
t
c
h
i
n
g
t
o
i
n
t
e
r
a
c
t
i
v
e
m
o
d
e
H
e
l
l
o
,
W
o
r
l
d
$
w
h
o
a
m
i
p
a
n
d
a
s
u
d
o
s
o
c
a
t
T
C
P
4
-
L
I
S
T
E
N
:
1
0
0
0
1
,
f
o
r
k
E
X
E
C
:
.
/
l
i
n
u
x
_
x
6
4
_
t
e
s
t
1
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
p
y
t
h
o
n
t
e
s
t
.
p
y
[
+
]
O
p
e
n
i
n
g
c
o
n
n
e
c
t
i
o
n
t
o
1
2
7
.
0
.
0
.
1
o
n
p
o
r
t
1
0
0
0
1
:
D
o
n
e
[
*
]
S
w
i
t
c
h
i
n
g
t
o
i
n
t
e
r
a
c
t
i
v
e
m
o
d
e
H
e
l
l
o
,
W
o
r
l
d
$
w
h
o
a
m
i
r
o
o
t
#
i
n
c
l
u
d
e
<
s
t
d
i
o
.
h
>
#
i
n
c
l
u
d
e
<
s
t
d
l
i
b
.
h
>
#
i
n
c
l
u
d
e
<
u
n
i
s
t
d
.
h
>
#
i
n
c
l
u
d
e
<
d
l
f
c
n
.
h
>
v
o
i
d
s
y
s
t
e
m
a
d
d
r
(
)
{
v
o
i
d
*
h
a
n
d
l
e
=
d
l
o
p
e
n
(
"
l
i
b
c
.
s
o
.
6
"
,
R
T
L
D
_
L
A
Z
Y
)
;
p
r
i
n
t
f
(
"
%
p
n
"
,
d
l
s
y
m
(
h
a
n
d
l
e
,
"
s
y
s
t
e
m
"
)
)
;
f
f
l
u
s
h
(
s
t
d
o
u
t
)
;
}
v
o
i
d
v
u
l
n
e
r
a
b
l
e
_
f
u
n
c
t
i
o
n
(
)
{
c
h
a
r
b
u
f
[
1
2
8
]
;
r
e
a
d
(
S
T
D
I
N
_
F
I
L
E
N
O
,
b
u
f
,
5
1
2
)
;
}
i
n
t
m
a
i
n
(
i
n
t
a
r
g
c
,
c
h
a
r
*
*
a
r
g
v
)
{
s
y
s
t
e
m
a
d
d
r
(
)
;
w
r
i
t
e
(
1
,
"
H
e
l
l
o
,
W
o
r
l
d
n
"
,
1
3
)
;
v
u
l
n
e
r
a
b
l
e
_
f
u
n
c
t
i
o
n
(
)
;
}
#
!
b
a
s
h
g
c
c
-
f
n
o
-
s
t
a
c
k
-
p
r
o
t
e
c
t
o
r
l
i
n
u
x
_
x
6
4
_
t
e
s
t
2
.
c
-
o
l
i
n
u
x
_
x
6
4
_
t
e
s
t
2
-
l
d
l
/
/
禁
用
栈
保
护
g
d
b
-
p
e
d
a
$
c
h
e
c
k
s
e
c
l
i
n
u
x
_
x
6
4
_
t
e
s
t
2
C
A
N
A
R
Y
:
d
i
s
a
b
l
e
d
F
O
R
T
I
F
Y
:
d
i
s
a
b
l
e
d
N
X
:
E
N
A
B
L
E
D
P
I
E
:
d
i
s
a
b
l
e
d
R
E
L
R
O
:
P
a
r
t
i
a
l
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
.
/
l
i
n
u
x
_
x
6
4
_
t
e
s
t
2
0
x
7
f
9
d
7
d
7
1
a
3
9
0
H
e
l
l
o
,
W
o
r
l
d
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
.
/
l
i
n
u
x
_
x
6
4
_
t
e
s
t
2
0
x
7
f
a
8
4
d
c
3
d
3
9
0
H
e
l
l
o
,
W
o
r
l
d
R
O
P
简
介
简
介
R
O
P
的
全
称
为
R
e
t
u
r
n
-
o
r
i
e
n
t
e
d
p
r
o
g
r
a
m
m
i
n
g
(
返
回
导
向
编
程
)
,
是
一
种
高
级
的
内
存
攻
击
技
术
可
以
用
来
绕
过
现
代
操
作
系
统
的
各
种
通
用
防
御
(
比
如
内
存
不
可
执
行
D
E
P
和
代
码
签
名
等
)
寻
找
寻
找
R
O
P
我
们
希
望
最
后
执
行
s
y
s
t
e
m
(
“
/
b
i
n
/
s
h
”
)
,
缓
冲
区
溢
出
后
传
入
”
/
b
i
n
/
s
h
”
的
地
址
和
函
数
s
y
s
t
e
m
地
址
。
我
们
想
要
的
x
6
4
的
g
a
d
g
e
t
一
般
如
下
:
系
统
开
启
了
a
s
l
r
,
只
能
通
过
相
对
偏
移
来
计
算
g
a
d
g
e
t
,
在
二
进
制
中
搜
索
,
这
里
用
到
工
具
R
O
P
g
a
d
g
e
t
获
取
二
进
制
的
链
接
在
库
中
搜
索
p
o
p
r
e
t
决
定
用
0
x
0
0
0
0
0
0
0
0
0
0
0
2
1
1
0
2
在
库
中
搜
索
/
b
i
n
/
s
h
字
符
串
构
造
利
用
并
测
试
构
造
利
用
并
测
试
这
里
实
现
两
种
g
a
d
g
e
t
s
实
现
利
用
目
的
,
分
别
是
v
e
r
s
i
o
n
1
和
v
e
r
s
i
o
n
2
p
o
p
r
d
i
/
/
r
d
i
=
"
/
b
i
n
/
s
h
"
r
e
t
/
/
c
a
l
l
s
y
s
t
e
m
_
a
d
d
r
p
o
p
r
d
i
/
/
r
d
i
=
"
/
b
i
n
/
s
h
"
p
o
p
r
a
x
/
/
r
a
x
=
s
y
s
t
e
m
_
a
d
d
r
c
a
l
l
r
a
x
/
/
c
a
l
l
s
y
s
t
e
m
_
a
d
d
r
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
R
O
P
g
a
d
g
e
t
-
-
b
i
n
a
r
y
l
i
n
u
x
_
x
6
4
_
t
e
s
t
2
-
-
o
n
l
y
"
p
o
p
|
s
r
e
t
"
G
a
d
g
e
t
s
i
n
f
o
r
m
a
t
i
o
n
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
U
n
i
q
u
e
g
a
d
g
e
t
s
f
o
u
n
d
:
0
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
l
d
d
l
i
n
u
x
_
x
6
4
_
t
e
s
t
2
l
i
n
u
x
-
v
d
s
o
.
s
o
.
1
=
>
(
0
x
0
0
0
0
7
f
f
e
a
e
9
e
c
0
0
0
)
l
i
b
d
l
.
s
o
.
2
=
>
/
l
i
b
/
x
8
6
_
6
4
-
l
i
n
u
x
-
g
n
u
/
l
i
b
d
l
.
s
o
.
2
(
0
x
0
0
0
0
7
f
d
c
0
5
3
1
f
0
0
0
)
l
i
b
c
.
s
o
.
6
=
>
/
l
i
b
/
x
8
6
_
6
4
-
l
i
n
u
x
-
g
n
u
/
l
i
b
c
.
s
o
.
6
(
0
x
0
0
0
0
7
f
d
c
0
4
f
5
5
0
0
0
)
/
l
i
b
6
4
/
l
d
-
l
i
n
u
x
-
x
8
6
-
6
4
.
s
o
.
2
(
0
x
0
0
0
0
7
f
d
c
0
5
5
2
3
0
0
0
)
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
R
O
P
g
a
d
g
e
t
-
-
b
i
n
a
r
y
/
l
i
b
/
x
8
6
_
6
4
-
l
i
n
u
x
-
g
n
u
/
l
i
b
c
.
s
o
.
6
-
-
o
n
l
y
"
p
o
p
|
r
e
t
"
|
g
r
e
p
r
d
i
0
x
0
0
0
0
0
0
0
0
0
0
0
2
0
2
5
6
:
p
o
p
r
d
i
;
p
o
p
r
b
p
;
r
e
t
0
x
0
0
0
0
0
0
0
0
0
0
0
2
1
1
0
2
:
p
o
p
r
d
i
;
r
e
t
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
R
O
P
g
a
d
g
e
t
-
-
b
i
n
a
r
y
/
l
i
b
/
x
8
6
_
6
4
-
l
i
n
u
x
-
g
n
u
/
l
i
b
c
.
s
o
.
6
-
-
s
t
r
i
n
g
"
/
b
i
n
/
s
h
"
S
t
r
i
n
g
s
i
n
f
o
r
m
a
t
i
o
n
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0
x
0
0
0
0
0
0
0
0
0
0
1
8
c
d
5
7
:
/
b
i
n
/
s
h
#
!
/
u
s
r
/
b
i
n
/
p
y
t
h
o
n
#
-
*
-
c
o
d
i
n
g
:
U
T
F
-
8
-
*
-
i
m
p
o
r
t
p
w
n
l
i
b
c
=
p
w
n
.
E
L
F
(
"
.
/
l
i
b
c
.
s
o
.
6
"
)
#
p
=
p
w
n
.
p
r
o
c
e
s
s
(
"
.
/
l
i
n
u
x
_
x
6
4
_
t
e
s
t
2
"
)
p
=
p
w
n
.
r
e
m
o
t
e
(
"
1
2
7
.
0
.
0
.
1
"
,
1
0
0
0
1
)
s
y
s
t
e
m
a
_
a
d
d
r
_
s
t
r
=
p
.
r
e
c
v
u
n
t
i
l
(
"
n
"
)
s
y
s
t
e
m
a
_
a
d
d
r
=
i
n
t
(
s
y
s
t
e
m
a
_
a
d
d
r
_
s
t
r
,
1
6
)
#
n
o
w
s
y
s
t
e
m
a
d
d
r
b
i
n
s
h
_
s
t
a
t
i
c
=
0
x
0
0
0
0
0
0
0
0
0
0
1
8
c
d
5
7
b
i
n
s
h
2
_
s
t
a
t
i
c
=
n
e
x
t
(
l
i
b
c
.
s
e
a
r
c
h
(
"
/
b
i
n
/
s
h
"
)
)
p
r
i
n
t
(
"
b
i
n
s
h
_
s
t
a
t
i
c
=
0
x
%
x
"
%
b
i
n
s
h
_
s
t
a
t
i
c
)
p
r
i
n
t
(
"
b
i
n
s
h
2
_
s
t
a
t
i
c
=
0
x
%
x
"
%
b
i
n
s
h
2
_
s
t
a
t
i
c
)
b
i
n
s
h
_
o
f
f
s
e
t
=
b
i
n
s
h
2
_
s
t
a
t
i
c
-
l
i
b
c
.
s
y
m
b
o
l
s
[
"
s
y
s
t
e
m
"
]
#
o
f
f
s
e
t
=
s
t
a
t
i
c
1
-
s
t
a
t
i
c
2
p
r
i
n
t
(
"
b
i
n
s
h
_
o
f
f
s
e
t
=
0
x
%
x
"
%
b
i
n
s
h
_
o
f
f
s
e
t
)
b
i
n
s
h
_
a
d
d
r
=
b
i
n
s
h
_
o
f
f
s
e
t
+
s
y
s
t
e
m
a
_
a
d
d
r
p
r
i
n
t
(
"
b
i
n
s
h
_
a
d
d
r
=
0
x
%
x
"
%
b
i
n
s
h
_
a
d
d
r
)
#
v
e
r
s
i
o
n
1
#
p
o
p
_
r
e
t
_
s
t
a
t
i
c
=
0
x
0
0
0
0
0
0
0
0
0
0
0
2
1
1
0
2
#
p
o
p
r
d
i
;
r
e
t
#
p
o
p
_
r
e
t
_
o
f
f
s
e
t
=
p
o
p
_
r
e
t
_
s
t
a
t
i
c
-
l
i
b
c
.
s
y
m
b
o
l
s
[
"
s
y
s
t
e
m
"
]
#
p
r
i
n
t
(
"
p
o
p
_
r
e
t
_
o
f
f
s
e
t
=
0
x
%
x
"
%
p
o
p
_
r
e
t
_
o
f
f
s
e
t
)
#
p
o
p
_
r
e
t
_
a
d
d
r
=
p
o
p
_
r
e
t
_
o
f
f
s
e
t
+
s
y
s
t
e
m
a
_
a
d
d
r
#
p
r
i
n
t
(
"
p
o
p
_
r
e
t
_
a
d
d
r
=
0
x
%
x
"
%
p
o
p
_
r
e
t
_
a
d
d
r
)
#
p
a
y
l
o
a
d
=
"
A
"
*
1
3
6
+
p
w
n
.
p
6
4
(
p
o
p
_
r
e
t
_
a
d
d
r
)
+
p
w
n
.
p
6
4
(
b
i
n
s
h
_
a
d
d
r
)
+
p
w
n
.
p
6
4
(
s
y
s
t
e
m
a
_
a
d
d
r
)
#
b
i
n
s
h
_
a
d
d
r
低
x
6
4
第
一
个
参
数
是
r
d
i
#
s
y
s
t
e
m
a
_
a
d
d
r
高
最
后
测
试
如
下
:
实
践
实
践
3
栈
溢
出
去
掉
辅
助
函
数
栈
溢
出
去
掉
辅
助
函
数
检
查
防
护
.
b
s
s
段
段
相
关
概
念
:
堆
(
h
e
a
p
)
,
栈
(
s
t
a
c
k
)
,
B
S
S
段
,
数
据
段
(
d
a
t
a
)
,
代
码
段
(
c
o
d
e
/
t
e
x
t
)
,
全
局
静
态
区
,
文
字
常
量
区
,
程
序
代
码
区
。
B
S
S
段
:
B
S
S
段
(
b
s
s
s
e
g
m
e
n
t
)
通
常
是
指
用
来
存
放
程
序
中
未
初
始
化
的
全
局
变
量
的
一
块
内
存
区
域
。
数
据
段
:
数
据
段
(
d
a
t
a
s
e
g
m
e
n
t
)
通
常
是
指
用
来
存
放
程
序
中
已
初
始
化
的
全
局
变
量
的
一
块
内
存
区
域
。
代
码
段
:
代
码
段
(
c
o
d
e
s
e
g
m
e
n
t
/
t
e
x
t
s
e
g
m
e
n
t
)
通
常
是
指
用
来
存
放
程
序
执
行
代
码
的
一
块
内
存
区
域
。
这
部
分
区
域
的
大
小
在
程
序
运
行
前
就
已
经
确
定
,
并
且
内
存
区
域
通
常
属
于
只
读
,
某
些
架
构
也
允
许
代
码
段
为
可
写
,
即
允
许
修
改
程
序
。
在
代
码
段
中
,
也
有
可
能
包
含
一
些
只
读
的
常
数
变
量
,
例
如
字
符
串
常
量
等
。
堆
(
h
e
a
p
)
:
堆
是
用
于
存
放
进
程
运
行
中
被
动
态
分
配
的
内
存
段
,
它
的
大
小
并
不
固
定
,
可
动
态
扩
张
或
缩
减
。
当
进
程
调
用
m
a
l
l
o
c
等
函
数
分
配
内
存
时
,
新
分
配
的
内
存
就
被
动
态
添
加
到
堆
上
(
堆
被
扩
张
)
;
当
利
用
f
r
e
e
等
函
数
释
放
内
存
时
,
被
释
放
的
内
存
从
堆
中
被
剔
除
(
堆
被
缩
减
)
。
栈
(
s
t
a
c
k
)
:
栈
又
称
堆
栈
,
用
户
存
放
程
序
临
时
创
建
的
局
部
变
量
。
在
函
数
被
调
用
时
,
其
参
数
也
会
被
压
入
发
起
调
用
的
进
程
栈
中
,
并
且
待
到
调
用
结
束
后
,
函
数
的
返
回
值
也
会
被
存
放
回
栈
中
。
由
于
栈
的
后
进
先
出
特
点
,
所
以
栈
特
别
方
便
用
来
保
存
/
恢
复
调
用
现
场
。
#
s
y
s
t
e
m
a
_
a
d
d
r
高
#
v
e
r
s
i
o
n
2
p
o
p
_
p
o
p
_
c
a
l
l
_
s
t
a
t
i
c
=
0
x
0
0
0
0
0
0
0
0
0
0
1
0
7
4
1
9
#
p
o
p
r
a
x
;
p
o
p
r
d
i
;
c
a
l
l
r
a
x
p
o
p
_
p
o
p
_
c
a
l
l
_
o
f
f
s
e
t
=
p
o
p
_
p
o
p
_
c
a
l
l
_
s
t
a
t
i
c
-
l
i
b
c
.
s
y
m
b
o
l
s
[
"
s
y
s
t
e
m
"
]
p
r
i
n
t
(
"
p
o
p
_
p
o
p
_
c
a
l
l
_
o
f
f
s
e
t
=
0
x
%
x
"
%
p
o
p
_
p
o
p
_
c
a
l
l
_
o
f
f
s
e
t
)
p
o
p
_
p
o
p
_
c
a
l
l
_
a
d
d
r
=
p
o
p
_
p
o
p
_
c
a
l
l
_
o
f
f
s
e
t
+
s
y
s
t
e
m
a
_
a
d
d
r
p
r
i
n
t
(
"
p
o
p
_
p
o
p
_
c
a
l
l
_
a
d
d
r
=
0
x
%
x
"
%
p
o
p
_
p
o
p
_
c
a
l
l
_
a
d
d
r
)
p
a
y
l
o
a
d
=
"
A
"
*
1
3
6
+
p
w
n
.
p
6
4
(
p
o
p
_
p
o
p
_
c
a
l
l
_
a
d
d
r
)
+
p
w
n
.
p
6
4
(
s
y
s
t
e
m
a
_
a
d
d
r
)
+
p
w
n
.
p
6
4
(
b
i
n
s
h
_
a
d
d
r
)
#
s
y
s
t
e
m
a
_
a
d
d
r
低
p
o
p
r
a
x
#
b
i
n
s
h
_
a
d
d
r
高
p
o
p
r
d
i
p
r
i
n
t
(
"
n
#
#
#
#
#
#
#
#
#
#
s
e
n
d
i
n
g
p
a
y
l
o
a
d
#
#
#
#
#
#
#
#
#
#
n
"
)
p
.
s
e
n
d
(
p
a
y
l
o
a
d
)
p
.
i
n
t
e
r
a
c
t
i
v
e
(
)
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
p
y
t
h
o
n
t
e
s
t
2
.
p
y
[
*
]
'
/
l
i
b
/
x
8
6
_
6
4
-
l
i
n
u
x
-
g
n
u
/
l
i
b
c
.
s
o
.
6
'
A
r
c
h
:
a
m
d
6
4
-
6
4
-
l
i
t
t
l
e
R
E
L
R
O
:
P
a
r
t
i
a
l
R
E
L
R
O
S
t
a
c
k
:
C
a
n
a
r
y
f
o
u
n
d
N
X
:
N
X
e
n
a
b
l
e
d
P
I
E
:
P
I
E
e
n
a
b
l
e
d
[
+
]
S
t
a
r
t
i
n
g
l
o
c
a
l
p
r
o
c
e
s
s
'
.
/
l
i
n
u
x
_
x
6
4
_
t
e
s
t
2
'
:
p
i
d
1
1
8
8
8
9
b
i
n
s
h
_
s
t
a
t
i
c
=
0
x
1
8
c
d
5
7
b
i
n
s
h
2
_
s
t
a
t
i
c
=
0
x
1
8
c
d
5
7
b
i
n
s
h
_
o
f
f
s
e
t
=
0
x
1
4
7
9
c
7
b
i
n
s
h
_
a
d
d
r
=
0
x
7
f
c
3
0
1
8
f
f
d
5
7
p
o
p
_
r
e
t
_
o
f
f
s
e
t
=
0
x
-
2
4
2
8
e
p
o
p
_
r
e
t
_
a
d
d
r
=
0
x
7
f
c
3
0
1
7
9
4
1
0
2
#
#
#
#
#
#
#
#
#
#
s
e
n
d
i
n
g
p
a
y
l
o
a
d
#
#
#
#
#
#
#
#
#
#
[
*
]
S
w
i
t
c
h
i
n
g
t
o
i
n
t
e
r
a
c
t
i
v
e
m
o
d
e
H
e
l
l
o
,
W
o
r
l
d
$
w
h
o
a
m
i
p
a
n
d
a
#
i
n
c
l
u
d
e
<
s
t
d
i
o
.
h
>
#
i
n
c
l
u
d
e
<
s
t
d
l
i
b
.
h
>
#
i
n
c
l
u
d
e
<
u
n
i
s
t
d
.
h
>
v
o
i
d
v
u
l
n
e
r
a
b
l
e
_
f
u
n
c
t
i
o
n
(
)
{
c
h
a
r
b
u
f
[
1
2
8
]
;
r
e
a
d
(
S
T
D
I
N
_
F
I
L
E
N
O
,
b
u
f
,
5
1
2
)
;
}
i
n
t
m
a
i
n
(
i
n
t
a
r
g
c
,
c
h
a
r
*
*
a
r
g
v
)
{
w
r
i
t
e
(
S
T
D
O
U
T
_
F
I
L
E
N
O
,
"
H
e
l
l
o
,
W
o
r
l
d
n
"
,
1
3
)
;
v
u
l
n
e
r
a
b
l
e
_
f
u
n
c
t
i
o
n
(
)
;
}
编
译
方
法
:
g
c
c
-
f
n
o
-
s
t
a
c
k
-
p
r
o
t
e
c
t
o
r
l
i
n
u
x
_
x
6
4
_
t
e
s
t
3
.
c
-
o
l
i
n
u
x
_
x
6
4
_
t
e
s
t
3
-
l
d
l
/
/
禁
用
栈
保
护
g
d
b
-
p
e
d
a
$
c
h
e
c
k
s
e
c
l
i
n
u
x
_
x
6
4
_
t
e
s
t
3
C
A
N
A
R
Y
:
d
i
s
a
b
l
e
d
F
O
R
T
I
F
Y
:
d
i
s
a
b
l
e
d
N
X
:
E
N
A
B
L
E
D
P
I
E
:
d
i
s
a
b
l
e
d
R
E
L
R
O
:
P
a
r
t
i
a
l
g
d
b
-
p
e
d
a
$
q
u
i
t
程
序
的
.
b
s
s
段
中
.
b
s
s
段
是
用
来
保
存
全
局
变
量
的
值
的
,
地
址
固
定
,
并
且
可
以
读
可
写
。
N
a
m
e
T
y
p
e
A
d
d
r
O
f
f
S
i
z
e
E
S
F
l
g
L
k
I
n
f
A
l
名
字
类
型
起
始
地
址
文
件
的
偏
移
地
址
区
大
小
表
区
的
大
小
区
标
志
相
关
区
索
引
其
他
区
信
息
对
齐
字
节
数
寻
找
合
适
的
寻
找
合
适
的
g
a
d
g
e
t
程
序
自
己
的
_
_
l
i
b
c
_
c
s
u
_
i
n
i
t
函
数
,
没
开
P
I
E
.
疑
问
:
1
.
这
里
可
以
直
接
w
r
i
t
e
出
g
o
t
_
s
y
s
t
e
m
吗
?
既
然
都
得
到
g
o
t
_
w
r
i
t
e
这
个
是
静
态
地
址
,
还
能
去
调
用
,
难
道
g
o
t
表
函
数
随
便
调
用
不
变
?
g
o
t
_
s
y
s
t
e
m
存
储
了
实
际
的
l
i
b
c
-
2
.
2
3
.
s
o
!
w
r
i
t
e
地
址
,
所
以
去
执
行
g
o
t
_
s
y
s
t
e
m
然
后
打
印
出
实
际
地
址
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
r
e
a
d
e
l
f
-
S
l
i
n
u
x
_
x
6
4
_
t
e
s
t
3
T
h
e
r
e
a
r
e
3
1
s
e
c
t
i
o
n
h
e
a
d
e
r
s
,
s
t
a
r
t
i
n
g
a
t
o
f
f
s
e
t
0
x
1
a
4
8
:
S
e
c
t
i
o
n
H
e
a
d
e
r
s
:
[
N
r
]
N
a
m
e
T
y
p
e
A
d
d
r
e
s
s
O
f
f
s
e
t
S
i
z
e
E
n
t
S
i
z
e
F
l
a
g
s
L
i
n
k
I
n
f
o
A
l
i
g
n
[
2
4
]
.
g
o
t
.
p
l
t
P
R
O
G
B
I
T
S
0
0
0
0
0
0
0
0
0
0
6
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
W
A
0
0
8
[
2
5
]
.
d
a
t
a
P
R
O
G
B
I
T
S
0
0
0
0
0
0
0
0
0
0
6
0
1
0
3
0
0
0
0
0
1
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
W
A
0
0
8
[
2
6
]
.
b
s
s
N
O
B
I
T
S
0
0
0
0
0
0
0
0
0
0
6
0
1
0
4
0
0
0
0
0
1
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
W
A
0
0
1
K
e
y
t
o
F
l
a
g
s
:
W
(
w
r
i
t
e
)
,
A
(
a
l
l
o
c
)
,
X
(
e
x
e
c
u
t
e
)
,
M
(
m
e
r
g
e
)
,
S
(
s
t
r
i
n
g
s
)
,
l
(
l
a
r
g
e
)
I
(
i
n
f
o
)
,
L
(
l
i
n
k
o
r
d
e
r
)
,
G
(
g
r
o
u
p
)
,
T
(
T
L
S
)
,
E
(
e
x
c
l
u
d
e
)
,
x
(
u
n
k
n
o
w
n
)
O
(
e
x
t
r
a
O
S
p
r
o
c
e
s
s
i
n
g
r
e
q
u
i
r
e
d
)
o
(
O
S
s
p
e
c
i
f
i
c
)
,
p
(
p
r
o
c
e
s
s
o
r
s
p
e
c
i
f
i
c
)
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
o
b
j
d
u
m
p
-
d
l
i
n
u
x
_
x
6
4
_
t
e
s
t
3
0
0
0
0
0
0
0
0
0
0
4
0
0
5
c
0
<
_
_
l
i
b
c
_
c
s
u
_
i
n
i
t
>
:
4
0
0
5
c
0
:
4
1
5
7
p
u
s
h
%
r
1
5
4
0
0
5
c
2
:
4
1
5
6
p
u
s
h
%
r
1
4
4
0
0
5
c
4
:
4
1
8
9
f
f
m
o
v
%
e
d
i
,
%
r
1
5
d
4
0
0
5
c
7
:
4
1
5
5
p
u
s
h
%
r
1
3
4
0
0
5
c
9
:
4
1
5
4
p
u
s
h
%
r
1
2
4
0
0
5
c
b
:
4
c
8
d
2
5
3
e
0
8
2
0
0
0
l
e
a
0
x
2
0
0
8
3
e
(
%
r
i
p
)
,
%
r
1
2
#
6
0
0
e
1
0
<
_
_
f
r
a
m
e
_
d
u
m
m
y
_
i
n
i
t
_
a
r
r
a
y
_
e
n
t
r
y
>
4
0
0
5
d
2
:
5
5
p
u
s
h
%
r
b
p
4
0
0
5
d
3
:
4
8
8
d
2
d
3
e
0
8
2
0
0
0
l
e
a
0
x
2
0
0
8
3
e
(
%
r
i
p
)
,
%
r
b
p
#
6
0
0
e
1
8
<
_
_
i
n
i
t
_
a
r
r
a
y
_
e
n
d
>
4
0
0
5
d
a
:
5
3
p
u
s
h
%
r
b
x
4
0
0
5
d
b
:
4
9
8
9
f
6
m
o
v
%
r
s
i
,
%
r
1
4
4
0
0
5
d
e
:
4
9
8
9
d
5
m
o
v
%
r
d
x
,
%
r
1
3
4
0
0
5
e
1
:
4
c
2
9
e
5
s
u
b
%
r
1
2
,
%
r
b
p
4
0
0
5
e
4
:
4
8
8
3
e
c
0
8
s
u
b
$
0
x
8
,
%
r
s
p
4
0
0
5
e
8
:
4
8
c
1
f
d
0
3
s
a
r
$
0
x
3
,
%
r
b
p
4
0
0
5
e
c
:
e
8
0
f
f
e
f
f
f
f
c
a
l
l
q
4
0
0
4
0
0
<
_
i
n
i
t
>
4
0
0
5
f
1
:
4
8
8
5
e
d
t
e
s
t
%
r
b
p
,
%
r
b
p
4
0
0
5
f
4
:
7
4
2
0
j
e
4
0
0
6
1
6
<
_
_
l
i
b
c
_
c
s
u
_
i
n
i
t
+
0
x
5
6
>
4
0
0
5
f
6
:
3
1
d
b
x
o
r
%
e
b
x
,
%
e
b
x
4
0
0
5
f
8
:
0
f
1
f
8
4
0
0
0
0
0
0
0
0
n
o
p
l
0
x
0
(
%
r
a
x
,
%
r
a
x
,
1
)
4
0
0
5
f
f
:
0
0
4
0
0
6
0
0
:
4
c
8
9
e
a
m
o
v
%
r
1
3
,
%
r
d
x
4
0
0
6
0
3
:
4
c
8
9
f
6
m
o
v
%
r
1
4
,
%
r
s
i
4
0
0
6
0
6
:
4
4
8
9
f
f
m
o
v
%
r
1
5
d
,
%
e
d
i
4
0
0
6
0
9
:
4
1
f
f
1
4
d
c
c
a
l
l
q
*
(
%
r
1
2
,
%
r
b
x
,
8
)
4
0
0
6
0
d
:
4
8
8
3
c
3
0
1
a
d
d
$
0
x
1
,
%
r
b
x
4
0
0
6
1
1
:
4
8
3
9
e
b
c
m
p
%
r
b
p
,
%
r
b
x
4
0
0
6
1
4
:
7
5
e
a
j
n
e
4
0
0
6
0
0
<
_
_
l
i
b
c
_
c
s
u
_
i
n
i
t
+
0
x
4
0
>
4
0
0
6
1
6
:
4
8
8
3
c
4
0
8
a
d
d
$
0
x
8
,
%
r
s
p
4
0
0
6
1
a
:
5
b
p
o
p
%
r
b
x
4
0
0
6
1
b
:
5
d
p
o
p
%
r
b
p
4
0
0
6
1
c
:
4
1
5
c
p
o
p
%
r
1
2
4
0
0
6
1
e
:
4
1
5
d
p
o
p
%
r
1
3
4
0
0
6
2
0
:
4
1
5
e
p
o
p
%
r
1
4
4
0
0
6
2
2
:
4
1
5
f
p
o
p
%
r
1
5
4
0
0
6
2
4
:
c
3
r
e
t
q
4
0
0
6
2
5
:
9
0
n
o
p
4
0
0
6
2
6
:
6
6
2
e
0
f
1
f
8
4
0
0
0
0
n
o
p
w
%
c
s
:
0
x
0
(
%
r
a
x
,
%
r
a
x
,
1
)
4
0
0
6
2
d
:
0
0
0
0
0
0
2
.
为
什
么
不
传
递
“
/
b
i
n
/
s
h
”
的
字
符
串
地
址
到
最
后
调
用
的
s
y
s
t
e
m
(
“
/
b
i
n
/
s
h
”
)
,
而
是
将
”
/
b
i
n
/
s
h
”
写
入
b
s
s
段
因
为
这
里
r
d
i
=
r
1
5
d
=
p
a
r
a
m
1
r
1
5
d
3
2
-
b
i
t
所
以
不
能
传
递
给
r
d
i
6
4
-
b
i
t
的
“
/
b
i
n
/
s
h
”
字
符
串
地
址
,
所
以
必
须
写
入
到
可
写
b
s
s
段
,
因
为
程
序
段
就
3
2
-
b
i
t
总
结
:
返
回
到
0
x
4
0
0
6
1
a
控
制
返
回
到
0
x
4
0
0
6
0
0
执
行
使
r
b
x
=
0
这
样
最
后
就
可
以
=
可
以
构
造
r
o
p
使
之
能
执
行
任
意
函
数
需
要
泄
露
真
实
l
i
b
c
.
s
o
在
内
存
中
的
地
址
才
能
拿
到
s
y
s
t
e
m
_
a
d
d
r
,
才
能
g
e
t
s
h
e
l
l
,
那
么
返
回
调
用
,
从
服
务
端
返
回
w
r
i
t
e
_
a
d
d
r
,
通
过
w
r
i
t
e
_
a
d
d
r
减
去
-
w
r
i
t
e
_
s
t
a
t
i
c
/
l
i
b
c
.
s
y
m
b
o
l
s
[
‘
w
r
i
t
e
’
]
和
s
y
s
t
e
m
_
s
t
a
t
i
c
/
l
i
b
c
.
s
y
m
b
o
l
s
[
‘
s
y
s
t
e
m
’
]
的
差
值
得
到
s
y
s
t
e
m
_
a
d
d
r
,
然
后
返
回
到
m
a
i
n
重
新
开
始
,
但
并
没
有
结
束
进
程
返
回
调
用
g
o
t
_
r
e
a
d
(
r
d
i
=
0
,
b
s
s
_
a
d
d
r
,
1
6
)
,
相
当
于
执
行
,
,
发
送
s
y
s
t
e
m
_
a
d
d
r
,
”
/
b
i
n
/
s
h
”
,
然
后
返
回
到
m
a
i
n
重
新
开
始
,
但
并
没
有
结
束
进
程
返
回
到
b
s
s
_
a
d
d
r
(
b
s
s
_
a
d
d
r
+
8
)
-
>
s
y
s
t
e
m
_
a
d
d
r
(
b
i
n
s
h
_
a
d
d
r
)
开
始
构
造
开
始
构
造
R
O
P
查
看
g
o
t
表
然
后
利
用
代
码
如
下
:
0
0
0
0
7
f
7
6
:
f
3
c
0
b
d
5
7
|
2
f
6
2
6
9
6
e
2
f
7
3
6
8
0
0
6
5
|
/
b
i
n
/
s
h
.
e
|
/
/
/
d
e
v
/
s
t
d
i
n
f
d
/
0
/
/
/
d
e
v
/
s
t
d
o
u
t
f
d
/
1
/
/
/
d
e
v
/
s
t
d
e
r
r
f
d
/
2
r
b
x
,
r
b
p
,
r
1
2
,
r
1
3
,
r
1
4
,
r
1
5
r
d
x
=
r
1
3
r
s
i
=
r
1
4
r
d
i
=
r
1
5
d
c
a
l
l
c
a
l
l
q
*
(
%
r
1
2
,
%
r
b
x
,
8
)
c
a
l
l
q
*
(
r
1
2
+
r
b
x
*
8
)
c
a
l
l
q
*
(
r
1
2
)
g
o
t
_
w
r
i
t
e
(
r
d
i
=
1
,
r
s
i
=
g
o
t
_
w
r
i
t
e
,
r
d
x
=
8
)
g
o
t
_
r
e
a
d
(
r
d
i
=
0
,
b
s
s
_
a
d
d
r
,
8
)
g
o
t
_
r
e
a
d
(
r
d
i
=
0
,
b
s
s
_
a
d
d
r
+
8
,
8
)
p
a
n
d
a
@
u
b
u
n
t
u
:
~
/
D
e
s
k
t
o
p
/
t
e
s
t
$
o
b
j
d
u
m
p
-
R
l
i
n
u
x
_
x
6
4
_
t
e
s
t
3
l
i
n
u
x
_
x
6
4
_
t
e
s
t
3
:
f
i
l
e
f
o
r
m
a
t
e
l
f
6
4
-
x
8
6
-
6
4
D
Y
N
A
M
I
C
R
E
L
O
C
A
T
I
O
N
R
E
C
O
R
D
S
O
F
F
S
E
T
T
Y
P
E
V
A
L
U
E
0
0
0
0
0
0
0
0
0
0
6
0
0
f
f
8
R
_
X
8
6
_
6
4
_
G
L
O
B
_
D
A
T
_
_
g
m
o
n
_
s
t
a
r
t
_
_
0
0
0
0
0
0
0
0
0
0
6
0
1
0
1
8
R
_
X
8
6
_
6
4
_
J
U
M
P
_
S
L
O
T
w
r
i
t
e
@
G
L
I
B
C
_
2
.
2
.
5
0
0
0
0
0
0
0
0
0
0
6
0
1
0
2
0
R
_
X
8
6
_
6
4
_
J
U
M
P
_
S
L
O
T
r
e
a
d
@
G
L
I
B
C
_
2
.
2
.
5
0
0
0
0
0
0
0
0
0
0
6
0
1
0
2
8
R
_
X
8
6
_
6
4
_
J
U
M
P
_
S
L
O
T
_
_
l
i
b
c
_
s
t
a
r
t
_
m
a
i
n
@
G
L
I
B
C
_
2
.
2
.
5
#
!
/
u
s
r
/
b
i
n
/
p
y
t
h
o
n
#
-
*
-
c
o
d
i
n
g
:
U
T
F
-
8
-
*
-
f
r
o
m
p
w
n
i
m
p
o
r
t
*
l
i
b
c
_
e
l
f
=
E
L
F
(
"
/
l
i
b
/
x
8
6
_
6
4
-
l
i
n
u
x
-
g
n
u
/
l
i
b
c
.
s
o
.
6
"
)
l
i
n
u
x
_
x
6
4
_
t
e
s
t
3
_
e
l
f
=
E
L
F
(
"
.
/
l
i
n
u
x
_
x
6
4
_
t
e
s
t
3
"
)
#
p
=
p
r
o
c
e
s
s
(
"
.
/
l
i
n
u
x
_
x
6
4
_
t
e
s
t
3
"
)
p
=
r
e
m
o
t
e
(
"
1
2
7
.
0
.
0
.
1
"
,
1
0
0
0
1
)
p
o
p
_
r
b
x
_
r
b
p
_
r
1
2
_
r
1
3
_
r
1
4
_
r
1
5
_
r
e
t
=
0
x
4
0
0
6
1
a
p
r
i
n
t
(
"
[
+
]
p
o
p
_
r
b
x
_
r
b
p
_
r
1
2
_
r
1
3
_
r
1
4
_
r
1
5
_
r
e
t
=
0
x
%
x
"
%
p
o
p
_
r
b
x
_
r
b
p
_
r
1
2
_
r
1
3
_
r
1
4
_
r
1
5
_
r
e
t
)
r
d
x
_
r
s
i
_
r
d
i
_
c
a
l
l
r
1
2
_
r
e
t
=
0
x
4
0
0
6
0
0
p
r
i
n
t
(
"
[
+
]
r
d
x
_
r
s
i
_
r
d
i
_
c
a
l
l
r
1
2
_
r
e
t
=
0
x
%
x
"
%
r
d
x
_
r
s
i
_
r
d
i
_
c
a
l
l
r
1
2
_
r
e
t
)
"
"
"
0
0
0
0
0
0
0
0
0
0
6
0
1
0
1
8
R
_
X
8
6
_
6
4
_
J
U
M
P
_
S
L
O
T
w
r
i
t
e
@
G
L
I
B
C
_
2
.
2
.
5
0
0
0
0
0
0
0
0
0
0
6
0
1
0
2
0
R
_
X
8
6
_
6
4
_
J
U
M
P
_
S
L
O
T
r
e
a
d
@
G
L
I
B
C
_
2
.
2
.
5
"
"
"
g
o
t
_
w
r
i
t
e
=
0
x
0
0
0
0
0
0
0
0
0
0
6
0
1
0
1
8
p
r
i
n
t
(
"
[
+
]
g
o
t
_
w
r
i
t
e
=
0
x
%
x
"
%
g
o
t
_
w
r
i
t
e
)
g
o
t
_
w
r
i
t
e
2
=
l
i
n
u
x
_
x
6
4
_
t
e
s
t
3
_
e
l
f
.
g
o
t
[
"
w
r
i
t
e
"
]
p
r
i
n
t
(
"
[
+
]
g
o
t
_
w
r
i
t
e
2
=
0
x
%
x
"
%
g
o
t
_
w
r
i
t
e
2
)
g
o
t
_
r
e
a
d
=
0
x
0
0
0
0
0
0
0
0
0
0
6
0
1
0
2
0
g
o
t
_
r
e
a
d
2
=
l
i
n
u
x
_
x
6
4
_
t
e
s
t
3
_
e
l
f
.
g
o
t
[
"
r
e
a
d
"
]
"
"
"
0
0
0
0
0
0
0
0
0
0
4
0
0
5
8
7
<
m
a
i
n
>
:
4
0
0
5
8
7
:
5
5
p
u
s
h
%
r
b
p
"
"
"
m
a
i
n
_
s
t
a
t
i
c
=
0
x
0
0
0
0
0
0
0
0
0
0
4
0
0
5
8
7
#
c
a
l
l
g
o
t
_
w
r
i
t
e
(
r
d
i
=
1
,
r
s
i
=
g
o
t
_
w
r
i
t
e
,
r
d
x
=
8
)
#
r
d
i
=
r
1
5
d
=
p
a
r
a
m
1
r
s
i
=
r
1
4
=
p
a
r
a
m
2
r
d
x
=
r
1
3
=
p
a
r
a
m
3
r
1
2
=
c
a
l
l
_
a
d
d
r
e
s
s
p
a
y
l
o
a
d
1
=
"
A
"
*
1
3
6
+
p
6
4
(
p
o
p
_
r
b
x
_
r
b
p
_
r
1
2
_
r
1
3
_
r
1
4
_
r
1
5
_
r
e
t
)
#
r
e
t
a
d
d
r
e
s
s
:
p
6
4
(
p
o
p
_
r
b
x
_
r
b
p
_
r
1
2
_
r
1
3
_
r
1
4
_
r
1
5
_
r
e
t
)
p
a
y
l
o
a
d
1
+
=
p
6
4
(
0
)
+
p
6
4
(
1
)
#
r
b
x
=
0
r
b
p
=
1
:
p
6
4
(
0
)
+
p
6
4
(
1
)
p
a
y
l
o
a
d
1
+
=
p
6
4
(
g
o
t
_
w
r
i
t
e
)
#
c
a
l
l
_
a
d
d
r
e
s
s
:
g
o
t
_
w
r
i
t
e
p
a
y
l
o
a
d
1
+
=
p
6
4
(
8
)
#
p
a
r
a
m
3
:
8
p
a
y
l
o
a
d
1
+
=
p
6
4
(
g
o
t
_
w
r
i
t
e
)
#
p
a
r
a
m
2
:
g
o
t
_
w
r
i
t
e
p
a
y
l
o
a
d
1
+
=
p
6
4
(
1
)
#
p
a
r
a
m
1
:
1
p
a
y
l
o
a
d
1
+
=
p
6
4
(
r
d
x
_
r
s
i
_
r
d
i
_
c
a
l
l
r
1
2
_
r
e
t
)
#
c
a
l
l
r
1
2
p
a
y
l
o
a
d
1
+
=
p
6
4
(
0
)
*
7
#
a
d
d
$
0
x
8
,
%
r
s
p
#
6
p
o
p
p
a
y
l
o
a
d
1
+
=
p
6
4
(
m
a
i
n
_
s
t
a
t
i
c
)
#
r
e
t
u
r
n
m
a
i
n
p
.
r
e
c
v
u
n
t
i
l
(
'
H
e
l
l
o
,
W
o
r
l
d
n
'
)
p
r
i
n
t
(
"
[
+
]
s
e
n
d
p
a
y
l
o
a
d
1
c
a
l
l
g
o
t
_
w
r
i
t
e
(
r
d
i
=
1
,
r
s
i
=
g
o
t
_
w
r
i
t
e
,
r
d
x
=
8
)
"
)
p
.
s
e
n
d
(
p
a
y
l
o
a
d
1
)
s
l
e
e
p
(
1
)
w
r
i
t
e
_
a
d
d
r
=
u
6
4
(
p
.
r
e
c
v
(
8
)
)
p
r
i
n
t
(
"
[
+
]
w
r
i
t
e
_
a
d
d
r
=
0
x
%
x
"
%
w
r
i
t
e
_
a
d
d
r
)
w
r
i
t
e
_
s
t
a
t
i
c
=
l
i
b
c
_
e
l
f
.
s
y
m
b
o
l
s
[
'
w
r
i
t
e
'
]
s
y
s
t
e
m
_
s
t
a
t
i
c
=
l
i
b
c
_
e
l
f
.
s
y
m
b
o
l
s
[
'
s
y
s
t
e
m
'
]
s
y
s
t
e
m
_
a
d
d
r
=
w
r
i
t
e
_
a
d
d
r
-
(
w
r
i
t
e
_
s
t
a
t
i
c
-
s
y
s
t
e
m
_
s
t
a
t
i
c
)
p
r
i
n
t
(
"
[
+
]
s
y
s
t
e
m
_
a
d
d
r
=
0
x
%
x
"
%
s
y
s
t
e
m
_
a
d
d
r
)
"
"
"
[
2
6
]
.
b
s
s
N
O
B
I
T
S
0
0
0
0
0
0
0
0
0
0
6
0
1
0
4
0
0
0
0
0
1
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
W
A
0
0
1
"
"
"
b
s
s
_
a
d
d
r
=
0
x
0
0
0
0
0
0
0
0
0
0
6
0
1
0
4
0
b
s
s
_
a
d
d
r
2
=
l
i
n
u
x
_
x
6
4
_
t
e
s
t
3
_
e
l
f
.
b
s
s
(
)
p
r
i
n
t
(
"
[
+
]
b
s
s
_
a
d
d
r
=
0
x
%
x
"
%
b
s
s
_
a
d
d
r
)
p
r
i
n
t
(
"
[
+
]
b
s
s
_
a
d
d
r
2
=
0
x
%
x
"
%
b
s
s
_
a
d
d
r
2
)
#
c
a
l
l
g
o
t
_
r
e
a
d
(
r
d
i
=
0
,
r
s
i
=
b
s
s
_
a
d
d
r
,
r
d
x
=
1
6
)
#
g
o
t
_
r
e
a
d
(
r
d
i
=
0
,
r
s
i
=
b
s
s
_
a
d
d
r
,
r
d
x
=
8
)
w
r
i
t
e
s
y
s
t
e
m
#
g
o
t
_
r
e
a
d
(
r
d
i
=
0
,
r
s
i
=
b
s
s
_
a
d
d
r
+
8
,
r
d
x
=
8
)
w
r
i
t
e
/
b
i
n
/
s
h
#
r
d
i
=
r
1
5
d
=
p
a
r
a
m
1
r
s
i
=
r
1
4
=
p
a
r
a
m
2
r
d
x
=
r
1
3
=
p
a
r
a
m
3
r
1
2
=
c
a
l
l
_
a
d
d
r
e
s
s
p
a
y
l
o
a
d
2
=
"
A
"
*
1
3
6
+
p
6
4
(
p
o
p
_
r
b
x
_
r
b
p
_
r
1
2
_
r
1
3
_
r
1
4
_
r
1
5
_
r
e
t
)
#
r
e
t
a
d
d
r
e
s
s
:
p
6
4
(
p
o
p
_
r
b
x
_
r
b
p
_
r
1
2
_
r
1
3
_
r
1
4
_
r
1
5
_
r
e
t
)
p
a
y
l
o
a
d
2
+
=
p
6
4
(
0
)
+
p
6
4
(
1
)
#
r
b
x
=
0
r
b
p
=
1
:
p
6
4
(
0
)
+
p
6
4
(
1
)
p
a
y
l
o
a
d
2
+
=
p
6
4
(
g
o
t
_
r
e
a
d
)
#
c
a
l
l
_
a
d
d
r
e
s
s
:
g
o
t
_
r
e
a
d
p
a
y
l
o
a
d
2
+
=
p
6
4
(
1
6
)
#
p
a
r
a
m
3
:
1
6
p
a
y
l
o
a
d
2
+
=
p
6
4
(
b
s
s
_
a
d
d
r
)
#
p
a
r
a
m
2
:
b
s
s
_
a
d
d
r
p
a
y
l
o
a
d
2
+
=
p
6
4
(
0
)
#
p
a
r
a
m
1
:
0
p
a
y
l
o
a
d
2
+
=
p
6
4
(
r
d
x
_
r
s
i
_
r
d
i
_
c
a
l
l
r
1
2
_
r
e
t
)
#
c
a
l
l
r
1
2
p
a
y
l
o
a
d
2
+
=
p
6
4
(
0
)
*
7
#
a
d
d
$
0
x
8
,
%
r
s
p
6
p
o
p
p
a
y
l
o
a
d
2
+
=
p
6
4
(
m
a
i
n
_
s
t
a
t
i
c
)
p
.
r
e
c
v
u
n
t
i
l
(
'
H
e
l
l
o
,
W
o
r
l
d
n
'
)
p
r
i
n
t
(
"
[
+
]
s
e
n
d
p
a
y
l
o
a
d
2
c
a
l
l
g
o
t
_
r
e
a
d
(
r
d
i
=
0
,
r
s
i
=
b
s
s
_
a
d
d
r
,
r
d
x
=
1
6
)
"
)
#
r
a
w
_
i
n
p
u
t
(
)
p
.
s
e
n
d
(
p
a
y
l
o
a
d
2
)
#
r
a
w
_
i
n
p
u
t
(
)
p
.
s
e
n
d
(
p
6
4
(
s
y
s
t
e
m
_
a
d
d
r
)
+
"
/
b
i
n
/
s
h
0
"
)
#
s
e
n
d
/
b
i
n
/
s
h
0
"
"
"
0
0
0
0
0
0
0
0
:
0
0
6
0
1
0
4
0
|
0
0
0
0
7
f
1
1
1
b
9
4
1
3
9
0
|
.
.
.
.
.
.
.
.
|
0
0
0
0
0
0
0
0
:
0
0
6
0
1
0
4
8
|
0
0
6
8
7
3
2
f
6
e
6
9
6
2
2
f
|
/
b
i
n
/
s
h
.
|
"
"
"
s
l
e
e
p
(
1
)
p
.
r
e
c
v
u
n
t
i
l
(
'
H
e
l
l
o
,
W
o
r
l
d
n
'
)
#
c
a
l
l
b
s
s
_
a
d
d
r
(
r
d
i
=
b
s
s
_
a
d
d
r
+
8
)
s
y
s
t
e
m
_
a
d
d
r
(
r
d
i
=
b
i
n
s
h
_
a
d
d
r
)
#
r
d
i
=
r
1
5
d
=
p
a
r
a
m
1
r
s
i
=
r
1
4
=
p
a
r
a
m
2
r
d
x
=
r
1
3
=
p
a
r
a
m
3
r
1
2
=
c
a
l
l
_
a
d
d
r
e
s
s
回复
举报
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
!disable!!post_parseurl!
使用Markdown编辑器编辑
使用富文本编辑器编辑
回帖后跳转到最后一页