首页
社区
课程
招聘
[求助]OpenProcess 问题坐等高手
发表于: 2013-3-22 23:01 5551

[求助]OpenProcess 问题坐等高手

2013-3-22 23:01
5551
我用两个程序获取的PID  是一样的数值..但调用OpenProcess  后返回的值竞有多个值..请问这是什么原因...请高手....
invoke GetProcessID,offset szName  两次调用返回值一样
但:
invoke        OpenProcess,PROCESS_ALL_ACCESS,FALSE,eax  这个有一个程序里始终是一样
invoke        OpenProcess,PROCESS_ALL_ACCESS,FALSE,eax   而有一个程序里是一个变化的数值..求解..想不明白..这个是系统库的里的函数,怎么出现这种情况...坐得高人指点

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

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 1392
活跃值: (5212)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
2
.....我无语了,没事多看 MSDN吧,。每一次打开后当然是不同的句柄啊,每次都返回一个可以操作的句柄给你,你需要使用CloseHandle关闭这个句柄的。大哥。只要不是返回NULL,句柄就是可操作的
2013-3-22 23:09
0
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不是...我只开了一个这样的进程..而且这个进程也没有关闭.  而我第二个程序获取的为什么不一样
2013-3-22 23:15
0
雪    币: 1392
活跃值: (5212)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
4
和进程关不关闭毫无关系…同一台ATM机,两个人都想取钱,当然要用自己的卡啊!如果进程句柄返回都是相同的,那所有的程序都能用这个值来操作又怎么会安全呢?所以OPEN得到的句柄是不同的,用完后要关闭…
2013-3-22 23:56
0
雪    币: 318
活跃值: (41)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
Handle 跟 PID 不一样, PID 是唯一的, Handle不是
2013-3-23 00:36
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
什么叫ID?ID是身份的意思,而身份是独有的,就像你的身份证一样,有和LZ身份证完全一样的人吗?
进程PID,也就相当于这个进程的识别码,系统中绝对不可能有2个完全一样的进程PID,LZ可别说自己见过
但是句柄又是不同的概念,这个柄,就相当于把柄,顾名思义,就是获取了控制权,不过控制权的具体数值可以是不一样的,因为是被别的程序获取到了控制权,并不是独有的
2013-3-23 01:01
0
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
每个进程有个句柄表,句柄表里保存了指向每个内核对象的指针等,句柄只不过是这个表的索引,当你2次调用OpenProcess打开同一个进程时,只不过在句柄表里新增了2项,索引不同,但是所指向的内核对象是相同的
2013-3-23 09:43
0
雪    币: 1042
活跃值: (500)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼上几位朋友的解答足够详细了.学习了
2013-3-27 09:23
0
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
记住了..谢谢..我跟出来...谢晚了不好意思  
2013-3-27 22:54
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
OpenProcess只是打开一个伪句柄
2013-4-4 01:44
0
游客
登录 | 注册 方可回帖
返回
//