真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

易語言中怎么使用NTAPI實(shí)現(xiàn)進(jìn)程操縱

本篇文章給大家分享的是有關(guān)易語言中怎么使用NTAPI實(shí)現(xiàn)進(jìn)程操縱,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)是一家專業(yè)提供興化企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、H5場(chǎng)景定制、小程序制作等業(yè)務(wù)。10年已為興化眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

DLL命令表

.版本 2
.DLL命令 打開進(jìn)程_, 整數(shù)型, "kernel32.dll", "OpenProcess", 公開, 將句柄返回給過程對(duì)象
  .參數(shù) 進(jìn)程對(duì)象, 整數(shù)型, , dwDesiredAccess 
  .參數(shù) 繼承句柄, 整數(shù)型, , bInheritHandle  
  .參數(shù) 進(jìn)程標(biāo)識(shí)符, 整數(shù)型, , dwProcessId
.DLL命令 ZwOpenProcess, 整數(shù)型, "ntdll.dll", "ZwOpenProcess", 公開
  .參數(shù) hProcess, 整數(shù)型, 傳址
  .參數(shù) DesiredAccess, 整數(shù)型
  .參數(shù) ObjectAttributes, OBJECT_ATTRIBUTES
  .參數(shù) ClientId, CLIENT_ID
.DLL命令 ZwQuerySystemInformation, 整數(shù)型, "ntdll.dll", "ZwQuerySystemInformation"
  .參數(shù) SystemInformationClass, 整數(shù)型, , 未知類型:SYSTEM_INFORMATION_CLASS。
  .參數(shù) SystemInformation, 字節(jié)集, , any
  .參數(shù) SystemInformationLength, 整數(shù)型
  .參數(shù) ReturnLength, 整數(shù)型, 傳址
.DLL命令 取指針_字節(jié)集, 整數(shù)型, , "lstrcpyn", 公開, 常規(guī)API
  .參數(shù) 欲取其指針, 字節(jié)集, 傳址
  .參數(shù) 欲取其指針, 字節(jié)集, 傳址
  .參數(shù) 保留, 整數(shù)型, , 0
.DLL命令 RtlMoveMemory3, 整數(shù)型, , "RtlMoveMemory", 公開, 常規(guī)API,從地址讀一個(gè)整數(shù)
  .參數(shù) dest, 整數(shù)型, 傳址
  .參數(shù) Source, 整數(shù)型
  .參數(shù) len, , , 4
.DLL命令 RtlMoveMemory1, 整數(shù)型, , "RtlMoveMemory", , 常規(guī)API
  .參數(shù) dest, SYSTEM_HANDLE_TABLE_ENTRY_INFO
  .參數(shù) Source, 整數(shù)型
  .參數(shù) len
.DLL命令 ZwDuplicateObject, 整數(shù)型, "ntdll.dll", , 公開
  .參數(shù) SourceProcessHandle, 整數(shù)型
  .參數(shù) SourceHandle, 整數(shù)型
  .參數(shù) TargetProcessHandle, 整數(shù)型
  .參數(shù) TargetHandle, 整數(shù)型, 傳址
  .參數(shù) DesiredAccess, 整數(shù)型
  .參數(shù) HandleAttributes, 整數(shù)型
  .參數(shù) Options, 整數(shù)型
.DLL命令 ZwQueryInformationProcess, 整數(shù)型, "ntdll.dll", "ZwQueryInformationProcess"
  .參數(shù) SystemInformationClass, 整數(shù)型, , 未知類型:SYSTEM_INFORMATION_CLASS。
  .參數(shù) dd, 整數(shù)型
  .參數(shù) SystemInformation, PROCESS_BASIC_INFORMATION, , any
  .參數(shù) SystemInformationLength, 整數(shù)型
  .參數(shù) ReturnLength, 整數(shù)型, 傳址
