关于进程的拒绝访问

进程拒绝访问怎么办?


hModuleSnap   =   CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,   dwPID);  

int   err=GetLastError();
        if   (hModuleSnap   ==   INVALID_HANDLE_VALUE)  
{
printf("创建失败:%d/n   ",err);
                return   (FALSE);  
}
代码在这里总是出错,查错误为5,拒绝访问,怎么解决?
问题点数: 50、回复次数: 4
2楼  Carapee   ( 山豆根) 五级用户 该版得分小于等于5000分,大于2000分  回复于  2003-07-21 14:48:28  得分  25

提升权限试试。(没有验证)

if   (AdjustProcessPrivilege((HANDLE)NULL,   SE_DEBUG_NAME,   SE_PRIVILEGE_ENABLED)   ==   FALSE   ||  
AdjustProcessPrivilege((HANDLE)NULL,   SE_TAKE_OWNERSHIP_NAME,   SE_PRIVILEGE_ENABLED)   ==   FALSE   ||  
AdjustProcessPrivilege((HANDLE)NULL,   SE_SECURITY_NAME,   SE_PRIVILEGE_ENABLED)   ==   FALSE   ||  
AdjustProcessPrivilege((HANDLE)NULL,   SE_AUDIT_NAME,   SE_PRIVILEGE_ENABLED)   ==   FALSE)
{
_tprintf(_T("Adjust   process   privilege   failed!/n"));
return   -1;
}

hModuleSnap   =   CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,   dwPID);  

int   err=GetLastError();
        if   (hModuleSnap   ==   INVALID_HANDLE_VALUE)  
{
printf("创建失败:%d/n   ",err);
                return   (FALSE);  
}


BOOL   AdjustProcessPrivilege(HANDLE   hProcess,   LPCTSTR   lpPrivilegeName,   DWORD   dwPrivilegeAttribute)
{
BOOL   bRetValue   =   FALSE;

//   如果hProcess是NULL,说明调用者想要调整当前进程的权限,使用GetCurrentProcess获得的进程句柄无需关闭
HANDLE   hOpenProcess   =   (hProcess   !=   NULL)   ?   hProcess   :   GetCurrentProcess();
HANDLE   hProcessToken;
//   打开进程令牌,期望的权限为可以调整权限和查询,得到进程令牌句柄
        if   (OpenProcessToken(hOpenProcess,   TOKEN_ADJUST_PRIVILEGES   |   TOKEN_QUERY,   &hProcessToken)   !=   FALSE)
{
LUID   stPrivilegeLuid;
//   通过权限名称,查找指定的权限的LUID值
if   (LookupPrivilegeValue(NULL,   lpPrivilegeName,   &stPrivilegeLuid)   !=   FALSE)
{
//   设置新的权限
TOKEN_PRIVILEGES   stNewTokenPrivilege;
stNewTokenPrivilege.PrivilegeCount   =   1;
stNewTokenPrivilege.Privileges[0].Luid   =   stPrivilegeLuid;
stNewTokenPrivilege.Privileges[0].Attributes   =   dwPrivilegeAttribute;
//   调整权限
if   (AdjustTokenPrivileges(hProcessToken,   FALSE,   &stNewTokenPrivilege,   sizeof(stNewTokenPrivilege),   NULL,   NULL)   !=   FALSE)
{
bRetValue   =   TRUE;
}
}

//   关闭进程令牌句柄
CloseHandle(hProcessToken);
}

return   bRetValue;
}
Top
4楼  daineng   ( 纸玉鸢尾) 一级用户 该版得分小于等于100分  回复于  2003-07-21 17:40:49  得分  25

