zoukankan      html  css  js  c++  java
  • windows 内核模式读写内存

    sysmain.c

    #pragma warning(disable: 4100 4047 4024)
    #pragma once 
    #include <ntifs.h>
    #include <ntddk.h>
    
    NTKERNELAPI
    NTSTATUS
    MmCopyVirtualMemory(
      // 从哪里copy
      _In_ PEPROCESS srcProcess,
      _In_ PVOID srcAddr,
    
      // copy到哪里去
      _In_ PEPROCESS dstProcess,
      _In_ PVOID dstAddr,
    
      // 资源(数据)的大小
      _In_ SIZE_T DataSize,
    
      // KernelModel
      _In_	KPROCESSOR_MODE PreviousMode,
      _Out_	PSIZE_T RetureSize
    );
    
    NTSTATUS kReadProcessMemory(PEPROCESS Process, PVOID lpBaseAddress, PVOID lpBuffer, size_t nSize)
    {
      PSIZE_T rSize;
      return MmCopyVirtualMemory(Process, lpBaseAddress, PsGetCurrentProcess(), lpBuffer, nSize, KernelMode, &rSize);
    }
    
    
    NTSTATUS kWriteProcessMemory(PEPROCESS Process, PVOID lpBaseAddress, PVOID lpBuffer, size_t nSize)
    {
      PSIZE_T rSize;
      return MmCopyVirtualMemory(PsGetCurrentProcess(), lpBuffer, Process, lpBaseAddress, nSize, KernelMode, &rSize);
    }
    
    NTSTATUS DriverUnload(PDRIVER_OBJECT pDriverObject)
    {
      DbgPrintEx(0, 0, "stop hsys.
    ");
      return STATUS_SUCCESS;
    }
    
    NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRegister)
    {
      pDriverObject->DriverUnload = DriverUnload;
    
      PEPROCESS Process;
      size_t pid = 2572;
      PsLookupProcessByProcessId((HANDLE)pid, &Process);
      PVOID addr = 0x00007FF72BB8C178;
    
      int newValue = 100;
      kWriteProcessMemory(Process, addr, &newValue, sizeof(int));
    
      int readValue = 0;
      kReadProcessMemory(Process, addr, &readValue, sizeof(int));
    
      DbgPrintEx(0, 0, "change value: %d
    ", readValue);
    
      return  STATUS_SUCCESS;
    }
    
  • 相关阅读:
    获取其他进程中StatusBar的文本
    TStringGrid多选的复制与拷贝
    常用数据结构
    数据结构及算法
    时间复杂度和空间复杂度详解
    算法的时间复杂度和空间复杂度
    新增并管理媒体资源
    Node.js与MongoDB的基本连接示例
    Web API 2:Action的返回类型
    快递查询组件
  • 原文地址:https://www.cnblogs.com/ajanuw/p/13740802.html
Copyright © 2011-2022 走看看