.DLL命令 ZwClose, 整數(shù)型, "ntdll.dll", "ZwClose", 公開, 關(guān)閉進(jìn)程句柄
  .參數(shù) handle
.DLL命令 取函數(shù)地址_, 整數(shù)型, "kernel32", "GetProcAddress", , 返回函數(shù)地址
  .參數(shù) 模塊句柄, 整數(shù)型
  .參數(shù) 函數(shù)名, 文本型
.DLL命令 取模塊句柄_, 整數(shù)型, "kernel32", "GetModuleHandleA", , 獲取一個(gè)應(yīng)用程序或動(dòng)態(tài)鏈接庫的模塊句柄 如執(zhí)行成功成功,則返回模塊句柄。零表示失敗。會(huì)設(shè)置GetLastError
  .參數(shù) 模塊名, 文本型, , 指定模塊名,這通常是與模塊的文件名相同的一個(gè)名字。例如,NOTEPAD.EXE程序的模塊文件名就叫作NOTEPAD;
.DLL命令 _動(dòng)態(tài)調(diào)用子程序, 整數(shù)型, , "CallWindowProcA"
  .參數(shù) 動(dòng)態(tài)調(diào)用代碼, 字節(jié)集, , 字節(jié)集代碼
  .參數(shù) 子程序, 整數(shù)型, , 子程序指針 到整數(shù)(子程序指針)
  .參數(shù) 參數(shù), 整數(shù)型, 數(shù)組, 為整數(shù)數(shù)組,參數(shù)1為成員1…類推;文本型和字節(jié)集型(自定義結(jié)構(gòu))為指針
  .參數(shù) 參數(shù)數(shù)目, 整數(shù)型, , 一定要和參數(shù)數(shù)組相符,不然會(huì)出錯(cuò)
  .參數(shù) 是否C調(diào)用, 邏輯型, , 真為cdecl調(diào)用方式,假為stdcall調(diào)用方式(即標(biāo)準(zhǔn)WINAPI方式)
.DLL命令 ZwCreateJobObject, 整數(shù)型, "ntdll.dll", , 公開
  .參數(shù) JobHandle, 整數(shù)型, 傳址
  .參數(shù) DesiredAccess, 整數(shù)型
  .參數(shù) ObjectAttributes, OBJECT_ATTRIBUTES
.DLL命令 關(guān)閉內(nèi)核對(duì)象_, 整數(shù)型, "kernel32.dll", "CloseHandle", 公開, $(b)非零表示成功,零表示失敗
  .參數(shù) 對(duì)象句柄, 整數(shù)型, , hObject,欲關(guān)閉的一個(gè)對(duì)象的句柄
.DLL命令 TerminateProcess_, 整數(shù)型, "kernel32", "TerminateProcess", , 結(jié)束一個(gè)進(jìn)程 非零表示成功,零表示失敗。會(huì)設(shè)置GetLastError
  .參數(shù) hProcess, 整數(shù)型, , 指定要中斷的一個(gè)進(jìn)程的句柄
  .參數(shù) uExitCode, 整數(shù)型, , 進(jìn)程的一個(gè)退出代碼;
.DLL命令 ZwAssignProcessToJobObject, 整數(shù)型, "ntdll.dll", , 公開
  .參數(shù) JobHandle, 整數(shù)型
  .參數(shù) ProcessHandle, 整數(shù)型
.DLL命令 ZwTerminateJobObject, 整數(shù)型, "ntdll.dll", , 公開
  .參數(shù) JobHandle, 整數(shù)型
  .參數(shù) ExitStatus, 整數(shù)型
.DLL命令 ZwTerminateProcess, 整數(shù)型, "ntdll.dll", , 公開
  .參數(shù) ProcessHandle, 整數(shù)型
  .參數(shù) ExitStatus, 整數(shù)型
