zoukankan      html  css  js  c++  java
  • [保护模式]测试一致代码段

    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

  • 相关阅读:
    转载 消灭程序员需要百年吗?(重要参考)
    转载的一篇,代码规范
    自改的删除数据库中所有外键语句
    [转]批量禁用外键后,清空表数据
    我的分组分页查询语句
    Yii 分页方法总结
    25个Apache性能优化技巧推荐
    浅谈MindSpore的动态Shape
    C++开发总结 A
    Linux环境下开发常用命令汇总 A
  • 原文地址:https://www.cnblogs.com/hanhandaren/p/11260032.html
Copyright © 2011-2022 走看看