首页
社区
课程
招聘
[旧帖] [求助]Hook CreateProcess 后注入DLL,然后ResumeThread 无法看到进程 0.00雪花
发表于: 2014-7-22 16:43 2056

[旧帖] [求助]Hook CreateProcess 后注入DLL,然后ResumeThread 无法看到进程 0.00雪花

2014-7-22 16:43
2056
步骤是这样的:
1.  Hook CreateProcess, 程序进入到自己的CreateProcess 函数。
2.  使用系统的 CreateProcess 函数,用CREATE_SUSPENDED 参数创建进程
3.  注入自己的DLL
4.  ResumeThread

可是ResumeThread 后,还是无法显示被hook的进程界面。进程出不来。找了好久没找到原因。

我单独对已经创建好的进程去注入是可以的,可是在CreateProcess中就不成功。

求助路过的各位高人指点,谢谢。

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 36
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没有人愿意指点一下吗?
2014-7-23 15:51
0
雪    币: 2844
活跃值: (972)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
是否还hook了其他进程的API,可能是因为API重入导致的死递归现象。
在你动态库中下个断,调试一下目标程序,看一下堆栈回溯
2014-7-24 09:26
0
雪    币: 36
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢 @xhbuming

我想问下,hook CreateProcess 的方式是我第一个帖子说的那样的方式吗?

HANDLE MyCreateProcess(....)
{
      TrueCreateProcess(CREATE_SUSPENDED...)   //这个是系统的CreateProcess函数的真实地址

      hook ....

      ResumeThread(...)
}

我用这种方式的时候,经常有某些进程如calc.exe 界面出不来,而且不是每次都出不来,是偶尔,几率很大。

但不用这种方式,也就是不先SUSPENDED, 也是差不多。
2014-7-28 17:44
0
雪    币: 36
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我现在不再用 CREATE_SUSPENDED 参数创建,而是正常创建。

HANDLE MyCreateProcess(....)
{
      TrueCreateProcess(...)   //这个是系统的CreateProcess函数的真实地址

      hook ....
}

大部分情况下都能工作的很好,有时候会弹出 “内存不足, 无法运行xxx程序,请关闭其他程序再试" 的提示对话框。 尤其是在OFFICE 程序的时候,弹得几率还比较高。
hook 我用的是 mhook 库。

这个内存不足的问题是啥原因造成的,请指点下啊,谢谢了。
2014-7-30 11:43
0
游客
登录 | 注册 方可回帖
返回
//