首页
社区
课程
招聘
[求助]关于驱动传递参数(一个缓冲区)无法读写的问题
发表于: 2015-9-8 22:07 4206

[求助]关于驱动传递参数(一个缓冲区)无法读写的问题

2015-9-8 22:07
4206
我今天写辅助测试嘛,想把自己辅助的对进程的操作都直接通过驱动来弄
主要是Read/WriteVirtualMemory  大家都知道他有几个参数,其中一个是用来存储读写数据的Buffer
我用了传递一个结构体的办法直接把缓冲区转化为PVOID通过我的结构体来传递,但是发现
无法正确读出缓冲区的内容,无论如何写入数据都是0,其他参数皆正常
请教如何传递这个buffer才能在驱动中正确读写,我是新手,勿喷谢谢大家了。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 995
活跃值: (669)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
int WriteMemory_int(HANDLE hDevice, int PID,int Address,int buff,int size)//写内存整数型
{
       
        int port[4];
        int bufret;
        DWORD dwWrite;
        port[0]=PID;
        port[1]=Address;
        port[2]=buff;
        port[3]=size;
        DeviceIoControl(hDevice,WRITEPROCESSMEMORY, &port, 16, &bufret, 4, &dwWrite, NULL);
        return bufret;

}

case  WRITEPROCESSMEMORY://写4字节整数型
                {
                        //显示输入缓冲区数据
                        int PID = 0, Address = 0,buff ,BYTE_size = 0;
                        int *InputBuffer = (int*)pIrp->AssociatedIrp.SystemBuffer;
                        _asm
                        {
                                MOV EAX, InputBuffer
                                        MOV EBX, DWORD PTR DS : [EAX]
                                MOV PID, EBX
                                        MOV EBX, DWORD PTR DS : [EAX + 4]
                                MOV Address, EBX
                                        MOV EBX, DWORD PTR DS : [EAX + 8]
                                MOV buff, EBX
                                        MOV EBX, DWORD PTR DS : [EAX + 0xC]
                                MOV BYTE_size, EBX
                        }
                        //操作输出缓冲区
                        int *OutputBuffer = (int*)pIrp->AssociatedIrp.SystemBuffer;
                        *OutputBuffer = WriteProcessMemory((VOID*)Address, BYTE_size, &buff, PID);
                        //设置实际操作输出缓冲区长度
                        info = 4;
                        break;
2015-9-8 23:20
0
雪    币: 995
活跃值: (669)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
当初看郁金香驱动教程里面的写法通过内联取出参数。。。一直用到现在不知道还有木有更好的办法
2015-9-8 23:21
0
雪    币: 26
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
酱紫的确是可以滴,但是呢我想做到一个函数处理所有的类型读写
就好比系统的函数,直接提供缓冲区,然后在sizeof
有没有更好滴办法呢,
2015-9-9 08:17
0
游客
登录 | 注册 方可回帖
返回
//