![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++ pwn
文章平均质量分 94
看星猩的柴狗
IT爱好者一枚,菜狗CTF-PWN手,记录自己的学习经历,请大佬多多指点
展开
-
c++异常处理-漏洞利用
throw 函数会从当前函数找,然后往上找上个调用当前函数的函数,查看是否有函数有合适的catch处理模块,当前函数没有合适的catch处理模块就会把当前函数的栈帧给清除掉恢复到调用当前函数的函数,依次这样,知道找到合适的catch处理模块,然后再该模块下继续往后执行。最后,当异常被正确地传递给一个catch块时,控制权会转移给catch块中的代码,程序可以从异常发生点之后继续执行,此时寄存器和堆栈已经恢复到一个已知的、安全的状态。显示DWARF信息中的框架信息(Frame Information)。原创 2024-06-14 09:52:21 · 608 阅读 · 0 评论 -
2024 cicsn magicvm
最后没有指令可以执行vm::run退出会执行之前写入的rop,最后这里加个ret是system执行时候对齐。vud和改变值不是立即如果解析得到vid之后改变值(之前的指令到达mem步),那么就可以绕过vid检查。存在延迟,有个依赖关系,各个结构体的isvalid变量,代表前一步是否执行完。往database在vm结构体所在地址写入栈的返回地址所在地址。控制到database在vm上的位置。得到environ内的栈地址。泄露database的地址。泄露environ地址。写入system地址。原创 2024-06-02 23:34:14 · 1173 阅读 · 0 评论 -
C++的类和new和delete和菱形继承机制
要声明一个虚函数,需要在基类的成员函数声明前加上。原创 2024-06-02 09:52:01 · 1054 阅读 · 0 评论 -
2023 N1CTF Junior pwn 顶级签到
的设计理念是零成本的字符串引用,它不涉及内存管理,不对字符串进行拷贝,仅提供对已存在字符串的视图。是一个轻量级的字符串视图类,它不拥有字符串的内存,而是一个对现有字符串的引用。提供了完全的字符串管理,包括内存分配和所有权,适合需要修改字符串或独立存储字符串数据的场景。是一个模板类,可以用来同时存储两个相关的值,通常这两个值可以是不同类型。这里,即使传入的是一个临时的字符串字面量,str也会在栈上创建一个副本。作为一个高效的只读视图,适用于不需要修改字符串且希望避免拷贝开销的场合。对象是否使用了SSO。原创 2024-06-01 21:04:42 · 847 阅读 · 0 评论 -
c++虚表和虚基类和析构和构造和继承相关机制
抽象类是一种不能直接实例化的类,其存在的目的是作为基类,为派生类提供一个公共接口。抽象类中可以包含具体的方法(即有实现的方法)和抽象方法(即没有实现的方法)。抽象类通常用来定义一个接口规范,强制要求继承它的子类必须实现某些方法。在C++中,一个类只要包含至少一个纯虚函数,它就是抽象类。抽象类的实例化是不被允许的,即不能直接创建抽象类的对象。抽象类:不能直接实例化,包含至少一个纯虚函数,为派生类提供接口规范。纯虚函数:没有具体实现的虚函数,强制派生类必须实现,使得一个类成为抽象类。虚函数。原创 2024-05-20 00:29:40 · 933 阅读 · 0 评论