pwnable.kr uaf 知识点总结

编程入门 行业动态 更新时间:2024-10-27 11:23:06

pwnable.kr uaf    <a href=https://www.elefans.com/category/jswz/34/1770093.html style=知识点总结"/>

pwnable.kr uaf 知识点总结

1.学到了一个命令
scp -P 2222 uaf@pwnable.kr:/home/uaf/uaf /home/dqy/Desktop
可以远程下载文件到虚拟机中

2.C++类对象内存结构
参考的博客
虽然看了很多但是对C++的虚函数表的不是很理解,现在对虚函数表的认识就是每一个对象如果有虚函数则会有一个虚函数表,其子类会继承基类的虚函数表,并且会有一个vptr指针指向这张虚函数表,如果子类中含有与基类同名的虚函数,则会更新虚函数表中的表项,使其指向子类中的虚函数,这个vptr指针放在类内部结构的前4/8个字节中。

3.delete 函数的作用
参考的博客
里面有句话:“空间释放后,指针变量p并没有撤销,该指针所占用的内存空间并未释放,p变为空指针。"
看到p变为空指针以为p 的值就变成了 NULL了,为了确认一下自己写了个程序试验,结果发现自己理解错了

#include <cstdio>
#include <iostream>class A{public:A(){b = 1;}int b;
};int main(void){A *a = new A();A *p1 = a, *p2 = a;printf("%d\n",p1->b);printf("%p\n%p\n%p\n",a, p1, p2);delete p1;if(p1 == NULL){printf("%d\n", p2->b);}else{printf("%p\n", p1);printf("%p\n", p2);printf("%p\n", a);printf("%d %d %d\n", p1->b, p2->b, a->b);}return 0;
}/*
output:
1
0x55ec23665e70
0x55ec23665e70
0x55ec23665e70
0x55ec23665e70
0x55ec23665e70
0x55ec23665e70
0 0 0p1 的地址释放前后没有变化,只是p1 指向的堆空间里的数据被清空了
*/

4.**Human 的子类Man,Woman都有自己的虚函数表,地址都不一样,
Huam的虚函数表的地址:0x401590
Man的虚函数表的地址:0x401570
Woman的虚函数表的地址:0x401550
这三个地址用哪个减去0x8 写入data空间中都可以getshell **

更多推荐

pwnable.kr uaf 知识点总结

本文发布于:2023-07-28 17:50:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1267571.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:知识点   pwnable   kr   uaf

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!