.DLL命令 ZwProtectVirtualMemory, 整數(shù)型, "NTDLL.DLL", "ZwProtectVirtualMemory"
  .參數(shù) ProcessHandle, 整數(shù)型
  .參數(shù) BaseAddress, 整數(shù)型
  .參數(shù) RegionSize, 整數(shù)型
  .參數(shù) NewProtect, 整數(shù)型
  .參數(shù) OldProtect, 整數(shù)型
.DLL命令 ZwWriteVirtualMemory, 整數(shù)型, "NTDLL.DLL", "ZwWriteVirtualMemory"
  .參數(shù) ProcessHandle, 整數(shù)型
  .參數(shù) BaseAddress, 整數(shù)型
  .參數(shù) pBuffer, 字節(jié)集
  .參數(shù) NumberOfBytesToWrite, 整數(shù)型
  .參數(shù) NumberOfBytesWritten, 整數(shù)型, 傳址
.DLL命令 RtlAdjustPrivilegeA, 整數(shù)型, "ntdll.dll", "RtlAdjustPrivilege"
  .參數(shù) Privilege, 整數(shù)型
  .參數(shù) Enable, 邏輯型
  .參數(shù) Client, 邏輯型
  .參數(shù) WasEnabled, 整數(shù)型, 傳址
.DLL命令 API_CreateRemoteThread, 整數(shù)型, "kernel32", "CreateRemoteThread", , 在另一進(jìn)程中建立線索
  .參數(shù) hProcess, 整數(shù)型
  .參數(shù) lpThreadAttributes, SECURITY_ATTRIBUTES
  .參數(shù) dwStackSize, 整數(shù)型
  .參數(shù) lpStartAddress, 整數(shù)型
  .參數(shù) lpParameter, 整數(shù)型
  .參數(shù) dwCreationFlags, 整數(shù)型
  .參數(shù) lpThreadId, 整數(shù)型
.DLL命令 CreateToolhelp32Snapshot, 整數(shù)型, "Kernel32.dll", "CreateToolhelp32Snapshot"
  .參數(shù) falg, 整數(shù)型
  .參數(shù) id, 整數(shù)型
.DLL命令 Thread32First, 整數(shù)型, "kernel32", "Thread32First"
  .參數(shù) hSnapshot, 整數(shù)型
  .參數(shù) lppe, THREADENTRY32
.DLL命令 OpenThread, 整數(shù)型, "kernel32", "OpenThread"
  .參數(shù) h, 整數(shù)型
  .參數(shù) a, 邏輯型
  .參數(shù) b, 整數(shù)型
.DLL命令 TerminateThread, 整數(shù)型, "NTDLL.DLL", "ZwTerminateThread"
  .參數(shù) hThread, 整數(shù)型
  .參數(shù) dwExitCode, 整數(shù)型
.DLL命令 Thread32Next, 整數(shù)型, "kernel32", "Thread32Next"
  .參數(shù) hSnapshot, 整數(shù)型
  .參數(shù) lppe, THREADENTRY32
.DLL命令 NtUnmapViewOfSection, 整數(shù)型, "ntdll.dll", "NtUnmapViewOfSection"
  .參數(shù) hProcess
  .參數(shù) addr
.DLL命令 LoadLibrary, 整數(shù)型, "kernel32", "LoadLibraryA", 公開
  .參數(shù) lpLibFileName, 文本型
.DLL命令 DebugActiveProcess, 邏輯型, "kernel32", "DebugActiveProcess"
  .參數(shù) dwProcessId, 整數(shù)型

自定義數(shù)據(jù)類型表

.版本 2
.數(shù)據(jù)類型 CLIENT_ID, 公開, CLIENT_ID結(jié)構(gòu)包含進(jìn)程和線程的標(biāo)識(shí)符。
  .成員 UniqueProcess, 整數(shù)型, , , 進(jìn)程標(biāo)識(shí)符
  .成員 UniqueThread, 整數(shù)型, , , 線程標(biāo)識(shí)符
