1、进程提权:

  1. BOOL CProgressInfo::AdjustPrivileges()
  2. {
  3. HANDLE hToken = NULL;
  4. TOKEN_PRIVILEGES tp = {0};
  5. TOKEN_PRIVILEGES oldtp = {0};
  6. DWORD dwSize = sizeof(TOKEN_PRIVILEGES);
  7. LUID luid = {0};
  8. if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) {
  9. if (GetLastError()==ERROR_CALL_NOT_IMPLEMENTED)
  10. return TRUE;
  11. else
  12. return FALSE;
  13. }
  14. if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &luid)) {
  15. CloseHandle(hToken);
  16. return FALSE;
  17. }
  18. tp.PrivilegeCount=1;
  19. tp.Privileges[0].Luid = luid;
  20. tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  21. /* Adjust Token Privileges */
  22. if (!AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), &oldtp, &dwSize)) {
  23. CloseHandle(hToken);
  24. return FALSE;
  25. }
  26. // close handles
  27. CloseHandle(hToken);
  28. return TRUE;
  29. }

2、获取进程列表(提权后可获取基本所有的进程路径):

  1. BOOL CProgressInfo::GetProgressList()
  2. {
  3. BOOL bResult = FALSE;
  4. HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  5. if ( hSnap == INVALID_HANDLE_VALUE )
  6. return FALSE;
  7. HANDLE hProcess = NULL;
  8. PROCESSENTRY32 info = {0};
  9. info.dwSize = sizeof(PROCESSENTRY32);
  10. BOOL bRet = Process32First(hSnap, &info);
  11. while(bRet) {
  12. hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, info.th32ProcessID);
  13. if (hProcess) {
  14. GetModuleFileNameEx(hProcess, NULL, /*缓冲区指针*/, MAX_PATH);//获取进程路径
  15. }
  16. bRet = Process32Next(hSnap, &info);
  17. }
  18. return TRUE;
  19. }

3、根据进程的PID,结束此进程:

  1. void CProgressInfo::DeleteProgress(DWORD pUID)
  2. {
  3. HANDLE hProcessHandle;
  4. hProcessHandle = ::OpenProcess(PROCESS_TERMINATE, FALSE,pUID);
  5. if(hProcessHandle)
  6. {
  7. TerminateProcess(hProcessHandle,-1);
  8. CloseHandle(hProcessHandle);
  9. }
  10. else
  11. {
  12. //......
  13. }
  14. }

来源:http://blog.csdn.net/u012372584/article/details/61912606

转载于:https://www.cnblogs.com/acmexyz/p/8521861.html

提权获取进程路径并获取进程列表相关推荐

  1. VB 获取路径名各部分 (获取文件路径,获取文件名,获取文件扩展名)自编

    '====================获取路径名各部分:  如: c:\dir1001\aaa.txt '============获取路径路径 c:\dir1001\ '============获 ...

  2. MAC怎么获取文件路径 MAC获取文件路径的四种方法

    MAC怎么获取文件路径介绍 方法一:最简单的方法  右键文件或者文件夹,选择显示简介 2在弹出来的窗口中找到位置,即为路径,在mac 10.10之前的系统是正常的路径,10.10开始是小箭头代替/显示 ...

  3. java 获取包路径_java获取java文件路径的四种方法

    java获取java文件路径的四种方法 发布时间:2020-04-17 11:03:45 来源:亿速云 阅读:750 作者:小新 今天小编给大家分享的是java获取java文件路径的四种方法,很多人都 ...

  4. java获取服务器路径_JAVA获取服务器路径的方法

    1.在JSF环境中获取到ServletContext: 2.servlet中获得项目绝对路径 根目录所对应的绝对路径 request.getServletPath(); 文件的绝对路径 request ...

  5. vue中input获取文件路径_JS获取input file绝对路径的方法(推荐)

    最近因需要上传文件到oracle blob里, 在获取文件路径的遇到些问题,由于安全原因,新版的浏览器都不支持直接获取本地URL,在网上找了些方法,如下: //FX获取文件路径方法 function ...

  6. Python 标准库之 os (获取当前目录、读取/设置环境变量、重命名文件、运行shell命令、创建/删除/查看目录文件、判断目录/文件/存在、获取绝对路径、获取文件名、获取换行符、获取路径分隔符)

    1. os与sys模块的官方解释如下: os This module provides a portable way of using operating system dependent funct ...

  7. java get image获取根路径_Java 获取资源文件路径

    1 问题描述 通过源码运行时,一般使用如下方式读取资源文件: String str = "1.jpg"; 资源文件与源码文件放在同一目录下,或者拥有同一父级目录: String s ...

  8. java 获取home路径_Java获取项目或类路径

    本文参考 封装在jar包里面,执行jar包,获取当前jar包的绝对路径 System.getProperty("java.class.path") Java获取当前class的绝对 ...

  9. python获取绝对路径_Python 获取文件路径及文件目录

    建議你可以稍微瀏覽一下 Python doc: os.path, 你就會明白囉: 我放上跟你問題相關的幾個條目: os.path.abspath(path) Return a normalized a ...

  10. java获取绝对路径_JAVA获取项目绝对路径

    另,Class类还有一个getResourceAsStream方法,记得以前有个项目要读取在同一个包内的一个xml,就用的这个. 1.如何获得当前文件路径 常用: (1).Test.class.get ...

最新文章

  1. 使用python建立简单的树机构
  2. 李宏毅机器学习笔记(五)-----Where does the error come from
  3. TED+如何让压力成为朋友+如何面对压力决定你的未来
  4. 5-Python3从入门到实战—基础之数据类型(列表-List)
  5. ALL ABOUT CIRCUITS 的资源整理
  6. VC6生成和调用lib
  7. lamp mysql脚本_初次尝试利用脚本自动编译搭建LAMP-----Mysql
  8. 路由交换以及其他网络名词基本概念
  9. Caffe: Caffe的Python接口
  10. C++中explicit关键字用法
  11. matlab画泡面图,MATLAB中,( )函数可以保存图像并指定为图像文件格式。
  12. 8、linux上安装hbase
  13. 牛客 XOR和(找规律)
  14. 关于IDEA编辑器运行测试方法时无法在控制台进行输入的问题
  15. ArcGIS AddIN异常:无法注册程序集 未能加载文件或程序集ESRI.ArcGIS.Desktop.Addins
  16. Linux编辑启动停止重启springboot jar包脚本
  17. Rust: Rust 异步入门 (作者洋芋,来自Rust语言中文社区)
  18. 毕设 学生信息管理系统论文
  19. web中常用的20种字体 (share)
  20. 一款清爽的CSS表格样式

热门文章

  1. Mac屏幕常亮时间控制:Theine
  2. 新手:Mac状态栏图标管理技巧
  3. 2.移植3.4内核-支持烧写yaffs2,裁剪内核并制作补丁
  4. Visual Studio Code 使用 ESLint 增强代码风格检查
  5. binlog 分析及回滚神器Analysisbinlog
  6. RocketMQ 拉取消息-通信模块
  7. MaxCompute 2.0 生态开放之路及最新发展
  8. Wordpress 错误ERROR: Cookies are blocked or not supported by your browser.
  9. powerdesigner 连接数据库
  10. UNIX环境高级编程——标准I/O库缓冲区和内核缓冲区的区别