![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
函数调用
清晰从3环到0环的过程
qq_857305819
这个作者很懒,什么都没留下…
展开
-
LPC通信
服务端DWORD WINAPI ServerThread1(LPVOID){ SECURITY_DESCRIPTOR sd; OBJECT_ATTRIBUTES ObjAttr; // Object attributes for the name UNICODE_STRING PortName; NTSTATUS Status; HANDLE LpcPortHandle = NULL; BYTE RequestBuffer[siz原创 2022-03-21 22:55:00 · 827 阅读 · 0 评论 -
ATA读取磁盘扇区数据
#include <stdio.h>#include <windows.h>#include <winioctl.h>#include <ntddscsi.h>int main(int argc, char* argv[]){ HANDLE hDevice; ATA_PASS_THROUGH_DIRECT aptd; BYTE DataBuffer[512] = { 0 }; DWORD ByteReturned; hDevice =.原创 2022-03-14 16:45:22 · 544 阅读 · 0 评论 -
用户模式下通过Zw函数直接写注册表
HMODULE NtDll = GetModuleHandle(L"ntdll.dll"); if (NtDll) { ZwCreateKey = (ZWCREATEKEY)GetProcAddress(NtDll,"ZwCreateKey"); ZwSetValueKey = (ZWSETVALUEKEY)GetProcAddress(NtDll, "ZwSetValueKey"); ZwClose = (ZWCLOSE)GetProcAddress(NtDll, "ZwClose");.原创 2022-03-12 22:00:01 · 219 阅读 · 0 评论 -
c语言获取当前系统时间
#include<time.h>int main(int argc, char* argv[]){ time_t t; struct tm tm; time(&t);//获取Unix时间戳。 localtime_s(&tm,&t);//转为时间结构。 printf("%d/%d/%d %d:%d:%d\n", tm.tm_year + 1900, tm.tm_mon+1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_s原创 2021-11-03 10:59:08 · 588 阅读 · 0 评论 -
0环的几个结构体
在哪里找这几个结构体_trab_frame 3环进0环 保存3环的寄存器值 位置在esp0=(_trab_frame +0x7c)_KPCR KPCR相当于一个副本,存储着线程相关的一些重要信息,这样CPU在处理时就不用查线程了。1) 当线程进入0环时,FS:[0]指向KPCR(3环时FS:[0] -> TEB)2) 每个CPU都有一个KPCR结构体(一个核...原创 2020-04-23 15:35:54 · 644 阅读 · 0 评论 -
系统服务表
原创 2019-06-05 00:46:42 · 132 阅读 · 0 评论 -
函数调用
保存现场kd> dt _Ktrap_frament!_KTRAP_FRAME+0x000 DbgEbp : Uint4B+0x004 DbgEip : Uint4B+0x008 DbgArgMark : Uint4B+0x00c DbgArgPointer : Uint4B+0x010 TempSegCs ...原创 2019-05-14 20:53:27 · 815 阅读 · 0 评论 -
API函数调用过程(3环进0环)
CPU不支持快速调用时使用中断进0环原创 2019-05-07 14:04:28 · 432 阅读 · 0 评论