摘要:
TableWidget组件当开启了sortingEnable后,重新插入数据时,有时数据会消失。 解决方案: 每次在执行插入数据时,插入前关闭sortingEnable,插入后再打开sortingEnable。 如图所示: 阅读全文
摘要:
使用QtNetwrok库的https协议时,若出现UnknownNetworkError的错误,可能是因为缺少SSL相关的加密工具。 解决方案: 下载对应版本的OpenSSL,将两个对应的dll放入到exe同级目录下 (OpenSSL下载地址:http://slproweb.com/products 阅读全文
摘要:
控制寄存器(CR0~CR3)用于控制和确定处理器的操作模式以及当前执行任务的特性。 CR0中含有控制处理器操作模式和状态的系统控制标志; CR1保留不用; CR2含有导致页错误的线性地址; CR3中含有页目录表物理内存基地址,因此该寄存器也被称为页目录基地址寄存器PDBR(Page-Director 阅读全文
摘要:
IPC有以下方式: 1.文件映射(内存映射) 2.邮件槽 3.管道 4.剪切板 5.父子进程 6.网络TCP 1.文件映射(数据量大,本地进程间) a.命名映射 A进程:打开文件,获得文件句柄,创建文件映射,获得映射句柄,将文件映射对象映射到当前地址空间,进行读写操作,卸载映射、关闭句柄 hFile 阅读全文
摘要:
CreateThread的函数声明如下: 点击查看代码 HANDLE WINAPI CreateThread( _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ SIZE_T dwStackSize, _In_ LPTHREAD_STAR 阅读全文
摘要:
R3层枚举进程模块的方法有以下三种: 1.ToolHelp库 2.PsApi库 3.遍历Peb中的Ldr链表 1.ToolHelp库: 点击查看代码 HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, 0); if (hSna 阅读全文
摘要:
R3层枚举进程主要有两种方法,使用ToolHelp库及PsApi库 ToolHelp库: 点击查看代码 HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnapshot == INVALID_HANDL 阅读全文
摘要:
创建进程共有六个阶段: I:打开目标映像文件 Ⅱ:创建Windows的(内核)管理层进程对象,即“进程控制块”EPROCESS数据结构及相应的句柄 Ⅲ:创建该进程的初始(第一个)线程,包括其堆栈、上下文,以及“管理层线程对象”,即“线程控制块”ETHREAD数据结构及相应的句柄 Ⅳ:将新创建的进程通 阅读全文
摘要:
分页机制和映射过程 x86 : CR3-PDT-PTT-offset 10-10-12 x86 with PAE : CR3-PDPT-PDT-PTT-offset 2-9-9-12 EPT(x64) : EPTP-PML4E-PDPTE-PDE-PTE-offset 9-9-9-9-12 x86 阅读全文
摘要:
KiFastCallEntry函数有什么用??? Ring0层Zw系列函数(如ZwSetEvent)在设置完函数服务号之后会调用KiSystemService函数, 在KiSystemService函数中又会跳转到KiFastCallEntry函数内部获取SSDT表的基地址,系统函数服务号,进而获得 阅读全文
摘要:
SSDT表是什么?有什么用? SSDT(System Service Descriptor Table,系统服务描述符表),用来存储服务函数索引及服务函数地址。通过该表被保护起来,只具读的属性,不能写。(不过可以使用CRO寄存器的第1位来改变SSDT的属性。CRO寄存器第1位叫做保护属性位,控制着页 阅读全文
