数据段代码段的权限规则
- 段的权限规则 代码段、数据段、堆栈段;
- 跨段跳转不提权 写法 jmp call;
裸函数知识点
- 关闭
增量链接
; - 关闭
随机基址
;
代码实验
1 | // 裸函数 不生成多余汇编代码 |
数据段代码段的权限规则知识点
- DPL: Descriptor privilege level;
- CPL: Current privilege level(CS段描述符的DPL);
- RPL: Request privilege level;
普通的数据段(DS、ES)下RPL可以乱给的;
在堆栈段(SS)下是有用的, RPL == CPL == DPL才能更改;
在代码段(DS)上是没用的, CPL == DPL能更改, RPL系统会改回去;
代码实验
1 |
跨段不提权跳转会将ESP和CS压到堆栈中, 所以会是ESP-8;
使用retf
;