首页
社区
课程
招聘
[求助]Hook NtDeviceIoControlFile,chrome崩溃
发表于: 2018-12-26 10:15 4093

[求助]Hook NtDeviceIoControlFile,chrome崩溃

2018-12-26 10:15
4093
写了个dll远程注入chrome。调用原函数的时候各种崩溃。
我在论坛上找到以前关于NtDeviceIoControlFile,调用原函数都是用汇编代码的。

__asm

{

push  OutputBufferLength

push  OutputBuffer

push  InputBufferLength

push  InputBuffer 

push  IoControlCode

push  IoStatusBlock 

push  ApcContext

push  ApcRoutine

push  Event

push  FileHandle

call  s_pfnNtDeviceIoControlFile

mov    stat ,eax

}

但是x64编译的话不能直接这么用。又加上对汇编不是很熟悉。所以
就采用如下的方法调用原函数
HookOff;
pppNtDeviceIoControl pppppNtDeviceIoControl = (pppNtDeviceIoControl)::GetProcAddress(::LoadLibrary(L"ntdll.dll"), "NtDeviceIoControlFile");
stat = pppppNtDeviceIoControl(FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, IoControlCode, InputBuffer, InputBufferLength, OutputBuffer, OutputBufferLength);
HookOn;

期间也参考了这位朋友的帖子(https://bbs.pediy.com/thread-213279.htm)。换了Event,还是崩溃。
也曾考虑替换 ApcRoutine。
PIO_APC_ROUTINE myApcRoutine = (PIO_APC_ROUTINE)ApcRoutine;
    ApcRoutine = NULL;
    ULONG ulReserved = 0;

HookOff;

pppNtDeviceIoControl pppppNtDeviceIoControl = (pppNtDeviceIoControl)::GetProcAddress(::LoadLibrary(L"ntdll.dll"), "NtDeviceIoControlFile");

stat = pppppNtDeviceIoControl(FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, IoControlCode, InputBuffer, InputBufferLength, OutputBuffer, OutputBufferLength);

HookOn;

if (myApcRoutine) {
            myApcRoutine(ApcContext, IoStatusBlock, ulReserved);
            ApcRoutine = (PVOID)myApcRoutine;
        }
但,还是崩溃,都没有执行到 myApcRoutine,就崩溃了。
百度了好久,没辙。请大神来帮帮忙。


我们公司用electron做客户端,想把HTTP的报文加密再发送,需要hook chromium,但是老崩溃,不知道怎么处理了。
老大不同意用代理。

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 12
活跃值: (418)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
.........找个hook库 detours 或者Minihook
2018-12-26 11:36
0
雪    币: 6584
活跃值: (4027)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
基础问题。。。 你根本不懂hook
2018-12-26 13:48
0
雪    币: 12848
活跃值: (9143)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
4
detours就完事了
自己手写hook你得懂基本原理,不是随便一个jmp就可以的
2018-12-26 16:12
0
雪    币: 235
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
hzqst detours就完事了 自己手写hook你得懂基本原理,不是随便一个jmp就可以的
回复下楼上所有人,用库和自己写,测试效果是一样的。
2018-12-26 16:32
0
雪    币: 199
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
我用微软的detours hook的NtDeviceIoControlFile,没发现崩溃。windows 7 64位+ chrome 64位上测试过
2019-2-25 04:38
0
游客
登录 | 注册 方可回帖
返回
//