求助:关于OpenProcess和进程的一系列问题

木落 2011-11-09 06:44:38
1.再有替代品的情况下是否应该尽量避免使用ToolHelp32函数?

2.翻译一个C#程序,看到System.Diagnostics.Process.GetProcessById方法被对应成OpenProcess。但是OpenProcess涉及权限问题,比如读内存写内存,Process.GetProcessById又有什么权限呢?

3.这些权限是给系统看的,还是给目标进程看的呢?换句话说,程序会不会视情况根据索取的权限拒绝OpenProcess?

4.现在我写一个程序,在只对自己程序的内存进行检测的情况下(HookAPI什么统统都不要),能不能知道别人是不是OpenProcess了自己的程序?

5.C#中NtProcessManager.GetFirstModuleInfo又怎么等价呢?

感谢~
...全文
157 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
木落 2011-12-19
  • 打赏
  • 举报
回复
抱歉 有段时间没关注论坛~感谢大家
zpc38368330 2011-11-12
  • 打赏
  • 举报
回复
4.现在我写一个程序,在只对自己程序的内存进行检测的情况下(HookAPI什么统统都不要),能不能知道别人是不是OpenProcess了自己的程序?

这个应该是不能吧,否则游戏封外挂就会很简单
oyljerry 2011-11-12
  • 打赏
  • 举报
回复
权限是OS会根据你对进程的请求,然后看你这个请求的程序是否有权利或者允许访问对应的请求.

向立天 2011-11-12
  • 打赏
  • 举报
回复
这里是VC论坛
你问这种跟C#相关的问题恐怕大家很难答吧
我试着回答一下
1、好象没有比ToolHelp32更好的操作进程的接口了吧
2、涉及权限问题应该是一样的
3、权限是进程所拥用的,操作系统根据进程所拥有的权限决定他可以进行什么样的操作
4、不能
5、这个确实不清楚
Lactoferrin 2011-11-12
  • 打赏
  • 举报
回复
1.没这说法
2.Process.GetProcessById只是得到一个被.net框架封装的对象,和那个进程相关联,进行后续操作时再OpenProcess
3.这个由目标进程的安全描述符决定,安全描述符可以由任意有相应权限的进程设定
4.检测自己的内存不行,但可以枚举所有进程打开句柄来检测
5.有类似功能的是toolhelp32的ModuleFirst
Yofoo 2011-11-12
  • 打赏
  • 举报
回复
1.再有替代品的情况下是否应该尽量避免使用ToolHelp32函数?
ToolHelp32也是用一些更基础的实现, 没什么区别

2.翻译一个C#程序,看到 System.Diagnostics.Process.GetProcessById方法被对应成OpenProcess。但是OpenProcess 涉及权限问题,比如读内存写内存,Process.GetProcessById又有什么权限呢?
用完全权限或根据头面的需求调整

3.这些权限是给系统看的,还是给目标进程看的呢?换句话说,程序会不会视情况根据索取的权限拒绝OpenProcess?
权限是指OpenProcess得到的句柄的权限, 系统可能会根据索取的权限拒绝

4.现在我写一个程序,在只对自己程序的内存进行检测的情况下(HookAPI什么统统都不要),能不能知道别人是不是OpenProcess了自己的程序?
只对自己程序的内存应该是不行, 不过其他方法应该是有的

5.C#中NtProcessManager.GetFirstModuleInfo又怎么等价呢?
ToolHelp32是有枚举进程模块的函数
木落 2011-11-09
  • 打赏
  • 举报
回复
貌似很复杂的样子……?
快乐鹦鹉 2011-11-09
  • 打赏
  • 举报
回复
smwhotjay 2011-11-09
  • 打赏
  • 举报
回复

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