以验证:
BOOL   EnableDebugPrivilege(BOOL   fEnable)
{
//   Enabling   the   debug   privilege   allows   the   application   to   see
//   information   about   service   applications
BOOL   fOk   =   FALSE; //   Assume   function   fails
HANDLE   hToken;

//   Try   to   open   this   process's   access   token
if(OpenProcessToken(GetCurrentProcess(),   TOKEN_ADJUST_PRIVILEGES,   &hToken))
{
//   Attempt   to   modify   the   "Debug"   privilege
TOKEN_PRIVILEGES   tp;
tp.PrivilegeCount   =   1;
LookupPrivilegeValue(NULL,   SE_DEBUG_NAME,   &tp.Privileges[0].Luid);
tp.Privileges[0].Attributes   =   fEnable   ?   SE_PRIVILEGE_ENABLED   :   0;
AdjustTokenPrivileges(hToken,   FALSE,   &tp,   sizeof(tp),   NULL,   NULL);
fOk   =   (GetLastError()   ==   ERROR_SUCCESS);
CloseHandle(hToken);
}
return(fOk);
}
在你需要的时候使用EnableDebugPrivilege(TRUE);
结束后再调用EnableDebugPrivilege
--------------------------------------------------------------------------------------------------------------------------------
 #include <windows.h>
