Win7/Vista Hook CreateProcess 的特别之处

在Win7/Vista系统中,单纯Hook进程内的CreateProcessInternalW无法有效截取创建管理员权限进程的情况。因为当非管理员进程尝试创建管理员进程时,实际创建操作是由系统服务进程完成,绕过了Hook。关键函数SHCreateProcess在尝试创建进程后,根据权限决定是否调用CreateProcess。SHCreateProcess是shell32.dll内的非导出函数,为解决此问题,需要找到并Hook SHCreateProcess的地址。
摘要由CSDN通过智能技术生成


Win7/Vista Hook CreateProcess 的特别之处

搬运自我的百度空间,写本文时主流系统为Win7,本文的方法没有在高版本的windows尝试

2016/10/3更新:Win10下 直接hook KERNELBASE!CreateProcessInternalW就可以了,不管创建UAC进程还是普通进程都是走这条路,注意是kernelbase.dll下的函数

2016/11/19更新:Win10下创建普通进程走的是CreateProcess->CreateProcessInternalW的路,而使用Runas创建管理员进程(会弹出UAC窗口)不再使用本文提到的SHCreateProcess函数,而是使用了AicLaunchAdminProcess这个函数。需要注意,win10似乎把shell32.dll的部分功能实现移到了windows.storage.dll,AicLaunchAdminProcess也是在这个dll之中。同样AicLaunchAdminProcess也没有被DLL导出,需要一些技巧来获取它的地址。详见http://blog.csdn.net/myjisgreat/article/details/53262932

    HookCreateProcess

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值