首页
社区
课程
招聘
[求助]请问与驱动程序通信可以发送数据结构吗
发表于: 2011-11-25 20:39 4895

[求助]请问与驱动程序通信可以发送数据结构吗

2011-11-25 20:39
4895
typedef struct DATA_{
	char* ch;
	char* ch1;
}_DATA,*PDATA_;
	_DATA Da;
	Da.ch="hello";
	Da.ch1="world";
DeviceIoControl(hDriver,0x10,&Da,MAX_PATH -1,0,0,&u,0);

R0:

	case 0x10:
		{
			
			KdPrint(("%x",Irp->AssociatedIrp.SystemBuffer));
			break;
		}

打印出好像是个ring0的地址。
我想,把Hello World颠倒 既然他打印出Ring0地址了 那怎么实现呢

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 202
活跃值: (69)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
typedef struct DATA_{
  char ch[BUF_LEN];
  char ch1[BUF_LEN];
}_DATA,*PDATA_;
不要传指针进去。
2011-11-25 21:51
0
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
"打印出好像是个ring0的地址。"原来是Hello的机器码。。。。
多谢LS 解决了
2011-11-25 23:22
0
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=BiffoLee;1023577]typedef struct DATA_{
  char ch[BUF_LEN];
  char ch1[BUF_LEN];
}_DATA,*PDATA_;
不要传指针进去。[/QUOTE]

对了 有个小想法,你老的经验看看能行不

NtOpenProcess在SSTD的地址被HOOK了
我不去动他的代码 写个OD插件 HOOK Ntdll.dll的ZwOpenProcess吧参数放进个结构体IRP发送到
我的驱动 我驱动里面处理:获得原始函数地址,强制转换成函数,调用之
2011-11-25 23:27
0
雪    币: 202
活跃值: (69)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
ZwOpenProcess的地址是Ntdll.dll的地址,是ring3的函数地址,首先你无法在ring3传递给IRP(RING3没有IRP的概念),你调用Ntdll.dll的ZwOpenProcess,最终又返回给SSDT,此时SSDT已被hook。没有意义。
你可以在ntoskrnl.exe里面获取ZwOpenProcess的地址,并调用。
2011-11-26 07:44
0
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你理解错了
我写个OD插件,再写个驱动,让插件加载驱动,

然后HOOK ntdll.dll的ZwOpenProcess 如果OD调用Kernel32.dll 的OpenProcess那肯定会在ntdll.dll的ZwOpenProcess拦截到

就发送参数到我的驱动去 ,我的驱动获取NtOpenProcess的原始地址调用
2011-11-26 12:47
0
游客
登录 | 注册 方可回帖
返回
//