#include<stdio.h>
#include<string.h>
#include <commdlg.h>
#include <Commctrl.h>
#include "resource.h"
#include <Tlhelp32.h>
//使用视图列表
#pragma comment(lib,"comctl32.lib")
#define ID_TIMER 1
#define IDC_STATUS 1003
void Refresh(HWND);
BOOL CALLBACK  Test(HWND,UINT,WPARAM,LPARAM);
BOOL UpPrivilege(HANDLE,LPCTSTR);
HINSTANCE hinst;
int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
char privilege[]=SE_DEBUG_NAME;
HANDLE hprocess;
hinst=hinstance;
hprocess=GetCurrentProcess();
if(!UpPrivilege(hprocess,privilege))
MessageBox(NULL,"提升进程特权失败!","错误",MB_OK|MB_IConERROR);
InitCommonControls();
DialogBox(hinstance,(LPCTSTR)IDD_tianj03,NULL,(DLGPROC)Test);
return 1;
}
BOOL CALLBACK  Test(HWND hdlg , UINT message , WPARAM wParam , LPARAM lParam)
{
int i=0,index=0,id=0,n=0,iPart=0,uType=0;
int parts[]={75,160,-1};
char addstring[260],curid[32],idnum[5]={0},statutext[10]={"进程数:"};
char *psztext[]={"进程映象名","进程ID"};
char privilege[]="SE_SHUTDOWN_NAME";
char memstatus[15]={"内存使用:"},memuse[5]={0};
HANDLE hsnapshot,hprocess;
HICON hicon;
BOOL repeat;
NOTIFYICONDATA nid;
MEMORYSTATUS memstatu;
memstatu.dwLength=sizeof(MEMORYSTATUS);
PROCESSENTRY32 pe;
pe.dwSize=sizeof(PROCESSENTRY32);
LV_COLUMN lc;
LV_ITEM lt;
//  初始化 lc,lt
lc.mask=LVCF_WIDTH|LVCF_FMT|LVCF_TEXT|LVCF_SUBITEM;
lc.fmt=LVCFMT_LEFT;
lc.cx=110;
lc.pszText="";
lc.iSubItem=0;
lt.mask=LVIF_TEXT;
lt.iItem=0;
lt.iSubItem=0;
lt.pszText=psztext[1];
//  初始化 nid
nid.cbSize=sizeof(NOTIFYICONDATA);
   hicon=LoadIcon(hinst,(LPSTR)IDI_ICON);
nid.hIcon=hicon;
nid.hWnd=hdlg;
//nid.szTip=;
//nid.uCallbackMessage=;
nid.uFlags=NIF_ICON;
nid.uID=IDI_ICON;
switch(message)
{
case WM_INITDIALOG:
SendDlgItemMessage(hdlg,IDC_LISTVIEW_tianj03,LVM_SETEXTENDEDLISTVIEWstyle,0,(LPARAM)LVS_EX_FULLROWSELECT);
Shell_NotifyIcon(NIM_ADD,&nid);
SetWindowPos(hdlg,HWND_TOPMOST,100,10,230,330,SWP_NOSENDCHANGING);
SetTimer(hdlg,ID_TIMER,100,NULL);
CreateStatusWindow(WS_VISIBLE|WS_CHILD|SBS_SIZEGRIP,NULL,hdlg,IDC_STATUS);
       SendDlgItemMessage(hdlg,IDC_STATUS,SB_SETPARTS,3,(LPARAM)parts);
for(i=0;i<=1;i++)
{
lc.pszText=psztext[i];
lc.iSubItem=i;
if(i==1)
lc.cx=80;
SendDlgItemMessage(hdlg,IDC_LISTVIEW_tianj03,LVM_INSERTCOLUMN,(WPARAM)i,(LPARAM)&lc);
}
hsnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
repeat=Process32First(hsnapshot,&pe);
lt.pszText=pe.szExeFile;
SendDlgItemMessage(hdlg,IDC_LISTVIEW_tianj03,LVM_INSERTITEM,(WPARAM)i,(LPARAM)<);
lt.iSubItem=1;
sprintf(addstring,"%i",pe.th32ProcessID);
lt.pszText=addstring;
SendDlgItemMessage(hdlg,IDC_LISTVIEW_tianj03,LVM_SETITEM,0,(LPARAM)<);
for(i=1;repeat;i++)
{
repeat=Process32Next(hsnapshot,&pe);
if(!repeat)
break;
lt.iItem=i;
lt.iSubItem=0;
lt.pszText=pe.szExeFile;
SendDlgItemMessage(hdlg,IDC_LISTVIEW_tianj03,LVM_INSERTITEM,0,(LPARAM)<);
           sprintf(addstring,"%i",pe.th32ProcessID);
lt.iSubItem=1;
lt.pszText=addstring;
SendDlgItemMessage(hdlg,IDC_LISTVIEW_tianj03,LVM_SETITEM,0,(LPARAM)<);
}
n=i;
CloseHandle(hsnapshot);
sprintf(idnum,"%i",n);
strcat(statutext,idnum);
       SendDlgItemMessage(hdlg,IDC_STATUS,SB_SETTEXT,iPart|uType,(LPARAM)statutext);
GlobalMemoryStatus(&memstatu);
   sprintf(memuse,"%i%%",memstatu.dwMemoryLoad);
   strcat(memstatus,memuse);
iPart=1;
SendDlgItemMessage(hdlg,IDC_STATUS,SB_SETTEXT,iPart|uType,(LPARAM)memstatus);
return TRUE;
case WM_TIMER:
Refresh(hdlg);
return TRUE;
case WM_COMMAND:
switch(wParam)
{
case IDTERMINATEPROCESS:
UpPrivilege(GetCurrentProcess(),privilege);
index=SendDlgItemMessage(hdlg,IDC_LISTVIEW_tianj03,LVM_GETNEXTITEM,(WPARAM)-1,LVNI_SELECTED);
           lt.iItem=index;
lt.iSubItem=1;
lt.cchTextMax=32;
lt.pszText=curid;
           SendDlgItemMessage(hdlg,IDC_LISTVIEW_tianj03,LVM_GETITEMTEXT,(WPARAM)index,(LPARAM)<);
id=atol(curid);
hprocess=OpenProcess(PROCESS_TERMINATE,0,id);
if(hprocess==NULL)
{
MessageBox(hdlg,"进程拒绝访问","错误",MB_OK|MB_IConERROR);
}
else
{
if(!TerminateProcess(hprocess,0))
{
MessageBox(NULL,"不能结束","Message",MB_OK);
}
else
{
SendDlgItemMessage(hdlg,IDC_LISTVIEW_tianj03,LVM_DELETEITEM,(WPARAM)index,0);
}
}
return TRUE;
case IDEXIT:
           UpPrivilege(GetCurrentProcess(),privilege);
ExitWindows(EWX_SHUTDOWN,0);
return TRUE;
}
case WM_CLOSE:
       Shell_NotifyIcon(NIM_DELETE,&nid);
KillTimer(hdlg,ID_TIMER);
EndDialog(hdlg,0);
PostQuitMessage(0);
}
return FALSE;
}
//刷新列表(自己感觉是对的,但实际运行会出现一点问题(不影响大局):就是本进程会在列表中出现两次,不知道那儿错了,如果找到了告诉我。)
void Refresh(HWND hwnd)
{
int i=0,j=0,maxitem=0,n=0,iPart=0,uType=0;
BOOL repeat=FALSE;
LV_ITEM lt;
char listid[50][34],processid[50][34],idnum[5]={0},statutext[10]={"进程数:"},memstatus[15]={"内存使用:"},memuse[5]={0};
char buffer[34];
HANDLE hsnapshot;
PROCESSENTRY32 pe[50];
MEMORYSTATUS memstatu;
memstatu.dwLength=sizeof(MEMORYSTATUS);
for(i=0;i<50;i++)
{
pe[i].dwSize=sizeof(PROCESSENTRY32);
}
maxitem=SendDlgItemMessage(hwnd,IDC_LISTVIEW_tianj03,LVM_GETITEMCOUNT,0,0);
for(i=0;i<maxitem;i++)
{
lt.pszText=listid[i];
lt.cchTextMax=33;
lt.iItem=i;
lt.iSubItem=1;
SendDlgItemMessage(hwnd,IDC_LISTVIEW_tianj03,LVM_GETITEMTEXT,(WPARAM)i,(LPARAM)<);
*listid[i]=*(lt.pszText);
}
hsnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
repeat=Process32First(hsnapshot,&pe[0]);
sprintf(processid[0],"%i",pe[0].th32ProcessID);
for(i=1;repeat;i++)
{
repeat=Process32Next(hsnapshot,&pe[i]);
if(!repeat)
break;
sprintf(processid[i],"%i",pe[i].th32ProcessID);
n=i;
}
CloseHandle(hsnapshot);
sprintf(idnum,"%i",n+1);
strcat(statutext,idnum);
   SendDlgItemMessage(hwnd,IDC_STATUS,SB_SETTEXT,iPart|uType,(LPARAM)statutext);
GlobalMemoryStatus(&memstatu);
sprintf(memuse,"%i%%",memstatu.dwMemoryLoad);
strcat(memstatus,memuse);
//MessageBox(NULL,memuse,"",MB_OK);
iPart=1;
   SendDlgItemMessage(hwnd,IDC_STATUS,SB_SETTEXT,iPart|uType,(LPARAM)memstatus);
for(i=0;i<maxitem;i++)
{
for(j=0;j<=n;j++)
{
if(strcmp(listid[i],processid[j])==0)
break;
else
{
if(j==n)
SendDlgItemMessage(hwnd,IDC_LISTVIEW_tianj03,LVM_DELETEITEM,(WPARAM)i,0);
}
}
}
maxitem=SendDlgItemMessage(hwnd,IDC_LISTVIEW_tianj03,LVM_GETITEMCOUNT,0,0);
for(j=0;j<=n;j++)
{
for(i=0;i<=maxitem;i++)
{
if(strcmp(processid[j],listid[i])==0)
break;
else
{
if(i==maxitem)
{
lt.iItem=maxitem;
lt.iSubItem=0;
lt.pszText=pe[i].szExeFile;
SendDlgItemMessage(hwnd,IDC_LISTVIEW_tianj03,LVM_INSERTITEM,0,(LPARAM)<);
lt.iSubItem=1;
sprintf(buffer,"%i",pe[i].th32ProcessID);
lt.pszText=buffer;
SendDlgItemMessage(hwnd,IDC_LISTVIEW_tianj03,LVM_SETITEM,0,(LPARAM)<);
}
}
}
}
}
//提升进程权限,Nt下一些系统进程和服务的进程需要一定的特权才能结束。
BOOL UpPrivilege(HANDLE hprocess,LPCTSTR lpname)
{
HANDLE hToken;
TOKEN_PRIVILEGES Privileges;
   LUID luid;
//  下面为打开当前进程对话
   OpenProcessToken(hprocess,TOKEN_ADJUST_PRIVILEGES,&hToken);
   Privileges.PrivilegeCount=1;
   LookupPrivilegevalue(NULL,lpname,&luid);
   Privileges.Privileges[0].Luid=luid;
   Privileges.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
   if(AdjustTokenPrivileges(hToken,FALSE,&Privileges,NULL,NULL,NULL))
return TRUE;
return FALSE;
}

 
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/4602.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无法中止进程无法访问操作拒绝访问

