摘要:
第三十八课 c++6 模板 1.冒泡排序和折半查找 void Sort(int* arr,int nLength) { int i; int k; for(i=0;i<nLength-1;i++) { for(k=0;k<nLength-1-i;k++) { if(arr[k]>arr[k+1]) 阅读全文
摘要:
第三十六课 c++3 权限控制 1.定义和实现分开写 2.private和public private权限说明 私有变量在类外是无法访问的,只有在类内或者使用类内函数访问 类内函数访问 3.private真的不能访问吗 反汇编看看t对象在初始化public和private成员时都是一视同仁的,在底层 阅读全文
摘要:
第三十四课 c++1 this指针 海哥的一句话:学c++就是学编译器帮我们做了多少事情 1.结构体参数传递 结构体直接作为函数参数传递时,本质上是将结构体成员copy一份传到函数的栈中,这样会比较浪费空间。所以一般我们使用结构体指针传参 struct Base{ int x; int y; /*i 阅读全文
摘要:
第三十一课 重定位表 一.引入重定位表 1.程序加载过程 程序加载后,操作系统会给程序分4GB虚拟内存, 先装载自身的.exe:如先把ipmsg.exe拉伸贴到ImageBase(0x00400000),分配空间大小为SizeOfImage(0x3D000) 但并不是所有文件的ImageBase都是 阅读全文
摘要:
第二十八节课 数据目录 1.数据目录是什么 可选PE头最后一个成员,就是数据目录,一共有16个分别是:导出表的数据目录、导入表的数据目录、资源表的数据目录、异常信息表的数据目录、安全证书表的数据目录、重定位表的数据目录、调试信息表的数据目录、版权所有表的数据目录、全局指针表的数据目录、TLS表的数据 阅读全文
摘要:
第二十五课 FileBuffer-ImageBuffer 1.PE文件执行的总过程 第二十三课已经说过了,文件先复制一份读入虚拟内存中(FileBuffer),接着要运行时将FileBuffer中的文件数据拉伸,重载到4GB的虚拟内存中(ImageBuffer) 但ImageBuffer还不是文件运 阅读全文
摘要:
第二十三课 PE头手动解析 参考文章https://blog.csdn.net/Edimade/article/details/124540050?spm=1001.2014.3001.5502 1.PE结构前言 a.硬盘和加载到内存的文件结构异同 硬盘上的exe打开后首地址是从0开始(逻辑地址); 阅读全文