随笔分类 - 15PB笔记
在15PB半年学习记录
摘要:六,注入与HOOK dll注入 我们想在远程的进程中注入一段程序,即我们写的代码,注入一个dll是最合适,也是最方便的 注入dll的套路: 一,打开进程,获取到进程句柄 二,根据打开的进程,我们在远程进程上开辟内存空间,方便我们一会将dll写入开辟的空间内 三,我们先将dll的路径写入开辟的虚拟内存
阅读全文
摘要:1. 进程 进程就是一个正在运行当中的程序 我们理解进程可以把它当做一个容器来理解,容器里面包含的有线程,其本身并没有执行代码的能力。因此我们在进程的创建之初都会创建一个主线程用于执行代码,如果此主线程结束,系统就会销毁这个进程内核对象 进程简单的分为两种:系统进程和用户进程 系统进程就是用于完成操
阅读全文
摘要:编写的步骤: 1.包含头文件和库 #include<winsock2.h> #progma comment(lib,"ws2_32.lib") 2.指定需要使用的winsock规模最高版本,并初始化winsock,装入winsock.dll WSAstartup(MAKEWORD(2,2),&wsa
阅读全文
摘要:1.一个简单的警告框 #include <windows.h> #include "stdio.h" int APIENTRY wWinMain( HINSTANCE hInstance, HINSTANCE hPreInstance, LPTSTR lpCmd, int nCmd ){ //一个简
阅读全文
摘要:WINDOW窗口相关点 风格:Windows窗口风格三个典型风格:重叠窗口,弹出窗口,子窗口 分别是:WS_OVERLAPPED WS_POPUP WS_CHILD 控件基础 控件时windows系统内置的窗口类,他们时某一个窗口的子窗口,所以创建他们的风格必须是WS_CHILD 控件消息: 控件消
阅读全文
摘要:sscanf_s(); 字符串转数字 atoi(目标字符串) sprintf_s(); 数字转字符串 SetLastError(); 每个线程下,保存错误码函数,在API函数退出前都会调用此函数 GetLastError(); 在API结束后,紧跟着调用此函数们能够得到错误码,多用于检测API是否使
阅读全文
摘要:dll又称动态链接库 他是实现操作系统共享函数库概念的一种方式,我们常见的dll有 系统API模块文件: user32.dll kernel132.dll ActiveX控件: windows上的日历控件 控制面板: 控制面板上的每一项都是一个专用的DLL 设备驱动程序文件: 打印机程序 dll文件
阅读全文
摘要:1. CUI程序与GUI程序 CUI程序:控制台界面 GUI程序:图形用户界面程序 2. windows编程头文件 通常我们包含windows.h头文件,它是一个 综合型头文件。 其次还有一些头文件,例如:tchar.h,通用字符串的定义 Commctrl.h控件API的定义 3. WinMain函
阅读全文
摘要:循环结构 循环结构 一,while循环 使用方式和之前学的一致,这里只说新加入的 while...else 当while语句条件为false时候执行else (else和while平级) 二,for循环 和之前的有差别,它支持序列和迭代器作为参数 简单用法: 新增的for-else语句 和while
阅读全文
摘要:元组 元组与列表类似,不同之处在于元组的元素不可修改 元组 元组 元组 元组使用小括号,列表使用方括号 命名方式: 普通命名:tup1=('哈哈' , '蛤蛤' , '嘿嘿') tup2='abv', 'jinf' , '222',5 (不同括号也可以) 这里解释下,无关闭分割符,用逗号隔开 默认元
阅读全文
摘要:. python简介 Python是一种解释型语言 Python使用缩进对齐组织代码执行,所以没有缩进的代码,都会在载入时自动执行 数据类型:整形 int 无限大 浮点型 float 小数 复数 complex 由实数和虚数组成 Python中有6个标准的数据类型: Number(数字) Strin
阅读全文
摘要:类和对象 类的定义这里不多赘述,直接看数据属性 数据属性分为实例属性和类属性: 实例属性:是在构造函数__init__定义时候以self作为前缀,实力属性属于实例所有,只能通过对象名去访问 类和对象 类的定义这里不多赘述,直接看数据属性 数据属性分为实例属性和类属性: 实例属性:是在构造函数__in
阅读全文
摘要:双进程守护思路: 就是进程A 打开后,发现进程B没有打开,就主动去打开进程B, 并且实时监控进程B是否被关闭,如果进程B被关闭了,就再去打开进程B 进程B的代码也一样,去守护进程A 核心思路就是事件对象 这里给出伪代码: //1.创建一个进程A的事件对象 HANDLE EventB = Create
阅读全文
摘要:NEW int *p=new int [10] p指向了第一个int地址 方括号内的必须是整形,但不必是常量 还可以用一个数组类型的类型别名来分配一个数组 <wiz_code_mirror> typedef int arr[10]; //arr表示10个int的数组类型 int *p = new a
阅读全文
摘要:define 没有类型,不能指明一组数据之间具有关联性, 有参宏的时候,逻辑不符合计算逻辑 容易产生误解 宏的结尾不用分号 宏的作用域是从定义位置开始,到文件结束,如果要终止宏定义的作用域,则可以用#undef 宏名称 #define PI 3.14 ....... #undef PI const
阅读全文
摘要:虚函数 虚函数的存在说明了C++的多态性 实现的方法:父类指针指向了子类对象,调用虚函数,调用的是子类的虚函数 (如果没有虚函数,那么无论用父类指针怎么调用函数,会永远调用父类函数,因为这是静态联编) 只有通过基类指针或者引用去调用虚函数,才会引发动态联编 基类中的虚函数,在派生类中也是虚函数,即使
阅读全文
摘要:类中的静态成员 1. 在类中的静态数据,属于类共享,不属于对象独有 2. 即使没有定义对象,静态成员也是存在的 3. 静态数据成员在类中说明,在类外定义 并且会给他分配内存空间,并初始化(一经定义则必须初始化) 4. 可以通过对象去访问静态成员,但是这里容易让人产生误解,以为他们是成员变量(静态成员
阅读全文
摘要:1. 友元的声明只能出现在类的内部,但是在类内出现的具体位置不限制,友元函数不是类的成员 也不受所在区域访问控制级别的限值 2. 友元函数的定义可以在类内也可以在类外 3. 友元函数它不是成员函数,它不受作用域的限值,不属于类,也不属于对象,他就是一个普通的函数 友元函数使用典型错误: <wiz_c
阅读全文
摘要:1.new申请对堆空间,方括号里必须是整型, int * p =new int [10] () 加括号全部初始化为0 int * p =new int [10] {1,2,3,4,5} 加大括号按位置初始化 动态分配一个空数组是合法的 char *p =new char[0] (合法) 释放动态数组
阅读全文

浙公网安备 33010602011771号