无法中止进程无法访问操作拒绝访问 解决方案&#xff1a;使用360解除占用 任务管理器显示进程路径 找到该进程的路径 右键使用360解除占用 注&#xff1a;此方法有可能会无效&#xff0c;如果谁有更好的方法&#xff0c;请说明&#xff0c;谢谢。 其他方法&#xff08;在控…

PermissionError: [WinError 5] 拒绝访问。: ‘../data‘

# 通过ToTensor实例将图像数据从PIL类型变换成32位浮点数格式&#xff0c; # 并除以255使得所有像素的数值均在0到1之间 trans transforms.ToTensor() mnist_train torchvision.datasets.FashionMNIST(root"../data", trainTrue, transformtrans, downloadTrue) mn…

对com1的访问被拒绝

对 " com1 " 的访问被拒绝编写了一个串口通信程序,运行调试,系统提示: 不对啊&#xff0c;我的机器可是新买的品牌机哟. 1 .检查我的com1是否运行正常并启用.右击我的电脑 --> 属性 --> 选择 " 硬件 " --> 设备管理器 --> 端口(com和LPT) --&g…

文件访问被拒绝?5个解决方法!

案例&#xff1a;文件访问被拒绝 【朋友们&#xff0c;想问问大家的电脑有遇到过文件访问被拒绝的情况吗&#xff1f;真的太头疼了&#xff0c;大家都是怎么解决的呢&#xff1f;】 在日常使用电脑和操作文件时&#xff0c;有时我们可能会遇到文件访问被拒绝的情况。这可能会…

