05 2022 档案
摘要:##动态链接库: 动态链接库英文DLL 是Dynamic Libarary得缩写。 DLL中包含若干公用的代码、数据等,可供其他模块(DLL或exe文件等)使用 DLL中并不是所有的函数都必须供其他模块使用,只有经过** 导出(export)**后才允许被外部正常调用 ##动态的由来 DLL最初用于
        阅读全文
                
摘要:##访问控制 如下代码,Student这个类的所有成员我们都可以调用,但是我们不想让被人调用Print1这个方法该怎么? struct Student { int age; int sex; void Print1() { printf("Func Print1"); } void Print() 
        阅读全文
                
摘要:##继承 struct Person { int age; int sex; }; struct Teacher { int age; int sex; int level; int classId; }; 如上代码中可以看见,Teacher类与Person类都存在着相同的2个成员age和sex,那
        阅读全文
                
摘要:##构造函数 struct Student { int a; int b; Student() { printf("Look."); } void Init(int a, int b) { this->a = a; this->b = b; } }; 如上代码中,我们发现了存在一个函数,这个函数没有
        阅读全文
                
摘要:##概述 C是对C的拓展,C原有的语法C都支持,并在此基础上拓展了一些语法:封装、继承、多态、模板等等。 C++拓展新的语法是为了让使用更加方便、高效,这样就需要编译器多做了很多事情,接下来我们就需要一一 学习这些概念。 ##封装 之前我们学习过结构体这个概念,那么结构体可以做参数传递吗?我们来看一
        阅读全文
                
摘要:##RVA与FOA的转换 想象一下,如果你想通过逆向的方式改变一个全局变量的初始值,该怎么做?首先我们可以写一个程序,输出一个全局变量的地址和值: int a = 0x 12345678; int main(){ printf("Address: 0x%x \n",&a); printf("Valu
        阅读全文
                
摘要:##DOS头 在之前,我们已经了解过PE文件的整体结构了,并且我们进行了静动态差异的文件分析,其开头部分就是DOS 部分,包含了DOS MZ文件头和DOS块,那么我们来了解一些DOS部分的结构和其相关意义。 ###DOS MZ文件头 DOS MZ文件头就是一个结构体IMAGE_DOS_HEADER,
        阅读全文
                
摘要:##可执行文件 在了解PE之前,我们需要知道什么是可执行文件,从字面理解可执行文件就是可以由操作系统进行加载执行的文件。 Windows平台下的可执行文件的格式,我们称之为PE(Portable Executable)文件结构;Linux平台下的可执 行文件格式,我们称之为ELF(Executabl
        阅读全文
                
摘要:##线程安全问题 每个线程都有自己的栈,而局部变量是存储在栈中的,这就意味着每个线程都有一份自己的局部变量,如果线程仅仅使用"局部变量"那么就不存在线程安全问题。 反之如果多个线程共有一个全局变量呢?那么在什么情况下会有问题呢?那就是当多线程共用一个全局变量并对其进行修改时则存在安全问题,如果仅仅是
        阅读全文
                
摘要:##创建进程 #include "stdafx.h" #include <stdlib.h> #include <windows.h> int main(int argc, char* argv[]) { TCHAR childProcessName[] = TEXT("C:/WINDOWS/sys
        阅读全文
                
摘要:##4.1了解什么是Win32API Win32API就是windows操作系统提供给我们的函数(应用程序接口),其主要存放在C:\Windows\System32 (存储的DLL是64位)、C:\Windows\SysWOW64(存储的DLL是32位)下面的所有DLL文件(几千个) 重要的DLL文
        阅读全文
                
摘要:##加法 加法对应的汇编add指令。如果是加1有可能就会使用inc指令 而加法也特别简单。配合上优化方式.可以很好还原的 //加法 int NumberOne = 0; int NumberTwo = 10; //scanf是防止优化 scanf("%d",&NumberOne); scanf("%
        阅读全文
                
摘要:#反汇编代码中的优化方式 ##一优化方式 ###优化方式分类 汇编中的加法、减法、乘法、除法 、 取模等等 都是优化方式。 ###优化方式的分类 常量折叠 常量传播 变量去除 归并优化 Cpu流水线优化 数学变换 不可达分支优化 代码外提优化 优化前提是在Release下且开启o2选项化速度的前提D
        阅读全文
                
摘要:恢复内容开始 ##Switch语法格式 Switch(表达式) { case 常量表达式1: 语句; break; case 常量表达式2: 语句; break; case 常量表达式3: 语句; break; default: 语句; break; } ##Switch注意事项 * case后面必
        阅读全文
                
 
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号