首页
社区
课程
招聘
[求助] easyhook 了explorer 的 CreateProcessInternal 函数后,创建不了 taskmgr.exe 进程?
发表于: 2017-6-27 14:49 5426

[求助] easyhook 了explorer 的 CreateProcessInternal 函数后,创建不了 taskmgr.exe 进程?

2017-6-27 14:49
5426

使用easyhook 了 explorer, hook 了 CreateProcessInternal 函数, 在 win8 以上的电脑中,当桌面点击启动 任务管理器的时候,能在explorer中劫持到创建操作,但是创建失败,错误代码是740,需要权限。

头疼无比,一时都没有方向,win8上面提权貌似也不行。求大神给点思路,拜谢!

HANDLE WINAPI HookCreateProcessInternalW(
    HANDLE hToken,LPCWSTR lpApplicationName,LPWSTR lpCommandLine,
    LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,
    BOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,
    LPCWSTR lpCurrentDirectory,LPSTARTUPINFOW lpStartupInfo,
    LPPROCESS_INFORMATION lpProcessInformation,PHANDLE hNewToken)
{
    AdjustProcessTokenPrivilege();   //win 8 以上没卵用

    HANDLE hProcess = TrueCreateProcessInternalW(hToken, lpApplicationName, lpCommandLine,
        lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags,
        lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation,
        hNewToken);

    DWORD dwErr = GetLastError();
    MyOutputDebugStr("HookCreateProcessInternal failed: %d", dwErr);
    
    当创建进程为 taskmgr.exe时,错误输出为 740



[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 12876
活跃值: (9352)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
2
自身没有UAC权限(小盾牌)的程序是无法用CreateProcess启动有小盾牌的程序的。
顺便提权不是AdjustProcessTokenPrivilege,这个不会弹框,真正的UAC提权是会弹框询问的
2017-6-27 14:59
0
雪    币: 36
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
hzqst 自身没有UAC权限(小盾牌)的程序是无法用CreateProcess启动有小盾牌的程序的。 顺便提权不是AdjustProcessTokenPrivilege,这个不会弹框,真正的UAC提权是会弹框 ...
感谢  hzqst. 
不知道怎么UAC提权,ShellExecuteEx  函数runas  是可以启动  taskmgr,  可是我是在hook  CreateProcessInternal  中,我首先要调用TrueCreateProcessInternal函数,判断返回为740,再调用ShellExecuteEx函数,可是TrueCreateProcessInternal函数一旦调用就会报告错误,弹出提示框  参数错误。  有没有类似  AdjustProcessTokenPrivilege  之类的提权方法,让TrueCreateProcessInternal  函数能够执行成功呢?  谢谢。
2017-6-27 15:39
0
雪    币: 581
活跃值: (215)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
你这是在hook,问题不在这,权限是进程的概念,内核在进行权限检查的时候会匹配你EPROCESS结构中的Token,检查你代码吧。
2017-6-27 16:17
0
雪    币: 36
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
ghostway 你这是在hook,问题不在这,权限是进程的概念,内核在进行权限检查的时候会匹配你EPROCESS结构中的Token,检查你代码吧。
感谢  ghostway。
这是hook,在HookCreateProcessInternal  函数里面,仅仅调用TrueCreateProcessInternal  函数,不做任何其他操作,没有几行代码,错误代码是说权限不够,所以考虑怎么提权,或者说还有其他什么办法吗?   
2017-6-27 16:32
0
雪    币: 581
活跃值: (215)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
istwork 感谢 ghostway。 这是hook,在HookCreateProcessInternal 函数里面,仅仅调用TrueCreateProcessInternal 函数,不做任何其他操作,没有几行代 ...
1。验证你的Hook是否正确。
2。验证你的流程是否正确。
3。检查EasyHook模块的使用或其内部实现。
2017-6-27 18:32
0
雪    币: 36
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
hzqst  说的对,explorer  是没有小盾牌的,taskmgr  有,所以hook  的explorer  的  CreateProcessInternal  函数的创建  taskmgr.exe  请求时权限不够了。问题是win7  可以提权,  win8  以后怎么提权呢?    shellexecuteex函数提权没意义,都不经过CreateProcessInternal函数了。求指点。
2017-6-27 20:46
0
雪    币: 36
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
HookCreateProcessInternal  函数运行在explorer进程中,要能创建taskmgr.exe  进程,必须        将当前explorer进程提权。
不知道该怎么做了。。。                        
2017-6-27 20:47
0
雪    币: 12876
活跃值: (9352)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
9
istwork HookCreateProcessInternal 函数运行在explorer进程中,要能创建taskmgr.exe 进程,必须 将当前explorer进程提权。 不知道该怎么做了。。。
老老实实ShellExecute  runas吧
2017-6-27 23:14
0
游客
登录 | 注册 方可回帖
返回