PermissionError: [WinError 5] 拒绝访问

使用Pycharm运行时&#xff0c;报错&#xff1a;PermissionError: [WinError 5] 拒绝访问 但是使用终端&#xff08;Terminal&#xff09;运行就没有问题 尝试方案&#xff1a;三步解决python PermissionError: [WinError 5]拒绝访问的情况 &#xff0c;然而并没有解决问题 …

windows 错误: 无法终止 进程。 原因: 拒绝访问。

问题描述 想要kill掉进程&#xff0c;但报错出现拒绝访问导致进程关不掉。 解决方案&#xff1a; 权限不够,以管理员权限打开cmd&#xff0c;然后输入命令终止进程。 相关命令&#xff1a; tasklist #查看进程名和pid netstat -ano | findstr "端口号" #根据端…

WindowsApps拒绝访问

情况 访问win10系统的某个文件夹提示“拒绝你访问该文件夹。若要获取访问文件夹的权限&#xff0c;你需要使用安全选项卡。”。在打开C盘“Program Files”文件夹下的“WindowsApps”文件夹时&#xff0c;在获取权限无法打开后提示“拒绝你访问该文件夹”。 解决办法 1、首…

[转]permissionerror winerror 5 拒绝访问。

转载自&#xff1a;温柔易淡–windows下pip安装python模块时报错总结 前言&#xff1a; 这几天把python版本升级后&#xff0c;发现pip安装模块好多都报错&#xff08;暂不确定是不是因为升级导致的&#xff09;&#xff0c;我定睛一看&#xff0c;发现是权限的问题&#xff0…

PermissionError: [WinError 5] 拒绝访问。(已解决)

前言&#xff1a; 今天学OpenCV,在写一个关于车牌的识别时遇到的这个问题。因为在将车牌的位置框出来后&#xff0c;想用pytesseract将框出来的内容识别出来并输出&#xff0c;而车牌中又因为有汉字&#xff0c;于是想用 # coding utf -8 from PIL import Image import pytes…

如何处理phpmyadmin中访问被拒绝

一、出错的模样 二、如何解决这个问题 1、首先打开XAMPP中的 Apache 那一行中 config 按钮里的 phpmyadmin&#xff0c;如下图所示&#xff1a; 2、进入到文件中&#xff0c;添加你的数据库密码&#xff0c;如下图所示 三、让我们看下修改后的结果 成功&#xff01;&#xf…

