首页
社区
课程
招聘
[求助]子进程获取父进程名称的问题
发表于: 2016-4-21 11:50 7717

[求助]子进程获取父进程名称的问题

2016-4-21 11:50
7717
windows平台:
父进程通过createProcess创建另一个xxxx.exe达到调用exe的目的,紧接着,父进程退出。
子进程启动之后如何才能得到父进程的名称呢?
我在子进程中本想通过遍历进程快照来对比获取,可惜,那时候父进程已经退出了,所以对比不到。
(声明:父进程不是我的程序,我控制不了,也获取不到创建进程时候的参数,我现在的身份就是xxxx.exe,所有能做的事也都是在这个exe中编写,所以就别跟说父进程创建的时候怎么怎么获取参数了,哈哈)

大家有没有除了驱动层面的其他好办法?
请各位大神赐教

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (24)
雪    币: 423
活跃值: (501)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
某P游戏的套路,应该没人会免费指点给你的吧
2016-4-21 12:20
0
雪    币: 48
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
啥意思?我不小心问到  商业鸡蜜  了?
2016-4-21 12:51
0
雪    币: 96
活跃值: (64)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
hook explorer ntcreateuserprocess(win7) 试下
2016-4-21 13:06
0
雪    币: 96
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
看错了。。
2016-4-21 13:26
0
雪    币: 48
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
hook?子进程exe都已经运行的时候, 创建进程的动作早就执行完了
2016-4-21 14:00
0
雪    币: 9479
活跃值: (757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
在创建子进程的时候获取啊
2016-4-21 14:29
0
雪    币: 48
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
父进程不是我的程序,我控制不了,也获取不到创建进程时候的参数
2016-4-21 15:06
0
雪    币: 423
活跃值: (501)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
我知道是哪个游戏,肯定是机密,不过想唯一解决不封号的办法还是走驱动层,你挂钩,Hook 都不可以的,现在某P技术不是吃白饭的,而且很猥琐~
2016-4-21 17:00
0
雪    币: 48
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我想你真的误会了,不过咱不讨论其他的,我只想讨论技术
2016-4-21 17:04
0
雪    币: 54
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
很好奇是哪个游戏.....能跟楼主这么奇葩的需求对上
2016-4-21 17:11
0
雪    币: 96
活跃值: (64)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
你这个程序再怎么样也是要打开的吧
在桌面上点是吧?

那不就得了

ce给 explorer.exe ntcreateuserprocess的ret处下个断点就行

或者你CreateProcess创建一个暂停进程也行
2016-4-21 17:15
0
雪    币: 48
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
父进程通过createProcess创建另一个xxxx.exe达到调用exe的目的,紧接着,父进程退出。
子进程启动之后如何才能得到父进程的名称呢?
所以不是在桌面上点的,我也不用ce...我只想在子进程xxxx.exe中通过编程获取他爹的名字
2016-4-21 17:23
0
雪    币: 118
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
还能找到一个已经退出的程序的信息吗,不懂哎
2016-4-21 18:55
0
雪    币: 631
活跃值: (46)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
枚举进程,不管程序退出还是不退出,内核里都有一个链表记录的,详情百度
2016-4-21 19:53
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
这个除非事先纪录(无论是驱动还是ring3),否则如果没有什么驱动干扰了reference的话是无法获取的

如果可以记录的话就太简单了
2016-4-22 00:43
0
雪    币: 48
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
所以才为这个事纠结呢
2016-4-22 10:03
0
雪    币: 48
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
驱动层的暂时还不想动手啊....
2016-4-22 10:04
0
雪    币: 48
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
哎,看来得另想其他办法了
2016-4-22 11:10
0
雪    币: 631
活跃值: (46)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
管理权限即可,不用驱动
2016-4-23 18:14
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
求教EPROCESS的释放时机是啥时候?

貌似有些进程退出后,eprocess还在.此时的eprocess , 是不是已经被释放了, 只不过是内存中留下的一个残影?

如果说自己的驱动对每一个进程的eprocess对reference一下,增加引用计数,那是不是系统中所有进程的eprocess都会永远存在不会被释放?
2016-4-24 14:05
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
看着像撸啊撸。。。
2016-4-24 16:17
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
如果退出时,reference都释放了,应该要清除的。

但是有些驱动(甚至系统自己的)不一定会及时释放,这就会有残留,直到对应的计数释放,除非有引用了忘记释放的bug,否则不会一直残留的,这跟进程本身和驱动的策略有关系。
2016-4-24 23:26
0
雪    币: 209
活跃值: (143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
写一个新程序,记录pid和pn的对应关系,子进程获取父进程id后查表可得。
2016-4-25 21:38
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
父进程销毁之前获得进程名,销毁了还获取有什么意义吗。
拦截检测都是销毁之前完成的吧。
2016-4-25 22:04
0
游客
登录 | 注册 方可回帖
返回
//