.數(shù)據(jù)類型 OBJECT_ATTRIBUTES, 公開, OBJECT_ATTRIBUTES結(jié)構(gòu)指定屬性,可以應(yīng)用于對(duì)象或?qū)ο筇幚淼睦虅?chuàng)建對(duì)象和/或返回對(duì)象的處理。
  .成員 Length, 整數(shù)型
  .成員 RootDirectory, 整數(shù)型
  .成員 ObjectName, 整數(shù)型
  .成員 Attributes, 整數(shù)型
  .成員 SecurityDescriptor, 整數(shù)型
  .成員 SecurityQualityOfService, 整數(shù)型
.數(shù)據(jù)類型 SECURITY_ATTRIBUTES, , 安全性結(jié)構(gòu);
  .成員 nLength, 整數(shù)型
  .成員 lpSecurityDescriptor, 整數(shù)型
  .成員 bInheritHandle, 整數(shù)型
.數(shù)據(jù)類型 PROCESS_BASIC_INFORMATION, 公開
  .成員 ExitStatus, 整數(shù)型
  .成員 PebBaseAddress, 整數(shù)型
  .成員 AffinityMask, 整數(shù)型
  .成員 BasePriority, 整數(shù)型
  .成員 UniqueProcessId, 整數(shù)型
  .成員 InheritedFromUniqueProcessId, 整數(shù)型
.數(shù)據(jù)類型 MEMORY_BASIC_INFORMATION, 公開
  .成員 BaseAddress, 整數(shù)型
  .成員 AllocationBase, 整數(shù)型
  .成員 AllocattionProtect, 整數(shù)型
  .成員 RegionSize, 整數(shù)型
  .成員 State, 整數(shù)型
  .成員 Protect, 整數(shù)型
  .成員 Type, 整數(shù)型
.數(shù)據(jù)類型 SYSTEM_HANDLE_TABLE_ENTRY_INFO, 公開
  .成員 UniqueProcessId, 短整數(shù)型
  .成員 CreatorBackTraceIndex, 短整數(shù)型
  .成員 ObjectTypeIndex, 字節(jié)型
  .成員 HandleAttributes, 字節(jié)型
  .成員 HandleValue, 短整數(shù)型
  .成員 pObject, 整數(shù)型
  .成員 GrantedAccess, 整數(shù)型
.數(shù)據(jù)類型 THREADENTRY32
  .成員 dwsize, 整數(shù)型
  .成員 cntusage, 整數(shù)型
  .成員 th42threadID, 整數(shù)型
  .成員 th42OwnerProcessID, 整數(shù)型
  .成員 tpBasePri, 整數(shù)型
  .成員 tpDeltaPri, 整數(shù)型
  .成員 dwFlags, 整數(shù)型

常量數(shù)據(jù)表

.版本 2
.常量 PROCESS_ALL_ACCESS, "2035711", 公開
.常量 STATUS_INFO_LENGTH_MISMATCH, "-1073741820", 公開
.常量 STATUS_SUCCESS, "0", 公開
.常量 PROCESS_QUERY_INFORMATION, "1024", 公開
.常量 STATUS_INVALID_PARAMETER, "-1073741811", 公開
.常量 OBJ_INHERIT, "2", 公開
.常量 DUPLICATE_CLOSE_SOURCE, "1", 公開
.常量 DUPLICATE_SAME_ACCESS, "2", 公開
.常量 DUPLICATE_SAME_ATTRIBUTES, "4", 公開
.常量 OB_TYPE_PROCESS, "5", 公開
.常量 ZwGetCurrentProcess, "-1", 公開
.常量 PROCESS_DUP_HANDLE, "64", 公開
.常量 PAGE_EXECUTE_READWRITE, "64"
.常量 JOB_OBJECT_ALL_ACCESS, "2031647", 公開

NTAPI進(jìn)程操縱代碼