phpMyAdmin访问被拒绝!

1、环境&#xff1a; XAMPP PhpStorm 2、phpMyAdmin配置文件路径&#xff1a; /Applications/XAMPP/xamppfiles/phpmyadmin/libraries/config.default.php 3、问题出现的原因&#xff1a; 在终端首次进入mysql命令行模式&#xff0c;提示设置密码&#xff0c;设置后在浏览器…

ChatGPT常见问题,Access denied的解决办法

今天&#xff0c;突然想登录一登录ChatGPT&#xff0c;提示 Access denied, You do not have access to chat.openai.com 怎么办&#xff1f; “Access denied You do not have access to chat.openai.com. The site owner may have set restrictions that prevent you from ac…

PermissionError: [WinError 5] 拒绝访问。解决办法

PermissionError: [WinError 5] 拒绝访问 问题描述解决办法一、找到programdata下anaconda3的python二、进入Users的权限&#xff0c;将除了特殊权限外&#xff0c;全部挂上√。三、在返回到anaconda3的目录&#xff0c;进入anaconda3的属性&#xff0c;设置权限 问题描述 当在…

WinSCP拒绝访问问题

文章目录 前言一、问题描述二、搜索问题三、解决方案总结 前言 大家好&#xff0c;我是三&#x1f40e;&#xff01;最近使用VMware虚拟机配置了Ubuntu系统&#xff0c;想使用WinSCP软件将电脑上的一些文件上传到虚拟机中时&#xff0c;发现了一些问题。现将问题以及解决方法分…

关于PermissionError: [WinError 5] 拒绝访问的解决方案

在python使用pip命令安装各种package时&#xff0c;可能会发生下列现象&#xff1a; PermissionError: [WinError 5] 拒绝访问。: c:\\program files\\python36\\Lib\\site-packages\\selenium *因我安装的是selenium包&#xff0c;所以报错信息的路径会和selenium有关&#xf…

收发网易,雅虎,hotmail,gmail邮件可能遇到的问题的解答

一、我使用新申请的网易的126/163邮件箱&#xff0c;能在网页上收邮件&#xff0c;但是通过FOXMAIL无法收信&#xff0c;错误提示&#xff1a;没有权限使用POP3 &#xff0c;但是我以前的126/163邮箱是可以正常使用的&#xff0c; 错误如下图提示&#xff0c; 二、我使用新申请…

问题解决: Google企业邮箱收不到Postfix发的邮件

最新更新参考博客: 问题解决: Google企业邮箱收不到Postfix发的邮件 今天群里小伙伴@佰宝小筑安装postfix时遇到的问题, 记录一下. 如果你的情况相似, 可以对照解决. 他的网站域名是xxx.com, 使用Google的企业邮箱, Contact Form 7 内设置的发件邮箱是1@xxx.com, 装完测试的时…

手机邮箱收不到验证邮件怎么办,分享邮箱没有收到验证邮件的解决办法

工作中你是否遇到过邮箱收不到验证邮件的情况&#xff0c;那你知道如何解决吗&#xff1f;今天就将自己学到的方法教给大家&#xff0c;小本本记下来哟&#xff01; 小伙伴们&#xff0c;不知不觉一年又要过去了&#xff0c;剩下一过月就是2022年了&#xff0c;今年也是小编离开…

TeamViewer 收不到邮件该怎么办?

首先打开你的TeamViewer软件&#xff0c;先在一台计算机中你的账户登录。如果没有账户的可以自行注册一个&#xff0c;操作方法很简单&#xff0c;参考&#xff1a;TeamViewer账号注册教程。 然后在另一台上登录这个账户&#xff0c;这时会弹出一个提示框&#xff0c;如下图所示…

如何解决海外邮件发不出去

中国力推“一带一路”战略&#xff0c;为首成立“亚投行”&#xff0c;越来越多的中国企业酝酿走出去。在企业间的商务往来中&#xff0c;电子邮件将扮演着重要角色&#xff0c;但是因为要跨洋过海&#xff0c;各国互联网环境和法律法规有所区别&#xff0c;面临着种种变数&…