• [保护模式]测试一致代码段


    1.首先 在被调试机器里定义一下代码

    // r3.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    
    
    #include <stdio.h>
    #include <stdlib.h>
    
    
    int gupdate_value = 0;
    int main(int argc,char * argv[])
    {
        char buf[]={0x0,0,0,0,0x90,0};
        unsigned int value = 0;
        *((unsigned int *) &buf[0])=0xF8AD1060;   
        printf("%X
    ",&gupdate_value);   //获取机器地址
        system("pause");
        __asm
        {
            mov eax,0xF8AD1060;
            mov eax,[eax];
            mov value,eax;
            call fword ptr ds:[buf]
        }
        printf("%X
    ",gupdate_value);
        printf("%X
    ",value);
        system("pause");
        return 0;
    }

    然后在调试机写个驱动程序

    #include <ntddk.h>
    
    VOID DriverUpload(PDRIVER_OBJECT pDriver)
    {
        KdPrint(("卸载完成
    "));
    }
    
    int g_value = 10;
    
    void  __declspec(naked) test()
    {
        __asm
        {
            int 3;
            mov eax, 0x2E7140;  //此地址是由被调试机获取的
            mov ebx, 0x100;
            mov[eax], ebx;
    
            retf;
    
        }
    
    
    
    }
    
    
    NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING pReg)
    {
        KdPrint(("welcome to driver world
    "));
        KdPrint(("%X
    ", test));
        pDriver->DriverUnload = DriverUpload;
        return STATUS_SUCCESS;
    }

    记住地址0x9A9CE270

     然后通过WinDBG 查询下函数地址是否正确

    0: kd> uf 0x9A9CE270
    9a9ce270 cc              int     3
    9a9ce271 b840711b00      mov     eax,1B7140h
    9a9ce276 bb00010000      mov     ebx,100h
    9a9ce27b 8918            mov     dword ptr [eax],ebx
    9a9ce27d cb              retf

    这里可以看到函数地址是正确的

    那接下来我们把

    0x9A9CE270 拆分成 10 10 12 分页

    9A9CE      270

    首先拆前5位并将它补齐

    0010 0110 1010   26A

    0001 1100 1101   1CD

  • 相关阅读:
    十分钟抢票千余张,黄牛的抢票软件是何原理
    常见乱码解决
    如何给程序中的变量起个好名字
    jsp自定义标签
    request.getHeader("Referer")理解【转载】
    mybatis学习笔记1--HelloMybatis
    Spring学习笔记14---bean的使用
    Spring学习笔记13--Autowire(自动装配)
    Spring 学习笔记12--AOP讲解
    Spring学习笔记11--Spring 自动装配 Bean
  • 原文地址:https://www.cnblogs.com/hanhandaren/p/11260032.html
Copyright © 2020-2023  润新知