logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

汇编——寻址方式

ESP 寻址是以栈指针ESP作为基准地址,搭配固定偏移量 ESP+数值 读写栈内参数、临时数据的寻址方式,是堆栈传参函数读取入参的核心手段学习前提:掌握寄存器传参、堆栈压参调用逻辑。

#开发语言#网络安全
汇编——堆栈平衡

栈由操作系统为进程预先分配,承担函数参数传递、保存返回地址、存放局部临时数据、寄存器现场等工作堆栈平衡:调用函数前与函数完全执行完毕后,ESP 栈指针数值必须一模一样,栈整体状态完全还原核心要求:函数内部临时增减 ESP 没关系,但 RET 返回前必须抵消掉参数压栈带来的 ESP 偏移;失衡会栈错乱、数据读取错误、程序崩溃。

#网络安全#开发语言
汇编——堆栈平衡

栈由操作系统为进程预先分配,承担函数参数传递、保存返回地址、存放局部临时数据、寄存器现场等工作堆栈平衡:调用函数前与函数完全执行完毕后,ESP 栈指针数值必须一模一样,栈整体状态完全还原核心要求:函数内部临时增减 ESP 没关系,但 RET 返回前必须抵消掉参数压栈带来的 ESP 偏移;失衡会栈错乱、数据读取错误、程序崩溃。

#网络安全#开发语言
汇编——寄存器传参与栈传参

1.32 位 x86 通用寄存器一共 8 个(EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP);ESP/EBP 专门负责栈管理,一般不拿来传参,实际可用传参寄存器更少2.上限约束:能塞进寄存器的参数数量很少,参数一多寄存器不够用,必须改用堆栈传参。

#网络安全#开发语言
汇编——堆栈

1.栈(堆栈)是进程虚拟内存里一块专属内存区域,程序加载时由操作系统自动划分分配;每个 32 位进程独享 4GB 虚拟地址空间,栈是其中固定分区2.普通堆内存需要程序员手动调用 API(如 malloc、VirtualAlloc)向系统申请释放;栈无需手动申请,系统预先分配好直接使用3.栈专门存放运行时临时数据:函数局部变量、函数返回地址、寄存器现场、函数参数、临时运算值。

#开发语言#网络安全
汇编——内存

可用全部 8 个 32 位通用寄存器(EAX/EBX/ECX/EDX/ESI/EDI/EBP/ESP)mov eax, dword ptr [0x401000];规则:比例值只能是 1/2/4/8(适配字节、字、双字、64 位数据数组)格式:[寄存器 + 常数] / [寄存器 - 常数]格式:[基址寄存器 + 变址寄存器 × 比例值]格式:[寄存器 × 比例值]

#算法#网络安全#开发语言
C++static关键字

面向过程(C 语言)①函数内 static 局部变量:生命周期全局,仅初始化一次,函数内私有②static 全局变量 /static 普通函数:作用域锁定当前文件,外部不可访问C++ 类中静态成员①静态成员变量:全类共享,存全局区,类外初始化,无对象也能访问②静态成员函数:无 this 指针,只能操作静态成员,通过类名直接调用3.单例模式①依靠「私有构造+静态对象指针+静态获取函数」, 限制全局仅

#c++#开发语言#网络安全
C++类成员的访问控制

public:公开的 谁都能访问(外面、内部、子类都可以)private:私有的只有自己内部能访问 (外面不能访问,子类也不能访问)protected:受保护的 (自己 + 子类 能访问 ,外面不能访问)struct 和 class 的默认权限struct 结构体 不写权限 → 默认 public(公开)class 类 不写权限 → 默认 private(私有)

#c++#开发语言#网络安全
C++引用类型

1.引用类型是C++中拓展出的新类型,在C语言中不存在2.引用类型与指针不完全相同,但又做了很多指针才能做的事情。

#c++#jvm#开发语言 +1
C++面向对象程序设计之继承与封装

1.继承允许子类继承父类的成员变量和成员函数2.子类可以访问父类的数据成员和函数3.语法层面,子类通过冒号和父类名指定使用父类的构造函数。

#c++#开发语言#网络安全
    共 12 条
  • 1
  • 2
  • 请选择