20170607Windows09_04_进程复习
来源:互联网 发布:python经典视频教程 编辑:程序博客网 时间:2024/06/01 22:56
进程复习:
1:进程的启动:
进程在启动之后,必然会产生两个对象:进程内核对象是HHANDLE类型而非HINSTANCE类型,HINSTANCE可以代表进程对象但是不可以代表进程内核对象,HINSTANCE本质为内核对象的基地址,CreateProcess后,会在父进程留下一个结构体梦里面的hProcess就是HANDLE类型,就是代表的子进程的内核对象。
在进程内核对象里面有一个非常重要的参数——使用计数,他会因为线程的启动而+1,因为线程的关闭而-1,当使用计数为0时,操作系统会回收这个内核对象的地址空间,如果使用技术不为0,其内核对象就会一直保留,就说内核对象泄漏了。
双击打开进程,资源管理器会CreateProcess这个进程,如果我们手动关闭资源管理器,他还是会再次被操作系统启动。资源管理器创建线程后,就会CloseHandle,之后,两个进程就是独立的关系,如果A进程创建了B进程,而A进程没有关闭B进程 的句柄,B进程的使用计数就为2,如果A进程要使用WaitForSingleObject等待B进程结束,此时A进程可以用GetExitCodeProcess()获取B进程的退出代码等东西,并且B进程的使用计数还为1,并不能被关闭,可能造成内核对象泄漏。
2:权限管理系统:
Windwos的权限使用机制:windows下有多种用户账户,包括:
超级管理员(Admin):无法重命名,使用这个系统唯一的账户登陆系统,可以做任何事情,任何权限都可以(除了与windows核心打交道)。 管理员:可以做大部分的操作,
用户级:可以做基础的操作,如果电脑里面有很多软件,光靠用户的权限是不够的,需要管理员身份执行程序,这种做法会非常麻烦,每次都需要输入密码,所以,我们常使用或基本都使用管理员身份登录系统,用户权限通常很少使用。
3:权限讲解:
1:通常,我们使用普通管理员身份登陆系统,此时我们双击打开任何软件,都是默认拥有管理员权限,所以微软设计了UAC,为了解决管理员权限继承的关系,目的是为了不让完全的管理员权限被继承(但是考虑到兼容以前的软件,所以不能设计成阻止所有权限继承,需要权限自己提取这种方式)。
2:以普通管理员登录系统,打开的普通软件就是拥有UAC过滤后的权限,如果提示需要提权的信息,再次提权就是获取的管理员所有权限。
3:如果以普通用户账户登录系统,正常的程序可以启动成功,但是只拥有用户的权限。需要管理员运行的程序就需要登录管理员帐号后才可以打开,并且打开后拥有管理员权限。
4:使用CreateProcess启动子进程,情况分别如下:
已拥有管理员权限的进程启动需要提权的子进程,此时会触发UAC,用户确定后就拥有所有的权限,如果启动的是普通软件,那么他就继承了父进程,拥有UAC过滤后的权限。
正常程序启动需要提权的程序,会启动失败,如果启动正常的程序,会启动成功。如果非要启动一个需要管理员权限的程序,可以使用ShellExecuteEx()来启动,相当于是通知资源管理器来启动,启动的子进程已经到资源管理器这个层级来运行的了,此时会提示是否允许授权,是否要登陆等。
UAC就是用户账户控制,可以在控制面板里面设置其通知的安全层级。
阅读全文
1 0
- 20170607Windows09_04_进程复习
- 复习进程、begin
- linux进程复习笔记
- OS复习-进程管理
- OS复习-进程同步
- 进程线程复习笔记
- Linux--进程复习
- 【复习】多线程和多进程
- 6.linux复习---守护进程
- [OS复习]进程管理2
- [OS复习]进程管理3
- [OS复习]进程管理4
- [OS复习]进程管理5
- 操作系统复习-2.3 进程同步
- linux复习之进程基础知识
- python进程池的复习
- 对于多进程的复习
- 操作系统复习之进程管理
- 前端问题总结
- 进度条UIProgressView和计步器结合
- 大数据-十
- Spring4第三讲学习笔记,依赖注入dependency injection
- 读取手机联系人
- 20170607Windows09_04_进程复习
- PAT--1040. Longest Symmetric String
- 写在最前面
- 常用网站地址保存
- dubbo配置文件xml校验报错
- ML001.梯度下降(Gradient Descent)
- CSS隐藏一个元素的几种方式及其不同
- linux 下修改 忘记MySQL如何修改
- unix和linux的区别