首页
社区
课程
招聘
[求助]请教rtlcopymemory
发表于: 2009-2-19 14:28 3531

[求助]请教rtlcopymemory

2009-2-19 14:28
3531
我在驱动里
自己实现KeAttachProcess以后
用RtlCopyMemory报错是怎么回事啊?
这个代码是抄袭一个大牛的……

        dprintf("进入WriteProcessMemory\n");
        PEPROCESS  pstKProcess = NULL;
        PEPROCESS  pstCurrent = NULL;
        ULONG ulPDT = 0;
        ULONG ulOldCr3 = 0;
        dprintf("pstKProcess初始化,得到PCB\n");
        pstKProcess =pstEProcess;
        dprintf("pstKProcess :0x%08X\n",pstKProcess);
        dprintf("pstKProcess初始化,得到DirectoryTableBase[0]\n");
        ulPDT =*(ULONG*) ((ULONG)pstEProcess+0x18);//->DirectoryTableBase[0];
        dprintf("ulPDT :0x%08X\n",ulPDT);
        dprintf("开始汇编\n");
        //load cr3
        _asm
        {
                cli;
                mov eax, cr3;
                mov ulOldCr3, eax;
                mov eax, ulPDT;
                mov cr3,eax
        }
        _asm sti;
        dprintf("开始写入内存\n");
        dprintf("====================\n");
        dprintf("Address  :0x%08X.\n",address);
        dprintf("Value Address :0x%08X.\n",Value);
        dprintf("Value  :%d.\n",*((ULONG*)Value));
        dprintf("Size Value : %d\n",sizeof(Value));
        dprintf("====================\n");
        RtlCopyMemory( address,Value, ulLen);
        dprintf("完成写入内存,开始还原DirectoryTableBase\n");
        _asm cli;
        _asm
        {
                mov eax, ulOldCr3;
                mov cr3,eax;
                sti;
        }
        dprintf("还原DirectoryTableBase结束\n");
         dprintf("WriteProcessMemory函数结束\n");
        return STATUS_SUCCESS;

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回