.版本 2
.程序集 主程序集
.子程序 _啟動(dòng)子程序, 整數(shù)型
進(jìn)程_提高權(quán)限 ()
信息框 (進(jìn)程暫停 (3796, 假), 0, , )
返回 (0)
.子程序 打開進(jìn)程_強(qiáng)力, 整數(shù)型, 公開, 主要為NATIVE API
.參數(shù) dwDesiredAccess, 整數(shù)型
.參數(shù) bInhert, 邏輯型
.參數(shù) ProcessId, 整數(shù)型
.局部變量 st, 整數(shù)型
.局部變量 cid, CLIENT_ID, , , CLIENT_ID結(jié)構(gòu)包含進(jìn)程和線程的標(biāo)識(shí)符。
.局部變量 oa, OBJECT_ATTRIBUTES
.局部變量 NumOfHandle, 整數(shù)型
.局部變量 pbi, PROCESS_BASIC_INFORMATION
.局部變量 i, 整數(shù)型
.局部變量 hProcessToDup, 整數(shù)型
.局部變量 hProcessCur, 整數(shù)型
.局部變量 hProcessToRet, 整數(shù)型
.局部變量 h_info, SYSTEM_HANDLE_TABLE_ENTRY_INFO
.局部變量 retlen, 整數(shù)型
.局部變量 a, 字節(jié)集
.局部變量 b, 整數(shù)型
.局部變量 c, 字節(jié)集
.局部變量 ret, 整數(shù)型
.如果真 (ProcessId = 0)
  返回 (0)
