首页
社区
课程
招聘
[旧帖] Hook NtCreateSection后如何判断进程和模块 0.00雪花
发表于: 2012-8-13 11:57 14778

[旧帖] Hook NtCreateSection后如何判断进程和模块 0.00雪花

2012-8-13 11:57
14778
如题,hook 后要怎么判断是新建的进程还是加载的模块,为了更通俗易懂,比如运行cmd,事件为explorer.exe运行cmd.exe,任务管理器里会多出一个进程,在cmd里运行md c:\1建立一个目录,此时没有新进程,而是加载了模块执行新建文件夹的操作,再输入cmd就会多出一个进程,事件为cmd.exe运行cmd.exe,怎么区分到底是进程内加载模块还是进程外新建进程,这样就不用Hook NtCreateProcessEx了。
恳请各位大侠不吝赐教。

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
真是小儿科的问题
如果映像名后缀是.exe,那肯定是进程,否则就是模块
如果写判断语句的话,真是再简单不过了

if  映像后缀名=="exe"
{
  进程的处理
}
else
{
  模块的处理
}
2012-8-13 12:45
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
3
可以通过判断:
    IN ULONG  SectionPageProtection ,

    IN ULONG  AllocationAttributes ,

可执行模块是这样的:
(AllocationAttributes == SEC_IMAGE) && (SectionPageProtection & PAGE_EXECUTE)
2012-8-13 13:40
0
雪    币: 10393
活跃值: (4561)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢您的热心回答,可执行程序不一定都是exe,把cmd.exe改成cmd.cmd,再在开始菜单运行里运行也是可以的。
2012-8-13 13:59
0
雪    币: 10393
活跃值: (4561)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢您的热心回答,我实际测试一下可行的话就采纳。
2012-8-13 14:21
0
雪    币: 260
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
pe文件中有dll标志,或者用堆栈回溯
2012-8-13 15:20
0
雪    币: 3134
活跃值: (1279)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
7
exe也是可执行模块啊。

照我说,在这个时候,其实没啥进程的概念,全是模块加载入进程。不好区分,要么是挫点像另一个朋友说的,检测PE头dll标志。另一个我觉得可行的方法是检测当前进程的模块有哪些,由于程序文件的模块是第一个加载的,所以如果当前进程空间没模块的话,那么这个就是楼猪你要的
2012-8-13 16:17
0
雪    币: 10393
活跃值: (4561)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
感谢您的热心回答,好像看到MJ大侠的某篇文章中也有堆栈回溯查找模块,太复杂了,我是菜鸟
2012-8-13 20:40
0
雪    币: 10393
活跃值: (4561)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢您的热心回答,先试试看。
2012-8-13 20:52
0
游客
登录 | 注册 方可回帖
返回
//