565710420 发表于 2011-11-25 16:55:10

请教下各位,IRP发送数据结构到驱动出了点问题

R3:
        struct data{
                char *ch;
                char *ch2;
                char *ch3;
        };
        data da={"00","11","22"};
DeviceIoControl(hDriver,TEST_,&da,MAX_PATH -1,0,0,&u,0);R0:        case TEST_:
                {
                       
                        KdPrint(("%x",Irp->AssociatedIrp.SystemBuffer));
                        break;
                }打印出个地址,按理应该打印出数据结构的头地址
我用windbg   dd 地址 得出的第一个地址应该是 ch吧? 在dd 应该就能看到"00"了吧? 怎么没看到呢 我错了吗

Tesla.Angela 发表于 2011-11-25 17:32:44

关于“驱动如何与应用层通信”,在我的驱动模板里已经有很详细的范例了:http://www.vbasm.com/thread-3376-1-1.html
剩下只不过是语言转换的问题罢了。

565710420 发表于 2011-11-25 17:48:02

对 就是语言间的事情,

565710420 发表于 2011-11-25 17:48:54

应该把它定为结构指针 然后+4+4+4+4 是吧

Tesla.Angela 发表于 2011-11-25 17:54:42

很久都没有玩驱动了,有点忘记了,但是基本概念我还是清楚的。。。
因为指针就是一个数字,等于尺子上的数字,只有结合长度,才能表示一段距离(多少Byte的内存)。
另外我个人感觉是你的结构体定义得有问题,命名长度是12字节,怎么到了下面赋值时只有三字节了。。。
请放弃方便的写法,回归最普通的写法。。。

565710420 发表于 2011-11-25 18:50:25

"命名长度是12字节,怎么到了下面复制时只有三字节了。。。"下面复制?不解这意思

Tesla.Angela 发表于 2011-11-25 19:05:30

565710420 发表于 2011-11-25 18:50 static/image/common/back.gif
"命名长度是12字节,怎么到了下面复制时只有三字节了。。。"下面复制?不解这意思

不好意思,打错字了,原帖已经修正。
【复制】->【赋值】

565710420 发表于 2011-11-25 19:24:03

本帖最后由 565710420 于 2011-11-25 19:29 编辑

Tesla.Angela 发表于 2011-11-25 19:05 static/image/common/back.gif
不好意思,打错字了,原帖已经修正。
【复制】->【赋值】

呵呵,有个小想法,不知你老能否判断下是否可行

NtOpenProcess函数地址被HOOK 也就是SSDT HOOK

方法1:

被HOOK后 再SSDT HOOK转到我的函数 =崩溃

方法2:

Inline hook其HOOK函数崩溃之

我想 我目的是调试其保护程序 干脆写个OD插件 HOOK本进程ntdll的ZwOpenProcess将参数以IRP发送到我的驱动,然后在我驱动里获取系统函数原始地址调用

Tesla.Angela 发表于 2011-11-25 23:30:04

565710420 发表于 2011-11-25 19:24 static/image/common/back.gif
呵呵,有个小想法,不知你老能否判断下是否可行

NtOpenProcess函数地址被HOOK 也就是SSDT HOOK


对不起,我想我不太明白您的意思。。。

ywledoc 发表于 2011-11-27 14:18:11

565710420 发表于 2011-11-25 19:24 static/image/common/back.gif
呵呵,有个小想法,不知你老能否判断下是否可行

NtOpenProcess函数地址被HOOK 也就是SSDT HOOK


崩溃原因很多。看你要过保护,可能原因:
1.方法2。可能驱动保护了其hook,你操作即蓝屏。
2.方法1。驱动不可能不让别人SSDT hook。崩溃是因为你没写好。如果加载驱动立马蓝,可能此种。
3.方法1。还有其他反调试手段,非此地一处,崩溃不产生在此处。如果你OD attach上去才蓝,极有可能此种。

565710420 发表于 2011-11-27 16:17:15

ywledoc 发表于 2011-11-27 14:18 static/image/common/back.gif
崩溃原因很多。看你要过保护,可能原因:
1.方法2。可能驱动保护了其hook,你操作即蓝屏。
2.方法1 ...

我指的崩溃是 出错、方法不行、此法行不通

呵呵 我已经解决的差不多了、上次来紫水论坛时 我在过TP、现在又在搞个变态驱动保护 呵呵
谢谢你们的热心

565710420 发表于 2011-11-27 16:18:09

反调试方面我还没分析 他变态我猥琐的绕过SSDT HOOK{:soso_e182:}

Tesla.Angela 发表于 2011-11-27 18:34:13

565710420 发表于 2011-11-27 16:18 static/image/common/back.gif
反调试方面我还没分析 他变态我猥琐的绕过SSDT HOOK

有驱动还需要看hook的脸色吗?
其实很多hook都无需恢复,直接绕过即可。无论是ssdt hook、inline hook还是eat hook。。。
关于如何绕过hook,如何强制读写进程内存、如何模拟按键模拟鼠标,论坛上应该有不少,找找吧。。。
页: [1]
查看完整版本: 请教下各位,IRP发送数据结构到驱动出了点问题