摘要:
为什么用_beginthreadex而不用CreateThread函数原因: 1.主要考虑的是线程上下文的切换,如果一个线程设置了全局变量erron 此时它的执行挂起或者中断了,进程执行其他线程去了正好它调用了C/C++运行库创建了相同名字的全局变量,拿回来后之前的全局变量改了值就会出错,所以我们最 阅读全文
摘要:
NTSTATUS ScanProcessHandleTable(PEPROCESS EProcess){ NTSTATUS Status = STATUS_UNSUCCESSFUL; PHANDLE_TABLE HandleTable = NULL; PVOID TableCode = NULL; 阅读全文
摘要:
#include "stdafx.h"#include <windows.h>#include <iostream> using namespace std; #define PAGE_SIZE 0x1000void Sub_1(); //ReadFile 异步操作void Sub_2(); //R 阅读全文
摘要:
// Overlapped.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h"#include <windows.h>#include <iostream>using namespace std;VOID CALLBACK CompletionRoutine( _In_ 阅读全文
摘要:
因为我只是简单对比了windows核心编程上面四种读写方式的快慢,所以,对于重叠部分的考虑,只是简单的对半划分,没有深加工 // ReadFileByTwoBuffer.cpp : 定义控制台应用程序的入口点。// #include "stdafx.h"#include<Windows.h> int 阅读全文
摘要:
// ReadFileByOneBuffer.cpp : 定义控制台应用程序的入口点。// #include "stdafx.h"#include<Windows.h> int main(){ DWORD ReturnLength; HANDLE hFile = CreateFile("E:/862 阅读全文
摘要:
看windows核心编程17章复习内存映射方面的知识,看到了一系列的一个文件0个缓存,一个文件一个缓存等的简单说明,自己按照 自己的本意写了个计数和记录他们之间读写或者映射数据的时间差别的工程。 // 内存映射处理大文件.cpp : 定义控制台应用程序的入口点。 #include <windows. 阅读全文
摘要:
这两天在复习进程间通信,复习一下记不住,复习一下记不住。。。就写个小博客献个丑,先来第一个内存映射 代码亲测通过 CreateFileMapping()的最后的一位用来做进程间通信 步骤: 1.CreateFileMapping()创建一个内存映射对象2.利用MapViewOfFile()将文件映射 阅读全文
摘要:
当从Ring3进入Ring0的时候会将所需要的SSDT索引放入到寄存器EAX中去,所以我们这里通过EAX的内容得到函数在SSDT中的索引号,然后计算出它的地址首先打开WinDbug,我们以函数ZwQueryObject为例: 从mov eax 0F8h,知道我们的索引号是0F8h.来验证一下,看看是 阅读全文
摘要:
由于windows并没有给出枚举所有句柄所用到的API,要获得句柄,我们必须使用未公开的Native API才可以,使用如下函数: NTSTATUS WINAPI NtQuerySystemInformation( _In_ SYSTEM_INFORMATION_CLASS SystemInform 阅读全文