易语言进程内核操作源码
系统结构:加载驱动,取SSDT,枚举进程,枚举进程2,枚举线程,调用转向,s7r5jr57d,取进程路径,取进程名,提升进程权限debug,进程结束,内存清零,取文件名,取路径,填充,枚举内核模块,强力打开进程,枚举模块,UnHookDLL,提取错误代码,提取错误标题,提取错误信息,TerminateProcess,OpenProcess,提升进程权限,刷新模块信息,加载驱动,卸载驱动,卸载驱动_,CTL_CODE,十六到十,EnumSSDT,FindKiServiceTable,GetHeaders,关闭内核对象,RtlAdjustPrivilege,NtQuerySystemInformation,NtQuerySystemInformation1,LocalAlloc,CopyMemory_MODULES,LocalFree,ZwWriteVirtualMemory,ZwProtectVirtualMemory,ZwClose,ZwOpenProcess,ZwQuerySystemInformation,取指针_字节集,RtlMoveMemory3,RtlMoveMemory1,ZwDuplicateObject,ZwQueryInformationProcess,GetModuleHandle,创建系统快照,取模块信息,取下个模块信息,关闭系统快照,OpenProcess,VirtualAllocEx,WriteProcessMemory,VirtualFreeEx,GetProcAddress,CreateRemoteThread,WaitForSingleObject,GetExitCodeThread,SYSTEM_MODULE_INFORMATION,LoadLibraryEx,FreeLibrary,OpenSCManagerA,DeleteService,CreateServiceA,StartServiceA,CloseServiceHandle,OpenServiceA,CreateFileA,ControlService,DeviceIoControl,lstrcpyn,取当前进程伪句柄,调整特殊权限,查找权限值,打开进程标志,lstrcpyn1,lstrcpyn_数组_整数,RtlMoveMemory_IMAGE_EXPORT_DIRECTORY,RtlMoveMemory_整数,RtlMoveMemory_IMAGE_BASE_RELOCATION,RtlMoveMemory_数组_短整,RtlMoveMemory_IMAGE_DOS_HEADER,RtlMoveMemory_IMAGE_FILE_HEADER,RtlMoveMemory_IMAGE_OPTIONAL_HEADER,ZwCreateJobObject,ZwAssignProcessToJobObject,ZwTerminateJobObject,WTSEnumerateProcesses,CopyMemory_WTS_PROCESS_INFO,LookupAccountSid,取自进程ID,取线程信息,取下个线程信息,
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _超级列表框1_右键单击表项
| |
| |------ _枚举模块信息_被选择
| |
| |------ _普通法1_被选择
| |
| |------ _普通法2_被选择
| |
| |------ _结束进程普通法_被选择
| |
| |------ _结束进程清零法_被选择
| |
| |------ _结束进程强力法_被选择
| |
| |------ _枚举内核模块_被选择
| |
| |------ _超级列表框2_右键单击表项
| |
| |------ _SSDT_右键单击表项
| |
| |------ 加载驱动
| |
| |------ _刷新SSDT_被选择
| |
| |------ _恢复全部_被选择
| |
| |------ 取SSDT
| |
| |------ __启动窗口_可否被关闭
| |
| |
======功能程序集
| |
| |------ _模块_调用转向
| |
| |------ 枚举进程
| |
| |------ 枚举进程2
| |
| |------ 枚举线程
| |
| |------ 调用转向
| |
| |------ s7r5jr57d
| |
| |------ 取进程路径
| |
| |------ 取进程名
| |
| |------ 提升进程权限debug
| |
| |------ 进程结束
| |
| |------ 内存清零
| |
| |------ 取文件名
| |
| |------ 取路径
| |
| |------ 填充
| |
| |------ 枚举内核模块
| |
| |------ 强力打开进程
| |
| |------ 枚举模块
| |
| |------ UnHookDLL
| |
| |------ 提取错误代码
| |
| |------ 提取错误标题
| |
| |------ 提取错误信息
| |
| |------ TerminateProcess
| |
| |------ OpenProcess
| |
| |------ 提升进程权限
| |
| |
======进程模块窗口程序集
| |
| |------ _超级按钮1_被单击
| |
| |------ _进程模块_创建完毕
| |
| |------ 刷新模块信息
| |
| |------ _超级按钮2_被单击
| |
| |------ _超级列表框1_右键单击表项
| |
| |------ _卸载_被选择
| |
| |
======驱动操作类
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 加载驱动
| |
| |------ 卸载驱动
| |
| |------ 卸载驱动_
| |
| |------ CTL_CODE
| |
| |------ 十六到十
| |
| |
======EnumSSDT
| |
| |------ EnumSSDT
| |
| |------ FindKiServiceTable
| |
| |------ GetHeaders
| |
| |
======调用的Dll
| |
| |---[dll]------ _创建快照
| |
| |---[dll]------ _第一个
| |
| |---[dll]------ _下一个
| |
| |---[dll]------ _关闭句柄
| |
| |---[dll]------ 关闭内核对象
| |
| |---[dll]------ _第一个模块
| |
| |---[dll]------ RtlAdjustPrivilege
| |
| |---[dll]------ _打开进程
| |
| |---[dll]------ _终止进程
| |
| |---[dll]------ NtQuerySystemInformation
| |
| |---[dll]------ NtQuerySystemInformation1
| |
| |---[dll]------ LocalAlloc
| |
| |---[dll]------ CopyMemory_MODULES
| |
| |---[dll]------ LocalFree
| |
| |---[dll]------ ZwWriteVirtualMemory
| |
| |---[dll]------ ZwProtectVirtualMemory
| |
| |---[dll]------ ZwClose
| |
| |---[dll]------ ZwOpenProcess
| |
| |---[dll]------ ZwQuerySystemInformation
| |
| |---[dll]------ 取指针_字节集
| |
| |---[dll]------ RtlMoveMemory3
| |
| |---[dll]------ RtlMoveMemory1
| |
| |---[dll]------ ZwDuplicateObject
| |
| |---[dll]------ ZwQueryInformationProcess
| |
| |---[dll]------ GetModuleHandle
| |
| |---[dll]------ 创建系统快照
| |
| |---[dll]------ 取模块信息
| |
| |---[dll]------ 取下个模块信息
| |
| |---[dll]------ 关闭系统快照
| |
| |---[dll]------ OpenProcess
| |
| |---[dll]------ VirtualAllocEx
| |
| |---[dll]------ WriteProcessMemory
| |
| |---[dll]------ VirtualFreeEx
| |
| |---[dll]------ GetProcAddress
| |
| |---[dll]------ CreateRemoteThread
| |
| |---[dll]------ WaitForSingleObject
| |
| |---[dll]------ GetExitCodeThread
| |
| |---[dll]------ _释放DLL
| |
| |---[dll]------ SYSTEM_MODULE_INFORMATION
| |
| |---[dll]------ LoadLibraryEx
| |
| |---[dll]------ FreeLibrary
| |
| |---[dll]------ OpenSCManagerA
| |
| |---[dll]------ DeleteService
| |
| |---[dll]------ _DeviceIoControl
| |
| |---[dll]------ CreateServiceA
| |
| |---[dll]------ StartServiceA
| |
| |---[dll]------ CloseServiceHandle
| |
| |---[dll]------ OpenServiceA
| |
| |---[dll]------ CreateFileA
| |
| |---[dll]------ ControlService
| |
| |---[dll]------ DeviceIoControl
| |
| |---[dll]------ lstrcpyn
| |
| |---[dll]------ 取当前进程伪句柄
| |
| |---[dll]------ 调整特殊权限
| |
| |---[dll]------ 查找权限值
| |
| |---[dll]------ 打开进程标志
| |
| |---[dll]------ lstrcpyn1
| |
| |---[dll]------ lstrcpyn_数组_整数
| |
| |---[dll]------ RtlMoveMemory_IMAGE_EXPORT_DIRECTORY
| |
| |---[dll]------ RtlMoveMemory_整数
| |
| |---[dll]------ RtlMoveMemory_IMAGE_BASE_RELOCATION
| |
| |---[dll]------ RtlMoveMemory_数组_短整
| |
| |---[dll]------ RtlMoveMemory_IMAGE_DOS_HEADER
| |
| |---[dll]------ RtlMoveMemory_IMAGE_FILE_HEADER
| |
| |---[dll]------ RtlMoveMemory_IMAGE_OPTIONAL_HEADER
| |
| |---[dll]------ ZwCreateJobObject
| |
| |---[dll]------ ZwAssignProcessToJobObject
| |
| |---[dll]------ ZwTerminateJobObject
| |
| |---[dll]------ WTSEnumerateProcesses
| |
| |---[dll]------ CopyMemory_WTS_PROCESS_INFO
| |
| |---[dll]------ LookupAccountSid
| |
| |---[dll]------ _取库函数地址
| |
| |---[dll]------ _装载DLL
| |
| |---[dll]------ _取指针_字节集
| |
| |---[dll]------ _创建线程1
| |
| |---[dll]------ _等待对象信号
| |
| |---[dll]------ _取中止线程退出代码
| |
| |---[dll]------ 取自进程ID
| |
| |---[dll]------ 取线程信息
| |
| |---[dll]------ 取下个线程信息
调用的DLL命令:
.DLL命令 _创建快照, 整数型, , "CreateToolhelp32Snapshot"
.参数 falg, 整数型
.参数 id, 整数型
.DLL命令 _第一个, 整数型, , "Process32First"
.参数 h, 整数型
.参数 p, 进程信息
.DLL命令 _下一个, 整数型, , "Process32Next"
.参数 h, 整数型
.参数 p, 进程信息
.DLL命令 _关闭句柄, 整数型, , "CloseHandle"
.参数 对象句柄, 整数型
.DLL命令 关闭内核对象, 整数型, "kernel32.dll", "CloseHandle", , 关闭一个内核对象。其中包括文件、文件映射、进程、线程、security和同步对象等。涉及文件处理时,这个函数通常与vb的close命令相似。应尽可能的使用close,因为它支持vb的差错控制。注意这个函数使用的文件句柄与vb的文件编号是完全不同的 非零表示成功,零表示失败。会设置GetLastError
.参数 对象句柄, 整数型, , 欲关闭的一个对象的句柄;
.DLL命令 _第一个模块, 整数型, , "Module32First", , 第一个模块,查找模块
.参数 快照句柄, 整数型
.参数 模块信息, 模块信息型
.DLL命令 RtlAdjustPrivilege, 整数型, "ntdll.dll", "RtlAdjustPrivilege", , ntdll.dll
.参数 se_, 整数型
.参数 true_, 逻辑型
.参数 hprocess, 整数型
.参数 ret, 整数型, 传址
.DLL命令 _打开进程, 整数型, , "OpenProcess", , kernel32.dll
.参数 访问级别, 整数型, , 2035711完全访问
.参数 子进程继承, 整数型, , 0为子进程继承
.参数 进程ID, 整数型, , 要打开的进程标识
.DLL命令 _终止进程, 整数型, , "TerminateProcess"
.参数 id
.参数 a
.DLL命令 NtQuerySystemInformation, 整数型, "NTDLL.dll", "NtQuerySystemInformation"
.参数 SystemInformationClass, 整数型
.参数 pSystemInformation, 整数型
.参数 SystemInformationLength, 整数型
.参数 ReturnLength, 整数型, 传址
.DLL命令 NtQuerySystemInformation1, 整数型, "NTDLL.dll", "NtQuerySystemInformation"
.参数 SystemInformationClass, 整数型
.参数 pSystemInformation, 字节集
.参数 SystemInformationLength, 整数型
.参数 ReturnLength, 整数型, 传址
.DLL命令 LocalAlloc, 整数型, "kernel32", "LocalAlloc"
.参数 wFlags, 整数型
.参数 wBytes, 整数型
.DLL命令 CopyMemory_MODULES, , , "RtlMoveMemory"
.参数 pDst, MODULES
.参数 pSrc, 整数型
.参数 ByteLen, 整数型
.DLL命令 LocalFree, 整数型, "kernel32", "LocalFree"
.参数 hMem, 整数型
.DLL命令 ZwWriteVirtualMemory, 整数型, "NTDLL.DLL", "ZwWriteVirtualMemory"
.参数 ProcessHandle, 整数型
.参数 BaseAddress, 整数型
.参数 pBuffer, 字节集
.参数 NumberOfBytesToWrite, 整数型
.参数 NumberOfBytesWritten, 整数型, 传址
.DLL命令 ZwProtectVirtualMemory, 整数型, "NTDLL.DLL", "ZwProtectVirtualMemory"
.参数 ProcessHandle, 整数型
.参数 BaseAddress, 整数型
.参数 RegionSize, 整数型
.参数 NewProtect, 整数型
.参数 OldProtect, 整数型
.DLL命令 ZwClose, 整数型, "NTDLL.DLL", "ZwClose"
.参数 ObjectHandle, 整数型
.DLL命令 ZwOpenProcess, 整数型, "ntdll.dll", "ZwOpenProcess", 公开
.参数 hProcess, 整数型, 传址
.参数 DesiredAccess, 整数型
.参数 ObjectAttributes, OBJECT_ATTRIBUTES
.参数 ClientId, CLIENT_ID
.DLL命令 ZwQuerySystemInformation, 整数型, "ntdll.dll", "ZwQuerySystemInformation"
.参数 SystemInformationClass, 整数型, , 未知类型:SYSTEM_INFORMATION_CLASS。
.参数 SystemInformation, 字节集, , any
.参数 SystemInformationLength, 整数型
.参数 ReturnLength, 整数型, 传址
.DLL命令 取指针_字节集, 整数型, , "lstrcpyn", 公开, 常规API
.参数 欲取其指针, 字节集, 传址
.参数 欲取其指针, 字节集, 传址
.参数 保留, 整数型, , 0
.DLL命令 RtlMoveMemory3, 整数型, , "RtlMoveMemory", 公开, 常规API,从地址读一个整数
.参数 dest, 整数型, 传址
.参数 Source, 整数型
.参数 len, , , 4
.DLL命令 RtlMoveMemory1, 整数型, , "RtlMoveMemory", , 常规API
.参数 dest, SYSTEM_HANDLE_TABLE_ENTRY_INFO
.参数 Source, 整数型
.参数 len, , , 284
.DLL命令 ZwDuplicateObject, 整数型, "ntdll.dll", , 公开
.参数 SourceProcessHandle, 整数型
.参数 SourceHandle, 整数型
.参数 TargetProcessHandle, 整数型
.参数 TargetHandle, 整数型, 传址
.参数 DesiredAccess, 整数型
.参数 HandleAttributes, 整数型
.参数 Options, 整数型
.DLL命令 ZwQueryInformationProcess, 整数型, "ntdll.dll", "ZwQueryInformationProcess"
.参数 SystemInformationClass, 整数型, , 未知类型:SYSTEM_INFORMATION_CLASS。
.参数 dd, 整数型
.参数 SystemInformation, PROCESS_BASIC_INFORMATION, , any
.参数 SystemInformationLength, 整数型
.参数 ReturnLength, 整数型, 传址
.DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
.参数 lpModuleName, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.DLL命令 创建系统快照, 整数型, "kernel32.dll", "CreateToolhelp32Snapshot", , 返回快照后的句柄
.参数 快照标志, 整数型, , 进程=15,线程=4,DLL=8,堆=
.参数 参数, 整数型
.DLL命令 取模块信息, 整数型, "kernel32.dll", "Module32First"
.参数 进程句柄, 整数型
.参数 模块信息, 模块信息
.DLL命令 取下个模块信息, 整数型, "kernel32.dll", "Module32Next"
.参数 进程句柄, 整数型
.参数 模块信息, 模块信息
.DLL命令 关闭系统快照, 整数型, "kernel32.dll", "CloseHandle"
.参数 快照句柄, 整数型
.DLL命令 OpenProcess, 整数型, "kernel32", "OpenProcess", , 将句柄返回给过程对象
.参数 dwDesiredAccess, 整数型
.参数 bInheritHandle, 整数型
.参数 dwProcessId, 整数型
.DLL命令 VirtualAllocEx, 整数型, "kernel32.dll", "VirtualAllocEx"
.参数 hProcess, 整数型
.参数 lpAddress, 整数型
.参数 dwSize, 整数型
.参数 flAllocationType, 整数型
.参数 flProtect, 整数型
.DLL命令 WriteProcessMemory, 整数型, , "WriteProcessMemory"
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型
.参数 lpBuffer, 字节集
.参数 nSize, 整数型
.参数 lpNumberOfBytesWritten, 整数型, 传址
.DLL命令 VirtualFreeEx, 整数型
.参数 hProcess, 整数型
.参数 lpBuf, 整数型
.参数 dwSize, 整数型
.参数 dwFreeType, 整数型
.DLL命令 GetProcAddress, 整数型, "kernel32", "GetProcAddress", , 返回函数地址
.参数 hModule, 整数型
.参数 lpProcName, 文本型
.DLL命令 CreateRemoteThread, 整数型, "kernel32", "CreateRemoteThread", , 在另一进程中建立线索
.参数 hProcess, 整数型
.参数 lpThreadAttributes, SECURITY_ATTRIBUTES
.参数 dwStackSize, 整数型
.参数 lpStartAddress, 整数型
.参数 lpParameter, 整数型
.参数 dwCreationFlags, 整数型
.参数 lpThreadId, 整数型, 传址
.DLL命令 WaitForSingleObject, 整数型
.参数 hHandle, 整数型
.参数 dwMilliseconds, 整数型
.DLL命令 GetExitCodeThread, 整数型
.参数 Handle, 整数型
.参数 ret, 整数型, 传址
.DLL命令 _释放DLL, 逻辑型, , "FreeLibrary", 公开, kernel32.dll
.参数 模块句柄, 整数型
.DLL命令 SYSTEM_MODULE_INFORMATION, , , "RtlMoveMemory"
.参数 Destination, SYSTEM_MODULE_INFORMATION
.参数 Source, 整数型, , 缓冲区
.参数 Length, 整数型, , 尺寸
.DLL命令 LoadLibraryEx, 整数型, , "LoadLibraryExA"
.参数 lpFileName, 文本型
.参数 hFile, 整数型
.参数 dwFlags, 整数型
.DLL命令 FreeLibrary, 逻辑型
.参数 hModule, 整数型
.DLL命令 OpenSCManagerA, 整数型, "advapi32.dll", "OpenSCManagerA", , 打开SC管理服务_,建立服务首先应用此函数打开然后再用OpenServiceA打开服务获得服务控制管理器数据库的句柄
.参数 机器名称, 文本型, , lpMachineName用取本机名取得就是本机的名称指向需要打开的计算机名字符串,字符串以NULL结尾,如果参数指定为NULL,表示连接到本机上的SCM
.参数 数据库名, 文本型, , lpDatabaseName指向以NULL结尾的包含SCM数据库名称的字符串,字符串应该指定为"ServicesActive",如果参数指定为NULL,则默认打开"ServicesActive"
.参数 数据库, 整数型, , dwDesiredAccess指定访问SCM的权限,这个参数告诉SCM我们需要进行什么样的操作,常用的取值有三个:SC_MANAGER_CREATE_SERVICESC_MANAGER_CREATE_SERVICESC_MANAGER_ALL_ACCESS
.DLL命令 DeleteService, 逻辑型, "advapi32.dll", "DeleteService", , 删除服务,成功返回0失败返回非0
.参数 hService, 整数型, , OpenSCManager的数据库句柄
.DLL命令 _DeviceIoControl, 逻辑型, "kernel32.dll", "DeviceIoControl", , 设备操作_,对设备执行指定的操作
.参数 设备句柄, 整数型, , hDevice设备句柄
.参数 控制参数, 整数型, , dwIoControlCode带有 FSCTL_ 前缀的常数.参考设备控制选项的部分列表设备控制选项的部分列表——参考DeviceIoControl函数
.参数 参数一, 整数型, , lpInBuffer具体取决于dwIoControlCode参数.参考设备控制选项的部分列表
.参数 参数二, 整数型, , nInBufferSize输入缓冲区的长度
.参数 参数三, 整数型, , lpOutBuffer Anyany型根据实际需要修改 具体取决于dwIoControlCode参数.参考设备控制选项的部分列表
.参数 参数四, 整数型, , nOutBufferSize输出缓冲区的长度
.参数 缓冲区字节数, 整数型, 传址, lpBytesReturned实际装载到输出缓冲区的字节数量
.参数 OVERLAPPED结构地址, 整数型, , lpOverlappedOVERLAPPED这个结构用于重叠操作.针对同步操作请用ByVal As Long传递零值
.DLL命令 CreateServiceA, 整数型, "advapi32.dll", "CreateServiceA", , 创建服务,创建服务
.参数 hSCManager, 整数型, , SCM句柄OpenSCManager返回值
.参数 lpServiceName, 文本型, , 指向一个以0字符结尾的表示服务名称的字符串,字符串的最大长度是256个字符字符串的最大长度是256个字符,名称中不允许使用/或者\字符(因为这些字符会和注册表的路径表示方式冲突),这个值和注册表中的键名是相对应的
.参数 lpDisplayName, 文本型, , 指向一个以0字符结尾表示服务名称的字符串,这个名称是供用户界面程序识别函数时使用的,同样,它的最大长度也是256个字符。这个值和注册表中的DisplayName键的值是相对应的
.参数 dwDesiredAccess, 整数型, , 指定需要访问服务的操作可以有以下取值:SERVICE_ALL_ACCESS--可以进行所有操作SERVICE_START--允许调用StartService函数来启动服SERVICE_STOP--允许调用ControlService函数来停止服务DELETE--允许调用DeleteService函数来删除服务
.参数 dwServiceType, 整数型, , 服务的类型我们的教程中只用得到SERVICE_KERNEL_DRIVER,这个值和注册表中的Type键的值是相对应的
.参数 dwStartType, 整数型, , 表示在什么时候启动服务,如果我们需要手动启动驱动的话,那么使用SERVICE_DEMAND_START参数,如果驱动程序需要在系统启动的时候就被启动,那么使用SERVICE_AUTO_START参数,这个取值和注册表中的Start键的取值是相对应的
.参数 dwErrorControl, 整数型, , 表示当驱动初始化的时候出错该如何处理,取值SERVICE_ERROR_IGNORE表示忽略错误,取值SERVICE_ERROR_NORMAL表示将错误记录到系统日志中去,这个取值和注册表中的ErrorControl键值是相对应的
.参数 lpBinaryPathName, 文本型, , 指向以0结尾的表示驱动程序文件名的字符串,这个值和注册表中的ImagePath的键值是相对应的
.参数 lpLoadOrderGroup, 整数型, , 指向以0结尾的表示组名称的字符串,表示该驱动属于哪个组,既然我们的例子程序不属于任何组,那么这里就用NULL好了
.参数 lpdwTagId, 整数型, , 指向一个32位的缓冲区,用来接收驱动在lpLoadOrderGroup参数指定的组中的唯一的标识,我们的例子中不需要用到这个表示,所以参数指定为NULL
.参数 lpDependencies, 整数型, , 对于驱动程序来说,这个参数没什么用途,设置为NULL好了
.参数 lpServiceStartName, 整数型, , 指向一个以0结尾的表示帐号名称的字符串,用于指定服务允许在哪个帐号下运行,如果服务类型是SERVICE_KERNEL_DRIVER的话,该帐号就是系统装入服务的模块名称,我们在这里使用NULL,表示由默认的模块装入
.参数 lpPassword, 整数型, , 对于驱动程序来说,这个参数没什么用途,设置为NULL好了
.DLL命令 StartServiceA, 整数型, "advapi32.dll", "StartServiceA", , 开始启动系统服务,开始运行服务
.参数 服务句柄, 整数型, , CreateService返回的驱动的句柄
.参数 dwNumServiceArgs, 整数型, , 0
.参数 lpServiceArgVectors, 整数型, , 0
.DLL命令 CloseServiceHandle, 整数型, "advapi32.dll", "CloseServiceHandle", , 关闭SC服务管理句柄_,
.参数 SC对象句柄, 整数型, , 由OpenSCManagerA和CreateServiceA返回的句柄关闭时应关闭两个
.DLL命令 OpenServiceA, 整数型, "advapi32.dll", "OpenServiceA", , 打开服务,
.参数 hSCManager, 整数型, , 由CreateServiceA返回的句柄
.参数 lpServiceName, 文本型, , 服务名称
.参数 dwDesiredAccess, 整数型, , 983551指定需要访问服务的操作
.DLL命令 CreateFileA, 整数型, "kernel32.dll", "CreateFileA", , 创建文件_,这是一个全功能的例程可打开和创建文件、管道、邮槽、通信服务、设备以及控制台 ——返回值:如执行成功则返回文件句柄.INVALID_HANDLE_VALUE表示出错会设置GetLastError.即使函数成功但若文件存在且指定了CREATE_ALWAYS 或 OPEN_ALWAYSGetLastError也会设为ERROR_ALREADY_EXISTS 例子:查看例程API程序自杀
.参数 打开文件名, 文本型, , lpFileName要打开的文件的名字
.参数 访问权限, 整数型, , dwDesiredAccess如果为 GENERIC_READ 表示允许对设备进行读访问;如果为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);如果为零表示只允许获取与一个设备有关的信息
.参数 共享方式, 整数型, , dwShareMode
.参数 security特性, 整数型, , lpSecurityAttributes是指向SECURITY_ATTRIBUTES结构的指针,指定了目录的security属性,但要求文件系统支持如NTFS的格式。Windows 98不支持此属性,在函数调用时应设置为NULL
.参数 创建方式, 整数型, , dwCreationDispositiondwCreationDisposition Long下述常数之一:
.参数 文件属性, 整数型, , dwFlagsAndAttributesdwFlagsAndAttributes Long一个或多个下述常数
.参数 从文件复制文件属性, 整数型, , hTemplateFile如果不为零则指定一个文件句柄.新文件将从这个文件中复制扩展属性
.DLL命令 ControlService, 整数型, "advapi32.dll", "ControlService", , 停止系统服务_,用来停止系统服务
.参数 hService, 整数型, , 用 OpenService 返回的句柄
.参数 dwControl, 整数型, , 用于驱动程序的时候,这个参数总是设置为NULL
.参数 lpServiceStatus, SERVICE_STATUS, 传址, 同上,也为NULL
.DLL命令 DeviceIoControl, 整数型, "kernel32.dll", "DeviceIoControl", , 设备操作_,对设备执行指定的操作
.参数 设备句柄, 整数型, , hDevice设备句柄
.参数 控制参数, 整数型, , dwIoControlCode带有 FSCTL_ 前缀的常数.参考设备控制选项的部分列表设备控制选项的部分列表——参考DeviceIoControl函数
.参数 参数一, 整数型, , lpInBuffer具体取决于dwIoControlCode参数.参考设备控制选项的部分列表
.参数 参数二, 整数型, , nInBufferSize输入缓冲区的长度
.参数 参数三, , , lpOutBuffer Anyany型根据实际需要修改 具体取决于dwIoControlCode参数.参考设备控制选项的部分列表
.参数 参数四, 整数型, , nOutBufferSize输出缓冲区的长度
.参数 缓冲区字节数, 整数型, , lpBytesReturned实际装载到输出缓冲区的字节数量
.参数 OVERLAPPED结构地址, 重叠操作_, , lpOverlappedOVERLAPPED这个结构用于重叠操作.针对同步操作请用ByVal As Long传递零值
.DLL命令 lstrcpyn, 整数型, , "lstrcpynA"
.参数 lpString1, 整数型, 传址 数组
.参数 lpString2, 整数型, 传址 数组
.参数 iMaxLength, 整数型
.DLL命令 取当前进程伪句柄, 整数型, "kernel32.dll", "GetCurrentProcess"
.DLL命令 调整特殊权限, 逻辑型, "advapi32.dll", "AdjustTokenPrivileges"
.参数 权限句柄, 整数型
.参数 禁制所有特权, 整数型
.参数 新状态, TOKEN_PRIVILEGES, 传址
.参数 缓冲区长度, 整数型
.参数 前一状态, TOKEN_PRIVILEGES, 传址
.参数 返回值长度, 整数型, 传址
.DLL命令 查找权限值, 逻辑型, "advapi32.dll", "LookupPrivilegeValueA"
.参数 系统名称, 文本型
.参数 权限名称, 文本型
.参数 结构, LuID, 传址
.DLL命令 打开进程标志, 整数型, "advapi32.dll", "OpenProcessToken"
.参数 进程句柄, 整数型
.参数 类型, 整数型
.参数 进程标志句柄, 整数型, 传址
.DLL命令 lstrcpyn1, 整数型, , "lstrcpynA"
.参数 lpString1, 整数型, 传址
.参数 lpString2, 整数型, 传址
.参数 iMaxLength, 整数型
.DLL命令 lstrcpyn_数组_整数, 整数型, , "lstrcpynA"
.参数 lpString1, 整数型, 数组
.参数 lpString2, 整数型, 数组
.参数 iMaxLength, 整数型
.DLL命令 RtlMoveMemory_IMAGE_EXPORT_DIRECTORY, , , "RtlMoveMemory"
.参数 Destination, IMAGE_EXPORT_DIRECTORY
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 RtlMoveMemory_整数, , , "RtlMoveMemory"
.参数 Destination, 整数型, 传址
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 RtlMoveMemory_IMAGE_BASE_RELOCATION, , , "RtlMoveMemory"
.参数 Destination, IMAGE_BASE_RELOCATION
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 RtlMoveMemory_数组_短整, , , "RtlMoveMemory"
.参数 Destination, 短整数型, 数组
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 RtlMoveMemory_IMAGE_DOS_HEADER, , , "RtlMoveMemory"
.参数 Destination, IMAGE_DOS_HEADER
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 RtlMoveMemory_IMAGE_FILE_HEADER, , , "RtlMoveMemory"
.参数 Destination, IMAGE_FILE_HEADER
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 RtlMoveMemory_IMAGE_OPTIONAL_HEADER, , , "RtlMoveMemory"
.参数 Destination, IMAGE_OPTIONAL_HEADER
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 ZwCreateJobObject, 整数型, "ntdll.dll"
.参数 JobHandle, 整数型, 传址
.参数 DesiredAccess, 整数型
.参数 ObjectAttributes, OBJECT_ATTRIBUTES
.DLL命令 ZwAssignProcessToJobObject, 整数型, "ntdll.dll"
.参数 JobHandle, 整数型
.参数 ProcessHandle, 整数型
.DLL命令 ZwTerminateJobObject, 整数型, "ntdll.dll"
.参数 JobHandle, 整数型
.参数 ExitStatus, 整数型
.DLL命令 WTSEnumerateProcesses, 整数型, , "WTSEnumerateProcessesA", , wtsapi32.dll
.参数 hServer, 整数型
.参数 Reserved, 整数型
.参数 Version, 整数型
.参数 ppProcessInfo, 整数型, 传址
.参数 pCount, 整数型, 传址
.DLL命令 CopyMemory_WTS_PROCESS_INFO, , , "RtlMoveMemory", , kernel32.dll
.参数 Destination, v45wtcf, 传址, any
.参数 Source, 整数型, , any
.参数 Length, 整数型
.DLL命令 LookupAccountSid, 整数型, , "LookupAccountSidA", , advapi32.dll
.参数 lpSystemName, 文本型
.参数 SID, 整数型
.参数 name, 文本型
.参数 cbName, 整数型, 传址
.参数 ReferencedDomainName, 文本型
.参数 cbReferencedDomainName, 整数型, 传址
.参数 peUse, 整数型, 传址
.DLL命令 _取库函数地址, 整数型, , "GetProcAddress", 公开
.参数 hModule, 整数型
.参数 lpProcName, 文本型
.DLL命令 _装载DLL, 整数型, , "LoadLibraryA", 公开
.参数 lpLibFileName, 文本型
.DLL命令 _取指针_字节集, 整数型, , "lstrcpyn"
.参数 目的指针, 字节集, 传址
.参数 源指针, 字节集, 传址
.参数 复制长度, 整数型, , 0
.DLL命令 _创建线程1, 整数型, , "CreateThread"
.参数 lpThreadAttributes, 整数型
.参数 dwStackSize, 整数型
.参数 lpStartAddress, 整数型
.参数 lpParameter, 整数型
.参数 dwCreationFlags, 整数型
.参数 lpThreadId, 整数型, 传址
.DLL命令 _等待对象信号, 整数型, , "WaitForSingleObject"
.参数 hHandle, 整数型
.参数 dwMilliseconds, 整数型
.DLL命令 _取中止线程退出代码, 整数型, , "GetExitCodeThread"
.参数 hThread, 整数型
.参数 lpExitCode, 整数型, 传址
.DLL命令 取自进程ID, 整数型, "kernel32.dll", "GetCurrentProcessId", 公开
.DLL命令 取线程信息, 逻辑型, "kernel32.dll", "Thread32First"
.参数 进程ID, 整数型
.参数 线程结构, 线程结构, 传址
.DLL命令 取下个线程信息, 逻辑型, "kernel32.dll", "Thread32Next"
.参数 进程ID, 整数型
.参数 线程结构, 线程结构, 传址
原贴 [易语言首发]PCVX小程序解密 因为 我也不懂 就看了下这个 PC小程序解密.e 发出来不知道怎么用,所以 度娘一步步找答案得到 的 自行研究捉摸了下 仅供学习参考 1.打开 PC小程序解...
易语言模块基址获取源码,模块基址获取,GetModuleBaseAddress...
易语言流程控制编译原理源码,流程控制编译原理,是否汉字,读字符,是否运算符,是否逻辑运算符,指针回溯,跳过空格,跳过注释,代码块,取程序返回值,外部接口_代码块执行,外部接口_表达式计算,表达式计算,逻辑判断,文本到逻辑,函数调用,函数_位或,函数_测试,函数_信...
易语言搜索程序隐藏代码源码,搜索程序隐藏代码,枚举子程序...
易语言打鱼学习链表源码,打鱼学习链表,入栈,出栈,清空链表,取顶数据,取索引处值,取长度,取值处索引,插入,删除,倒置,是否为空,到八,入队,出队...
易语言脚本解析类源码,脚本解析类,子程序1,QEHash,创建进入许可证_,进入许可区_,退出许可区_,删除进入许可证_,启动线程_,销毁线程_,寻找字节集_,内存_申请,内存_释放,内存_尺寸,内存_读整数,内存_写整数,内存_复制,内存_写字节集,内存_写文本,内存_读字节集,...
易语言核心算术计算解析源码,核心算术计算解析,信息框3,信息框2...
易语言获取网页和密码例程源码,获取网页和密码例程,取文档对象,取浏览器文档对象_API,注册消息_API,发送消息_API,置鼠标捕获窗口_API,取消鼠标捕获窗口_API,取窗口类名_API,取座标窗口句柄_API,取光标位置_API...
易语言置入代码调用子程序办法源码,置入代码调用子程序办法,普通写法,置入写法...