摘要: 宽字节 1、什么是ASCII码? 一张存储了字母大小写与一些符号的表,用一个字节表示,最高位不使用,最多只能存储128个符号或字母,但世界上有很多种语言,这远远不够 2、什么是扩展ASCII码? 把最高位也拿来使用,但还是不够 3、什么是GB2312? 天朝专家舍弃了扩展ASCII码,新增一个字节, 阅读全文
posted @ 2021-03-29 21:12 Punished 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 线程安全问题 临界区的设计思路: 线程安全问题的产生,我认为主要是不能够确定两个或多个线程操作同一资源时(全局变量),是否已经操作完毕,而临界区的设计,就像要去上公共厕所的两个人,一个人进去上厕所时会锁门(发布一个令牌),另一个人去上厕所时因为门锁了就进不去了,只能等第一个人出来才能进去。 这样确定 阅读全文
posted @ 2021-03-29 21:10 Punished 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 觉得好玩,记录一下 1 #include <iostream> 2 #include <windows.h> 3 4 #define path L"E:\\QQ\\Bin\\QQScLauncher.exe" 5 #pragma comment(linker,"/subsystem:\"window 阅读全文
posted @ 2021-03-29 21:05 Punished 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 基本指令操作 EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI 32位通用寄存器 r8 代表8位寄存器(byte) m16 代表16位内存(word) imm 代表立即数 sub 减 add 加 mov eax,dword ptr ds:[0x12ff03] 把内存12ff03里面的值 阅读全文
posted @ 2021-03-29 21:00 Punished 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 位移运算 1、与运算 & 2、或运算 | 3、非运算 ~ 4、异或运算 ^ 5、移位运算 << >> 内存分配,文件读写 宏定义说明 一、无参数的宏定义的一般形式为:# define 标识符 字符序列 如:# define TRUE 1 # define PI 3.1415926 注意事项: 1、只 阅读全文
posted @ 2021-03-29 20:59 Punished 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 编译环境 xp + vc6 加壳过程 把源文件(被保护的exe),加密后放入到壳子程序的最后一个节里 实现代码 宏 1 #define ENDPATH "C:\\LOADSHELL.exe" //加壳后文件存放的路径 壳子程序新增加节 参数说明: path :要新增节文件的路径 n:要新增多少字节 阅读全文
posted @ 2021-03-29 20:57 Punished 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 面向对象语言三大特征: 封装,多态,继承 封装: 1、将函数定义到结构体内部,就是封装. 2、编译器会自动传递结构体的指针给函数. 类: 带有函数的结构体,称为类. 成员函数: 结构体里面的函数,称为成员函数. this指针: c++中默认传递一个对象首地址,这个地址就是this指针 thie指针特 阅读全文
posted @ 2021-03-29 20:56 Punished 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 原理 核心函数 CreateRemoteThread:让在其他进程中创建一个线程变成可能 核心思想 HANDLE WINAPI CreateRemoteThread( __in HANDLE hProcess, __in LPSECURITY_ATTRIBUTES lpThreadAttribute 阅读全文
posted @ 2021-03-29 20:54 Punished 阅读(224) 评论(0) 推荐(0) 编辑
摘要: HOOK 1.监控 2.行为改变 改变执行流,让函数先到我这里,获得优先执行权 思路 导入表中有个IAT表,在导入表结构中的FirstThunk.在调用一些API时,只要是LoadLibrary的dll,其中的API都会在IAT表中,我们可以通过IAT表来寻找我们想要"了解"的函数,并对其进行操作, 阅读全文
posted @ 2021-03-29 20:52 Punished 阅读(92) 评论(0) 推荐(0) 编辑