摘要:
const 限定符 在编译器中限制变量,设定该变量不可被改变,但实际上系统里还是将由 const 修饰的值识别为一个变量(只是在编译器中进行限制) 注意: 由 const 修饰的变量必须在定义时就进行初始化 const 和引用 对常量的引用:不能被用作修改他所绑定的对象,可以指向一个常量对象,也可以 阅读全文
摘要:
结构体定义及结构体粒度(alignment) #pragma pack(1) typedef struct _STUDENT_INFORMATION_ { int Age; char v1; int v3; char v2; }STUDENT_INFORMATION; 结构体的成员对齐值: 结构体中 阅读全文
摘要:
这里写得很简洁,实际上堆的机制比较复杂,我详细地学习了 Windows 下的堆管理机制,如果对这部分感兴趣的话,可以参考我的另一篇文章:https://www.cnblogs.com/XiuzhuKirakira/p/16986744.html 栈和堆的区别 1)生命周期 栈:生命周期在被调用函 阅读全文
摘要:
2. HEVD 栈溢出漏洞训练 2.1 漏洞原理 当函数退出的时候,会将保存在栈中的返回地址取出,跳转到该地址继续执行,以此来执行函数调用以后的程序。而如果用户的输入没有得到控制,覆盖掉了这个返回地址就会让函数退出的时候,执行我们指定的地址的代码。 2.2 漏洞分析 若将该驱动当成没有源码的 阅读全文
摘要:
1. HEVD 概述 + 环境搭建 HEVD作为一个优秀的内核漏洞靶场受到大家的喜欢,这里选择x86的驱动来学习内核漏洞,作为学习笔记记录下来 实验环境 | 环境 | 备注 | | | | | 调试主机操作系统 | Windows 10 x64(随便什么操作系统都行) | | 被调试主机的操作系 阅读全文