易语言使用指定线程执行子程序模块源码
系统结构:测试,新线程,子程序,线程执行子程序,OpenProcess,OpenThread,VirtualAllocEx,CloseHandle,SuspendThread,ResumeThread,GetThreadContext,SetThreadContext,GetProcAddress,GetModuleHandle,WriteProcessMemoryBin,GetCurrentThreadId,WaitForSingleObject,GetCurrentProcessId,CreateThread,
======程序集1
| |
| |------ _启动子程序
| |
| |------ 测试
| |
| |------ 新线程
| |
| |------ 子程序
| |
| |------ 线程执行子程序
| |
| |
======调用的Dll
| |
| |---[dll]------ OpenProcess
| |
| |---[dll]------ OpenThread
| |
| |---[dll]------ VirtualAllocEx
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ SuspendThread
| |
| |---[dll]------ ResumeThread
| |
| |---[dll]------ GetThreadContext
| |
| |---[dll]------ SetThreadContext
| |
| |---[dll]------ GetProcAddress
| |
| |---[dll]------ GetModuleHandle
| |
| |---[dll]------ WriteProcessMemoryBin
| |
| |---[dll]------ GetCurrentThreadId
| |
| |---[dll]------ WaitForSingleObject
| |
| |---[dll]------ GetCurrentProcessId
| |
| |---[dll]------ CreateThread
调用的DLL命令:
.DLL命令 OpenProcess, 整数型, "kernel32.dll", "OpenProcess", 公开, 将句柄返回给过程对象
.参数 进程对象, 整数型, , dwDesiredAccess
.参数 继承句柄, 整数型, , bInheritHandle
.参数 进程标识符, 整数型, , dwProcessId
.DLL命令 OpenThread, 整数型, , "OpenThread", 公开
.参数 打开方式, 整数型
.参数 继承, 整数型
.参数 线程ID, 整数型
.DLL命令 VirtualAllocEx, 整数型, , "VirtualAllocEx", 公开
.参数 hProcess, 整数型
.参数 lpAddress, 整数型
.参数 dwSize, 整数型
.参数 flAllocationType, 整数型
.参数 flProtect, 整数型
.DLL命令 CloseHandle, 逻辑型, "kernel32.dll", , 公开, 关闭对象
.参数 对象句柄, 整数型
.DLL命令 SuspendThread, 整数型, , , 公开
.参数 线程句柄, 整数型
.DLL命令 ResumeThread, 整数型, , , 公开
.参数 线程ID, 整数型
.DLL命令 GetThreadContext, 逻辑型, "KERNEL32.DLL", , 公开
.参数 线程句柄, 整数型
.参数 寄存器, 寄存器
.DLL命令 SetThreadContext, 逻辑型, , , 公开
.参数 线程句柄, 整数型
.参数 寄存器, 寄存器
.DLL命令 GetProcAddress, 整数型, , "GetProcAddress", 公开
.参数 hModule, 整数型
.参数 lpProcName, 文本型
.DLL命令 GetModuleHandle, 整数型, , "GetModuleHandleA", 公开
.参数 lpModuelName, 文本型
.DLL命令 WriteProcessMemoryBin, 逻辑型, "kernel32", "WriteProcessMemory", 公开, 在指定进程中写内存
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型
.参数 lpBuffer, 字节集, 传址
.参数 nSize, 整数型
.参数 lpNumberOfBytesWritten, 整数型, 传址
.DLL命令 GetCurrentThreadId, 整数型, "kernel32", "GetCurrentThreadId", 公开, 获取当前线程一个唯一的线程标识符 当前的线程标识符
.DLL命令 WaitForSingleObject, 整数型, "kernel32", "WaitForSingleObject", 公开, 监测一个对象
.参数 hHandle, 整数型
.参数 dwMilliseconds, 整数型
.DLL命令 GetCurrentProcessId, 整数型, "kernel32.dll", "GetCurrentProcessId", 公开
.DLL命令 CreateThread, 整数型, , "CreateThread", 公开, 创建线程生成线程成功,CreateThread函数返回新线程的句柄。否则返回NULL。线程执行完毕后自动退出(除非进入的是循环)。
.参数 lpThreadAttributes, 整数型, , 线程的security属性,缺省为0
.参数 dwStackSize, 整数型, , 线程的堆栈大小,为0时与进程相同
.参数 lpStartAddress, 子程序指针, , 线程函数的起始地址
.参数 lpParameter, 整数型, , 传递线程的上下文,可以传递一个整数型参数。
.参数 dwCreationFlags, 整数型, , 0:创建线程后立即启动,相反的是标志位CREATE_SUSPENDED,这样您需要稍后显示地让该线程运行(可设为-1)
.参数 lpThreadId, 整数型, 传址, 内核给新生成的线程分配的线程ID
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。