用易语言写一个CreateRemoteThread的DLL注入器


# 易语言CreateRemoteThread DLL注入器实现 下面是一个使用易语言实现的DLL注入器,采用CreateRemoteThread方式注入DLL到目标进程: ```e .版本 2 .程序集 DLL注入器 .程序集变量 进程ID, 整数型 .程序集变量 DLL路径, 文本型 .子程序 _启动子程序, 整数型 .局部变量 窗口句柄, 整数型 .局部变量 按钮结果, 整数型 信息框 ("DLL注入器 - 使用CreateRemoteThread方式", 0, "提示") ' 获取目标窗口句柄 窗口句柄 = 取窗口句柄 ("目标窗口", "") .如果真 (窗口句柄 = 0) 信息框 ("未找到目标窗口!", 0, "错误") 返回 (0) .如果真结束 ' 获取进程ID 进程ID = 窗口句柄取进程ID (窗口句柄) .如果真 (进程ID = 0) 信息框 ("获取进程ID失败!", 0, "错误") 返回 (0) .如果真结束 ' 选择DLL文件 DLL路径 = 通用对话框_打开文件 ("选择要注入的DLL文件", "动态链接库 (*.dll)|*.dll", , ) .如果真 (DLL路径 = "") 信息框 ("未选择DLL文件!", 0, "错误") 返回 (0) .如果真结束 ' 确认注入 按钮结果 = 信息框 ("确定要注入DLL到进程ID: " + 到文本 (进程ID) + " 吗?", #是否钮, "确认") .如果真 (按钮结果 = #否钮) 返回 (0) .如果真结束 ' 执行注入 .如果 (注入DLL (进程ID, DLL路径)) 信息框 ("DLL注入成功!", 0, "成功") .否则 信息框 ("DLL注入失败!", 0, "失败") .如果结束 返回 (0) .子程序 注入DLL, 逻辑型 .参数 目标进程ID, 整数型 .参数 DLL路径, 文本型 .局部变量 进程句柄, 整数型 .局部变量 内存地址, 整数型 .局部变量 写入长度, 整数型 .局部变量 线程ID, 整数型 .局部变量 LoadLibrary地址, 整数型 .局部变量 远程线程句柄, 整数型 .局部变量 结果, 逻辑型 结果 = 假 ' 打开目标进程 进程句柄 = OpenProcess (#PROCESS_ALL_ACCESS, 假, 目标进程ID) .如果真 (进程句柄 = 0) 返回 (假) .如果真结束 ' 在目标进程中分配内存 内存地址 = VirtualAllocEx (进程句柄, 0, 取文本长度 (DLL路径) + 1, #MEM_COMMIT, #PAGE_READWRITE) .如果真 (内存地址 = 0) CloseHandle (进程句柄) 返回 (假) .如果真结束 ' 写入DLL路径到目标进程 写入长度 = WriteProcessMemory (进程句柄, 内存地址, DLL路径, 取文本长度 (DLL路径) + 1, 0) .如果真 (写入长度 = 0) VirtualFreeEx (进程句柄, 内存地址, 0, #MEM_RELEASE) CloseHandle (进程句柄) 返回 (假) .如果真结束 ' 获取LoadLibraryA函数地址 LoadLibrary地址 = GetProcAddress (GetModuleHandle ("kernel32.dll"), "LoadLibraryA") .如果真 (LoadLibrary地址 = 0) VirtualFreeEx (进程句柄, 内存地址, 0, #MEM_RELEASE) CloseHandle (进程句柄) 返回 (假) .如果真结束 ' 创建远程线程执行LoadLibrary 远程线程句柄 = CreateRemoteThread (进程句柄, 0, 0, LoadLibrary地址, 内存地址, 0, 线程ID) .如果真 (远程线程句柄 = 0) VirtualFreeEx (进程句柄, 内存地址, 0, #MEM_RELEASE) CloseHandle (进程句柄) 返回 (假) .如果真结束 ' 等待线程执行完成 WaitForSingleObject (远程线程句柄, #INFINITE) ' 清理资源 VirtualFreeEx (进程句柄, 内存地址, 0, #MEM_RELEASE) CloseHandle (远程线程句柄) CloseHandle (进程句柄) 返回 (真) ``` ## 使用说明 1. 代码使用了Windows API函数实现DLL注入 2. 需要提供目标窗口来查找目标进程 3. 需要选择要注入的DLL文件路径 4. 注入前会确认目标进程ID和DLL路径 ## 注意事项 1. 代码中使用了`#PROCESS_ALL_ACCESS`权限,可能需要管理员权限才能成功注入某些进程 2. 注入的DLL必须是32位的,因为易语言编译的程序是32位的 3. 注入成功后,目标进程会加载指定的DLL并执行DLL的入口函数 4. 某些安全软件可能会拦截此类注入行为 ## 额外需要注意的逻辑点 1. 注入前应检查DLL路径是否存在,避免写入无效路径 2. 应考虑添加错误代码获取功能,便于调试API调用失败原因 3. 对于64位目标进程,需要使用64位注入器,易语言无法直接实现 [2025-07-29 23:44:37 | AI写代码神器 | 1221点数解答]
- .版本 2 .支持库 iext .支持库 spec .支持库 RegEx .支持库 EThread .支持库 DeelxRegEx .程序集 窗口程序集_启动窗口 .程序集变量 线程池, 鱼刺类_线程池 .程序集变量 许可证, 线程许可证 .程序集变量 采集句柄, 整数型 .程序集变量 检测句柄, 整数型 .程序集变量 线程数, 整数型 .子程序 __启动窗口_创建完毕 写到文件 (取运行目录 () + “/SkinH_EL.dll”, #图片3) 置文件属性 (取运行目录 () + “/SkinH_EL.dll”, 2) Skin_初始化 (取运行目录 () + “/SkinH_EL.dll”) Skin_加载_从资源 (#图片1) ' www.2fzb.biz/www.mgpan1.com 组合框1.现行选中项 = 0 ' www.2fzb.biz/www.mgpan1.com .子程序 _按钮1_被单击 .局部变量 i, 整数型 .局部变量 ss, 文本型 .局部变量 aa, 文本型 .如果真 (单选框1.选中 = 真) 线程_启动 (&接口1) .如果(175点数解答 | 2025-01-21 23:31:57)177
- 一个 5×6 的迷宫样例如下: 要求给出从起点(1,1)到终点(3,4)的路径。 为了处理方便,保证最外圈全都为障碍物。 扩展到一般情况,一个 m×n 的迷宫,要求输出从起点(1,1)到终点(m-2,n-2)的路径。 测试实例保证路径是唯一的。 该题要求自行设计一个栈来做。如果设计的是顺序栈,则保证栈的大小不超过 200 个元素。 输入 第一行为两个整数 m 和 n,表示 m×n 的迷宫。 接下来有 m 行,每行有 n 个数(n 个数之间用空格间隔,值 = 0 表示可以通行,值 = 1 表示为障碍物) 输出 输出从起点到终点的路径,每个坐标占一行,坐标间的行号和列号用一个空格间隔。具体格式可参考样例。c++ 源代码(732点数解答 | 2024-11-03 02:34:53)348
- 用 易语言 语言,帮忙写一个 守护自身 的程序例子,就是打开程序 这个程序会打开一个 守护程序.exe 这个守护程序是用易语言的 windows控制台窗口 写的 然后被守护的程序会发送 一个 本身的 运行信息过去 然后守护程序就开始进行守护,切记 守护程序 和 被守护程序 都是需要你写出来给我(1798点数解答 | 2025-04-09 23:10:04)178
- 用 易语言 语言,帮忙写一个 守护自身 的程序例子,就是打开程序 这个程序会打开一个 守护程序.exe 这个守护程序是用易语言的 windows控制台窗口 写的 然后被守护的程序会发送 一个 本身的 运行信息过去 然后守护程序就开始进行守护,切记 守护程序 和 被守护程序 都是需要你写出来给我(1121点数解答 | 2025-04-09 23:11:00)152
- 用 易语言 语言,帮忙写一个 守护自身 的程序例子,就是打开程序 这个程序会打开一个 守护程序.exe 这个守护程序是用易语言的 windows控制台窗口 写的 然后被守护的程序会发送 一个 本身的 运行信息过去 然后守护程序就开始进行守护,切记 守护程序 和 被守护程序 都是需要你写出来给我(1863点数解答 | 2025-04-09 23:12:27)143
- 用 易语言 语言,帮忙写一个 守护自身 的程序例子,就是打开程序 这个程序会打开一个 守护程序.exe 这个守护程序是用易语言的 windows控制台窗口 写的 然后被守护的程序会发送 一个 本身的 运行信息过去 然后守护程序就开始进行守护,切记 守护程序 和 被守护程序 都是需要你写出来给我(1251点数解答 | 2025-04-09 23:13:27)161
- 用 易语言 语言,帮忙写一个 守护自身 的程序例子,就是打开程序 这个程序会打开一个 守护程序.exe 这个守护程序是用易语言的 windows控制台窗口 写的 然后被守护的程序会发送 一个 本身的 运行信息过去 然后守护程序就开始进行守护,切记 守护程序 和 被守护程序 都是需要你写出来给我(1163点数解答 | 2025-04-09 23:14:23)146
- 用 易语言 语言,帮忙写一个 守护自身 的程序例子,就是打开程序 这个程序会打开一个 守护程序.exe 这个守护程序是用易语言的 windows控制台窗口 写的 然后被守护的程序会发送 一个 本身的 运行信息过去 然后守护程序就开始进行守护,切记 守护程序 和 被守护程序 都是需要你写出来给我(1748点数解答 | 2025-04-09 23:15:44)146
- 用 易语言 语言,帮忙写一个 守护自身 的程序例子,就是打开程序 这个程序会打开一个 守护程序.exe 这个守护程序是用易语言的 windows控制台窗口 写的 然后被守护的程序会发送 一个 本身的 运行信息过去 然后守护程序就开始进行守护,切记 守护程序 和 被守护程序 都是需要你写出来给我(2421点数解答 | 2025-04-09 23:17:37)165
- 用 易语言 语言,帮忙写一个 守护自身 的程序例子,就是打开程序 这个程序会打开一个 守护程序.exe 这个守护程序是用易语言的 windows控制台窗口 写的 然后被守护的程序会发送 一个 本身的 运行信息过去 然后守护程序就开始进行守护,切记 守护程序 和 被守护程序 都是需要你写出来给我(1218点数解答 | 2025-04-09 23:18:36)146
- 用 易语言 语言,帮忙写一个 守护自身 的程序例子,就是打开程序 这个程序会打开一个 守护程序.exe 这个守护程序是用易语言的 windows控制台窗口 写的 然后被守护的程序会发送 一个 本身的 运行信息过去 然后守护程序就开始进行守护,切记 守护程序 和 被守护程序 都是需要你写出来给我(1388点数解答 | 2025-04-09 23:19:42)139
- 用 易语言 语言,帮忙写一个 守护自身 的程序例子,就是打开程序 这个程序会打开一个 守护程序.exe 这个守护程序是用易语言的 windows控制台窗口 写的 然后被守护的程序会发送 一个 本身的 运行信息过去 然后守护程序就开始进行守护,切记 守护程序 和 被守护程序 都是需要你写出来给我(1674点数解答 | 2025-04-09 23:21:01)125