首页
社区
课程
招聘
[求助](Inline Hook) 少部分API导致进程未加载完成,就直接退出的问题
发表于: 2012-11-29 11:20 5841

[求助](Inline Hook) 少部分API导致进程未加载完成,就直接退出的问题

2012-11-29 11:20
5841
小弟目前在学习Ring3的Inline Hook。
目前Hook了130个API左右,以挂起启动的方式启动待注入的EXE,远程注入后ResumeThread,记录数据并用共享内存的方式与主进程进行通信。
大部分的API,被挂起启动的EXE都能正常运行。 但是有部分API导致待注入EXE未加载完成直接退出(退出时EXE没任何提示,且已经产生一两百条数据并与主进程成功通信)

导致此问题的API如下:
FindResourceExA/W、LoadResource、SizeofResource、GetSystemDirectoryA/W、ReadFile、ReadFileEx
Hook的这些API,有些是导致所有EXE都会出现这个问题,有些是导致部分EXE出现此问题。
CreateFileW有极小的可能性会出现此问题。

另外,如果Hook了VirtualProtectEx这个API,会直接导致EXE加载中断,无法显示界面,但不会退出。

如果是进程运行后(不是挂起启动)再进行Hook的话,就没有上述问题。 也就是,这些API影响了进程的加载。

那么,是否有一种解决方案,可以让EXE启动后停在EP处(就像OD一样,此时进程已加载完成,但没做任何操作),然后再注入,这个问题似乎也就解决了。

小弟不知描述清楚了没有,求高人解答,有遇到此类问题的朋友也可讨论讨论。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 180
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
detours方式,采用挂起进程,修改导入表的方式载入,这样进程初始化就基本都加载了一些基本的DLL
原因是由于挂起进程创建后
resumethread之前很多进程内部都没有初始化 这个时候注入就会有问题,所以需要一个时机,如果是能在ntresumethread之后,入口点运行之前应该就没问题了
2012-11-29 14:13
0
雪    币: 7
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ybt
3
谢谢,很奇怪我当年竟然没有回复,十分抱歉。后来找到一个解决方案了,用QueueUserAPC解决了。
2017-7-27 10:06
0
雪    币: 7
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
挖坟么
2017-7-27 23:34
0
雪    币: 7
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ybt
5
有点这个感觉
2017-11-27 21:57
0
游客
登录 | 注册 方可回帖
返回
//