|
今天,无聊的时候又去浅析了一下Explorer(资源管理器)其中运行文件的原理,我采取的是CE爆破法,也就是把相关可能的API全部HOOK一遍,我HOOK的函数有 :- NtCreateProcess
- NtCreateThread
- NtOpenFile 等
最终在给NtOpenFile下断后,发现有所反应,我开始重点研究它。
我几次下端研究,发现其响应次数非常之多,但是,在我打开一个文件夹时,CE响应了,同时资源管理器也随之未响应。我明白了,其Explorer的运行原理就是OpenFile,所以我们要把OpenFile作为第一个重点观察的API。
我在此之前,又看了ANormalUser 大佬的【你见过幽灵吗?】幽灵Dll 的这篇帖子,其是DLL重定位,我再次验证重定位和ZwOpenFile脱不了关系。
我打开一个程序,ZwOpenFile那有了响应,我如果不通过响应,那么这个程序是跑不起来的,如果我全部放行,这个程序又活过来了。
至此,文件重定位的基本概念算是搞清了,所以我们要重定位的话,要么通过判断FileHandle,然后修改部分参数外,好像也没什么办法去重定位了(嗯,暂且是这样的.)
那么,我这个帖 [半成品][HOOK]HOOKExplorer实现运行重定位 本质上是不成立的,因为我的思路太客观太直接了,所以是无效的劫持,我理应改成HOOK ZwOpenFile来仅限劫持操作,使其重定位。
|
|