.如果真結(jié)束
oa.Length = 24
.如果真 (bInhert)
  oa.Attributes = 位或 (oa.Attributes, #OBJ_INHERIT)
.如果真結(jié)束
cid.UniqueProcess = ProcessId + 1
st = ZwOpenProcess (hProcessToRet, dwDesiredAccess, oa, cid)
.如果真 (st ≥ 0)
  ret = hProcessToRet
  返回 (ret)
.如果真結(jié)束
retlen = 1
.循環(huán)判斷首 ()
  a = 取空白字節(jié)集 (retlen)
  ret = ZwQuerySystemInformation (16, a, retlen, 0)
  .如果 (ret = #STATUS_INFO_LENGTH_MISMATCH)
    retlen = retlen × 2
    a = 取空白字節(jié)集 (retlen)
  .否則
    跳出循環(huán) ()
  .如果結(jié)束
.循環(huán)判斷尾 (ret = #STATUS_INFO_LENGTH_MISMATCH)
b = 取指針_字節(jié)集 (a, a, 0)
RtlMoveMemory3 (NumOfHandle, b, 4)
b = b + 4
.計(jì)次循環(huán)首 (NumOfHandle, i)
  RtlMoveMemory1 (h_info, b, 16)
  .如果真 (h_info.ObjectTypeIndex = #OB_TYPE_PROCESS)
    cid.UniqueProcess = h_info.UniqueProcessId
    st = ZwOpenProcess (hProcessToDup, #PROCESS_DUP_HANDLE, oa, cid)
    .如果真 (st ≥ 0)
      st = ZwDuplicateObject (hProcessToDup, h_info.HandleValue, #ZwGetCurrentProcess, hProcessCur, #PROCESS_ALL_ACCESS, 0, #DUPLICATE_SAME_ATTRIBUTES)
      .如果真 (st ≥ 0)
        st = ZwQueryInformationProcess (hProcessCur, 0, pbi, 24, 0)
        .如果真 (st ≥ 0)
          .如果真 (pbi.UniqueProcessId = ProcessId)
            st = ZwDuplicateObject (hProcessToDup, h_info.HandleValue, #ZwGetCurrentProcess, hProcessToRet, dwDesiredAccess, #OBJ_INHERIT, #DUPLICATE_SAME_ATTRIBUTES)
            .如果真 (st ≥ 0)
              ret = hProcessToRet
            .如果真結(jié)束
          .如果真結(jié)束
        .如果真結(jié)束
      .如果真結(jié)束
      st = ZwClose (hProcessCur)
    .如果真結(jié)束
    st = ZwClose (hProcessToDup)
  .如果真結(jié)束
  b = b + 16
.計(jì)次循環(huán)尾 ()
返回 (ret)
.子程序 進(jìn)程暫停, 邏輯型, 公開, 進(jìn)程暫停(成功返回真,失敗假)
.參數(shù) PID, 整數(shù)型
.參數(shù) 狀態(tài), 邏輯型, 可空
.局部變量 進(jìn)程句柄, 整數(shù)型
.局部變量 a, 整數(shù)型
進(jìn)程句柄 = 打開進(jìn)程_ (2035711, 0, PID)
.如果真 (進(jìn)程句柄 = 0)
  進(jìn)程句柄 = 打開進(jìn)程_強(qiáng)力 (2035711, 假, PID)
.如果真結(jié)束
.如果真 (進(jìn)程句柄 = 0)
  返回 (假)
.如果真結(jié)束
.如果 (狀態(tài))
  a = API_ZwSuspendProcess (進(jìn)程句柄)
.否則
  a = API_ZwResumeProcess (進(jìn)程句柄)
.如果結(jié)束
關(guān)閉內(nèi)核對(duì)象_ (進(jìn)程句柄)
返回 (a = 0)
.子程序 API_ZwSuspendProcess, 整數(shù)型, , NTDLL.DLL,API_ZwSuspendProcess
.參數(shù) 進(jìn)程句柄, 整數(shù)型
.局部變量 地址, 整數(shù)型
.局部變量 參數(shù), 整數(shù)型, , "1"
地址 = 取api函數(shù)地址 (“NTDLL.DLL”, “ZwSuspendProcess”) ' 取出NTDLL中函數(shù)ZwSuspendProcess的地址
參數(shù) [1] = 進(jìn)程句柄 ' ZwSuspendProcess的參數(shù),ZwSuspendProcess是系統(tǒng)自帶的掛起進(jìn)程命令,動(dòng)態(tài)調(diào)用防止鉤子
返回 (_動(dòng)態(tài)調(diào)用子程序 (#動(dòng)態(tài)調(diào)用代碼, 地址, 參數(shù), 1, 假)) ' 動(dòng)態(tài)調(diào)用
.子程序 取api函數(shù)地址, 整數(shù)型, 公開
.參數(shù) dll文件名, 文本型
.參數(shù) dll命令名, 文本型
返回 (取函數(shù)地址_ (取模塊句柄_ (dll文件名), dll命令名))
.子程序 API_ZwResumeProcess, 整數(shù)型, , NTDLL.DLL,API_ZwResumeProcess
.參數(shù) 進(jìn)程句柄, 整數(shù)型
.局部變量 地址, 整數(shù)型
.局部變量 參數(shù), 整數(shù)型, , "1"
地址 = 取api函數(shù)地址 (“NTDLL.DLL”, “ZwResumeProcess”) ' 取出NTDLL中函數(shù)ZwResumeProcess的地址
參數(shù) [1] = 進(jìn)程句柄 ' ZwResumeProcess的參數(shù),ZwResumeProcess是系統(tǒng)自帶的恢復(fù)進(jìn)程命令,動(dòng)態(tài)調(diào)用防止鉤子
返回 (_動(dòng)態(tài)調(diào)用子程序 (#動(dòng)態(tài)調(diào)用代碼, 地址, 參數(shù), 1, 假)) ' 動(dòng)態(tài)調(diào)用
.子程序 進(jìn)程結(jié)束, 邏輯型, 公開, 終止一個(gè)進(jìn)程(成功返回真,失敗返回假)
.參數(shù) 進(jìn)程ID, 整數(shù)型, , 欲結(jié)束的進(jìn)程ID
.局部變量 進(jìn)程句柄, 整數(shù)型
.局部變量 a, 整數(shù)型
進(jìn)程句柄 = 打開進(jìn)程_ (進(jìn)程ID)
a = TerminateProcess_ (進(jìn)程句柄, 0)
關(guān)閉內(nèi)核對(duì)象_ (進(jìn)程句柄)
返回 (a > 0)
.子程序 進(jìn)程結(jié)束_強(qiáng)力, 邏輯型, 公開, 主要為NATIVE API
.參數(shù) hProcess, 整數(shù)型
.參數(shù) ExitStatus, 整數(shù)型, , 0
.局部變量 st, 整數(shù)型
.局部變量 hJob, 整數(shù)型
.局部變量 oa, OBJECT_ATTRIBUTES
.局部變量 ret, 邏輯型
ret = 假
oa.Length = 24
st = ZwCreateJobObject (hJob, #JOB_OBJECT_ALL_ACCESS, oa)
.如果真 (st ≥ 0)
  st = ZwAssignProcessToJobObject (hJob, hProcess)
  .如果真 (st ≥ 0)
    st = ZwTerminateJobObject (hJob, ExitStatus)
    .如果真 (st ≥ 0)
      ret = 真
    .如果真結(jié)束
  .如果真結(jié)束
  ZwClose (hJob)
.如果真結(jié)束
.如果真 (ret = 假)
  st = ZwTerminateProcess (hProcess, ExitStatus)
  .如果真 (st ≥ 0)
    ret = 真
  .如果真結(jié)束
.如果真結(jié)束
返回 (ret)
.子程序 進(jìn)程_NT內(nèi)存清零, 邏輯型, 公開, 注意,該命令十分強(qiáng)力,可以清除進(jìn)程大部分殘余命令和內(nèi)存(注:速度太慢,CPU占量很高,請(qǐng)慎用?。?
.參數(shù) PID, 整數(shù)型
.局部變量 hprocess, 整數(shù)型
.局部變量 i, 整數(shù)型
.局部變量 內(nèi)存填充物, 整數(shù)型
hprocess = 打開進(jìn)程_強(qiáng)力 (#PROCESS_ALL_ACCESS, 假, PID)
內(nèi)存填充物 = 取空白字節(jié)集 (255)
.變量循環(huán)首 (0, 40960000, 4096, i)
  ZwProtectVirtualMemory (hprocess, i, 4096, #PAGE_EXECUTE_READWRITE, 0)
  ZwWriteVirtualMemory (hprocess, i, 內(nèi)存填充物, 4096, 0)
.變量循環(huán)尾 ()
ZwClose (hprocess)
.子程序 進(jìn)程_取自進(jìn)程ID, 整數(shù)型, 公開, 取自身進(jìn)程PID,成功返回進(jìn)程ID,失敗返回-1
置入代碼 ({ 100, 139, 5, 32, 0, 0, 0, 201, 195 })
返回 (-1)
.子程序 進(jìn)程_提高權(quán)限, 邏輯型, 公開, NT強(qiáng)力提高權(quán)限,限自身
RtlAdjustPrivilegeA (20, 真, 假, 0)
返回 (真)
.子程序 Kill_Process, 邏輯型, 公開, 包含8種殺進(jìn)程方法
.參數(shù) PID, 整數(shù)型
.局部變量 hJob, 整數(shù)型
.局部變量 oa, OBJECT_ATTRIBUTES
.局部變量 H, 整數(shù)型
.局部變量 h_d, 整數(shù)型
.局部變量 sa, SECURITY_ATTRIBUTES
.局部變量 i, 整數(shù)型
H = 打開進(jìn)程_ (PID)
.如果真 (H = 0)
  H = 打開進(jìn)程_強(qiáng)力 (#PROCESS_ALL_ACCESS, 假, PID)
.如果真結(jié)束
.如果 (H ≠ 0)
  .如果真 (ZwTerminateProcess (H, 1) ≥ 1)
    返回 (真)
  .如果真結(jié)束
  .如果真 (進(jìn)程結(jié)束 (PID))
    返回 (真)
  .如果真結(jié)束
  .如果真 (進(jìn)程結(jié)束_強(qiáng)力 (H, 0))
    返回 (真)
  .如果真結(jié)束
  oa.Length = 24
  .如果真 (ZwCreateJobObject (hJob, 2031647, oa) ≥ 0)
    .如果真 (ZwAssignProcessToJobObject (hJob, H) ≥ 0 且 ZwTerminateJobObject (hJob, 0) ≥ 0)
      ZwClose (H)
      ZwClose (hJob)
      返回 (真)
    .如果真結(jié)束
    ZwClose (hJob)
  .如果真結(jié)束
  h_d = 取api函數(shù)地址 (“kernel32.dll”, “ExitProcess”)
  API_CreateRemoteThread (H, sa, 0, h_d, 0, 0, 0)
  關(guān)閉內(nèi)核對(duì)象_ (H)
  .如果真 (KillAllTheard (PID))
    返回 (真)
  .如果真結(jié)束
.否則
  H = 打開進(jìn)程_ (8, 0, PID)
  .如果真 (H = 0)
    H = 打開進(jìn)程_強(qiáng)力 (8, 假, PID)
  .如果真結(jié)束
  i = NtUnmapViewOfSection (H, LoadLibrary (“kernel32.dll”)) ' 強(qiáng)制卸載kernel32.dll
  i = NtUnmapViewOfSection (H, LoadLibrary (“USER32.dll”)) ' 強(qiáng)制卸載USER32.dll
  i = NtUnmapViewOfSection (H, LoadLibrary (“GDI32.dll”)) ' 強(qiáng)制卸載GDI32.dll
  i = NtUnmapViewOfSection (H, LoadLibrary (“KERNELBASE.dll”)) ' 強(qiáng)制卸載KERNELBASE.dll
  i = NtUnmapViewOfSection (H, LoadLibrary (“ntdll.dll”)) ' 強(qiáng)制卸載ntdll.dll
  ZwClose (H)
  .如果真 (i ≥ 0)
    返回 (真)
  .如果真結(jié)束
  返回 (DebugActiveProcess (PID))
.如果結(jié)束
返回 (假)
.子程序 KillAllTheard, 邏輯型
.參數(shù) pid
.局部變量 hSnapShot, 整數(shù)型
.局部變量 End, 整數(shù)型
.局部變量 buffer, THREADENTRY32
.局部變量 tid, 整數(shù)型
.局部變量 handle
tid = -1
hSnapShot = CreateToolhelp32Snapshot (4, 0)
buffer.dwsize = 28
End = Thread32First (hSnapShot, buffer)
.判斷循環(huán)首 (End ≠ 0)
  .如果真 (buffer.th42OwnerProcessID = pid)
    tid = buffer.th42threadID
    handle = OpenThread (2032639, 假, tid)
    .如果真 (TerminateThread (handle, 0) = 0)
      關(guān)閉內(nèi)核對(duì)象_ (handle)
      關(guān)閉內(nèi)核對(duì)象_ (hSnapShot)
      返回 (假)
    .如果真結(jié)束
    關(guān)閉內(nèi)核對(duì)象_ (handle)
    跳出循環(huán) ()
  .如果真結(jié)束
  End = Thread32Next (hSnapShot, buffer)
.判斷循環(huán)尾 ()
關(guān)閉內(nèi)核對(duì)象_ (hSnapShot)
返回 (真)

以上就是易語言中怎么使用NTAPI實(shí)現(xiàn)進(jìn)程操縱,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


新聞名稱:易語言中怎么使用NTAPI實(shí)現(xiàn)進(jìn)程操縱
URL鏈接:http://weahome.cn/article/jcscih.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部