易语言创建进程载入DLL模块源码
系统结构:进程_创建进程载入DLL,操作_取路径目录,进程_恢复进程,操作_jmp地址取机器码,线程_取线程信息,操作_取API地址,操作_取函数入口,内存_读整数内存,内存_读短整数内存,内存_读字节内存,内存_读小数内存,内存_读文本内存,内存_读字节集内存,内存_写整数内存,内存_写字节集内存,内存_写文本内存,内存_写小数内存,内存_申请内存,内存_申请文本内存,内存_申请字节集内存,内存_释放内存,内存_修改虚拟保护,内存_修改进程虚拟保护,进程恢复_,创建进程_,打开线程_,ZwQueryInformationThread,GetMappedFileName,打开进程_,CloseHandle,读整数内存_,读字节集内存_,VirtualProtectEx,VirtualProtect,VirtualAllocEx,VirtualFreeEx,写整数内存_,写文本内存_,写字节集内存_,读文本内存_,LoadLibraryExA,GetProcAddress,FreeLibrary,
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ 进程_创建进程载入DLL
| |
| |------ 操作_取路径目录
| |
| |------ 进程_恢复进程
| |
| |------ 操作_jmp地址取机器码
| |
| |------ 线程_取线程信息
| |
| |------ 操作_取API地址
| |
| |------ 操作_取函数入口
| |
| |
======内存
| |
| |------ 内存_读整数内存
| |
| |------ 内存_读短整数内存
| |
| |------ 内存_读字节内存
| |
| |------ 内存_读小数内存
| |
| |------ 内存_读文本内存
| |
| |------ 内存_读字节集内存
| |
| |------ 内存_写整数内存
| |
| |------ 内存_写字节集内存
| |
| |------ 内存_写文本内存
| |
| |------ 内存_写小数内存
| |
| |------ 内存_申请内存
| |
| |------ 内存_申请文本内存
| |
| |------ 内存_申请字节集内存
| |
| |------ 内存_释放内存
| |
| |------ 内存_修改虚拟保护
| |
| |------ 内存_修改进程虚拟保护
| |
| |
======调用的Dll
| |
| |---[dll]------ 进程恢复_
| |
| |---[dll]------ 创建进程_
| |
| |---[dll]------ 打开线程_
| |
| |---[dll]------ ZwQueryInformationThread
| |
| |---[dll]------ GetMappedFileName
| |
| |---[dll]------ 打开进程_
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ 读整数内存_
| |
| |---[dll]------ 读字节集内存_
| |
| |---[dll]------ VirtualProtectEx
| |
| |---[dll]------ VirtualProtect
| |
| |---[dll]------ VirtualAllocEx
| |
| |---[dll]------ VirtualFreeEx
| |
| |---[dll]------ 写整数内存_
| |
| |---[dll]------ 写文本内存_
| |
| |---[dll]------ 写字节集内存_
| |
| |---[dll]------ 读文本内存_
| |
| |---[dll]------ LoadLibraryExA
| |
| |---[dll]------ GetProcAddress
| |
| |---[dll]------ FreeLibrary
调用的DLL命令:
.DLL命令 进程恢复_, , "NTDLL.DLL", "ZwResumeProcess", , 恢复
.参数 进程句柄, 整数型
.DLL命令 创建进程_, 整数型, "kernel32.dll", "CreateProcessA"
.参数 要执行的程序名, 文本型, , lpApplicationName,参见相关帮助
.参数 要执行的命令行, 文本型, , lpCommandLine,参见相关帮助
.参数 security特性参数1, 整数型, , lpProcessAttributes,参见相关帮助
.参数 security特性参数2, 整数型, , lpThreadAttributes,参见相关帮助
.参数 允许新进程继承当前进程的句柄, 整数型, , bInheritHandles,参见相关帮助
.参数 参数1, 整数型, , dwCreationFlags,赋0即可
.参数 环境指针, 整数型, , lpEnvironment,赋0即可
.参数 新进程当前目录路径, 文本型, , lpCurrentDriectory,参见相关帮助
.参数 创建进程时附加信息, 进程启动信息_, , lpStartupInfo,创建进程时附加信息
.参数 新进程的进程和线程标识符, 进程结构, , lpProcessInformation,参见相关帮助
.DLL命令 打开线程_, 整数型, "kernel32.dll", "OpenThread"
.参数 dwDesiredAccess, 整数型
.参数 bInheritHandle, 整数型
.参数 dwThreadId, 整数型
.DLL命令 ZwQueryInformationThread, 整数型, "ntdll.dll", "ZwQueryInformationThread"
.参数 ThreadHandle, 整数型
.参数 ThreadInformationClass, 整数型
.参数 ThreadInformation, 字节集, 传址
.参数 ThreadInformationLength, 整数型
.参数 ReturnLength, 整数型, 传址
.DLL命令 GetMappedFileName, 整数型, "psapi.dll", "GetMappedFileNameA"
.参数 hProcess, 整数型
.参数 lpv, 整数型
.参数 lpFilename, 文本型
.参数 nSize, 整数型
.DLL命令 打开进程_, 整数型, "kernel32.dll", "OpenProcess", , 将句柄返回给过程对象
.参数 进程对象, 整数型, , dwDesiredAccess
.参数 继承句柄, 整数型, , bInheritHandle
.参数 进程标识符, 整数型, , dwProcessId
.DLL命令 CloseHandle, 整数型, "kernel32", "CloseHandle", , 关闭一个内核对象。其中包括文件、文件映射、进程、线程、security和同步对象等。涉及文件处理时,这个函数通常与vb的close命令相似。应尽可能的使用close,因为它支持vb的差错控制。注意这个函数使用的文件句柄与vb的文件编号是完全不同的 非零表示成功,零表示失败。会设置GetLastError
.参数 对象句柄, 整数型, , 欲关闭的一个对象的句柄;
.DLL命令 读整数内存_, 整数型, "kernel32", "ReadProcessMemory", , 在进程中读内存
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型, , 内存地址
.参数 lpBuffer, 整数型, 传址, 数据指针
.参数 nSize, 整数型, , 长度
.参数 lpNumberOfBytesWritten, 整数型, , 实际写出长度
.DLL命令 读字节集内存_, 整数型, "kernel32", "ReadProcessMemory", , 在进程中读内存
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型, , 内存地址
.参数 lpBuffer, 字节集, 传址, 数据指针
.参数 nSize, 整数型, , 长度
.参数 lpNumberOfBytesWritten, 整数型, , 实际写出长度
.DLL命令 VirtualProtectEx, 整数型, "kernel32", "VirtualProtectEx", , 修改虚拟保护
.参数 hProcess, 整数型
.参数 lpAddress, 整数型
.参数 dwSize, 整数型
.参数 flNewProtect, 整数型
.参数 lpflOldProtect, 整数型
.DLL命令 VirtualProtect, 逻辑型, "kernel32.dll", "VirtualProtect"
.参数 lpAddress, 整数型
.参数 dwSize, 整数型
.参数 flNewProtect, 整数型
.参数 lpflOldProtect, 整数型, 传址
.DLL命令 VirtualAllocEx, 整数型, "kernel32.dll", "VirtualAllocEx", , 申请内存
.参数 hProcess, 整数型, , 进程句柄
.参数 lpAddress, 整数型, , 地址 可空
.参数 dwSize, 字节型, , 分配长度
.参数 flAllocationType, 整数型, , 分配的内存类型 物理内存[0x1000(4096)] 虚拟内存[0x2000(8192)]
.参数 flProtect, 整数型, , 保护类型 一般写64
.DLL命令 VirtualFreeEx, 整数型, "kernel32.dll", "VirtualFreeEx", , 释放内存
.参数 hProcess, 整数型, , 进程句柄
.参数 lpAddress, 整数型, , 被释放的地址
.参数 dwSize, 字节型, , 被释放的长度
.参数 dwFreeType, 整数型, , 释放方式[0x4000(被释放的地址)]如果长度为0释放方式为[0x8000(32768)]
.DLL命令 写整数内存_, 整数型, "kernel32.dll", "WriteProcessMemory", , 在指定进程中写内存
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型, , 内存地址
.参数 lpBuffer, 整数型, 传址, 数据指针
.参数 nSize, 整数型, , 长度
.参数 lpNumberOfBytesWritten, 整数型, , 实际写出长度
.DLL命令 写文本内存_, 整数型, "kernel32", "WriteProcessMemory", , 在进程中读内存
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型, , 内存地址
.参数 lpBuffer, 文本型, 传址, 数据指针
.参数 nSize, 整数型, , 长度
.参数 lpNumberOfBytesWritten, 整数型, , 实际写出长度
.DLL命令 写字节集内存_, 整数型, "kernel32", "WriteProcessMemory", , 在进程中读内存
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型, , 内存地址
.参数 lpBuffer, 字节集, 传址, 数据指针
.参数 nSize, 整数型, , 长度
.参数 lpNumberOfBytesWritten, 整数型, , 实际写出长度
.DLL命令 读文本内存_, 整数型, "kernel32", "ReadProcessMemory", , 在进程中读内存
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型, , 内存地址
.参数 lpBuffer, 文本型, 传址, 数据指针
.参数 nSize, 整数型, , 长度
.参数 lpNumberOfBytesWritten, 整数型, , 实际写出长度
.DLL命令 LoadLibraryExA, 整数型, "kernel32.dll", "LoadLibraryExA", 公开, 装载指定的动态链接库,并为当前进程把它映射到地址空间。一旦载入,就可以访问库内保存的资源 成功则返回库模块的句柄,零表示失败。会设置GetLastError
.参数 动态链接库名称, 文本型, , 指定要载入的动态链接库的名称。采用与CreateProcess函数的lpCommandLine参数指定的同样的搜索顺序
.参数 常数值, 整数型, , 未用,设为零
.参数 常数组合, 整数型, , 指定下述常数的一个或多个DONT_RESOLVE_DLL_REFERENCES:不对DLL进行初始化,仅用于NTLOAD_LIBRARY_AS_DATAFILE:不准备DLL执行。如装载一个DLL只是为了访问它的资源,就可以改善一部分性能LOAD_WITH_ALTERED_SEARCH_PATH:指定搜索的路径;
.DLL命令 GetProcAddress, 整数型, "kernel32.dll", "GetProcAddress", 公开, 取进程路径
.参数 模块句柄, 整数型, , hModule
.参数 进程名称, 文本型, , lpProcName
.DLL命令 FreeLibrary, 整数型, "kernel32.dll", "FreeLibrary", 公开, 释放指定的动态链接库,它们早先是用LoadLibrary ;API函数装载的 非零表示成功,零表示失败。会设置GetLastError
.参数 库句柄, 整数型, , hLibModule,要释放的一个库句柄,在VB里使用只能用这个函数释放那些由应用程序明确装载的DLL。对LoadLibrary的每一次调用都应该有一个对应的FreeLibrary调用;
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言两个文件内存中通讯源码,子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错...
易语言易模块管理器Include目录源码,CopyTo_CreateProcessDebugInfo,CopyTo_CreateThreadDebugInfo,CopyTo_ExitThreadDebugInfo,CopyTo_ExitProcessDebugInfo,CopyTo_LoadDllDebugInfo,CopyTo_UnloadDllDebugInfo,CopyTo_ExceptionDebugInfo,Copy...
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错误信息,读入字节集,读入2M字节集,清除文件缓冲区,读入文本,写出文本,写文本行,读入一行,插入字节集,取文件号...
初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...