易语言简单多用注入源码
系统结构:MakeJmp,安装HOOK,卸载HOOK,MyMessageBoxA,API_OutputDebugString,API_GetProcAddress,API_GetModuleHandle,API_CopyMemory,API_VirtualProtect,API_WriteProcessMemory,API_MessageBox,注入目标进程,释放目标DLL,CallWindowProc,API_WaitForSingleObject,CloseHandle,API_GetModuleHandle,API_寻找顶级窗口,API_GetWindowThreadProcessId,API_GetProcAddress,API_CreateToolhelp32Snapshot,WriteProcessMemory,ReadProcessMemory,CreateRemoteThread,VirtualFreeEx,VirtualAllocEx,OpenProcess,FindWindow,GetWindowThreadProcessId,
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ MakeJmp
| |
| |------ 安装HOOK
| |
| |------ 卸载HOOK
| |
| |------ MyMessageBoxA
| |
| |
======调用的Dll
| |
| |---[dll]------ API_OutputDebugString
| |
| |---[dll]------ API_GetProcAddress
| |
| |---[dll]------ API_GetModuleHandle
| |
| |---[dll]------ API_CopyMemory
| |
| |---[dll]------ API_VirtualProtect
| |
| |---[dll]------ API_WriteProcessMemory
| |
| |---[dll]------ API_MessageBox
======窗口程序集1
| |
| |------ _按钮1_被单击
| |
| |------ 注入目标进程
| |
| |------ 释放目标DLL
| |
| |
======调用的Dll
| |
| |---[dll]------ CallWindowProc
| |
| |---[dll]------ API_WaitForSingleObject
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ API_GetModuleHandle
| |
| |---[dll]------ API_寻找顶级窗口
| |
| |---[dll]------ API_GetWindowThreadProcessId
| |
| |---[dll]------ API_GetProcAddress
| |
| |---[dll]------ API_CreateToolhelp32Snapshot
| |
| |---[dll]------ WriteProcessMemory
| |
| |---[dll]------ ReadProcessMemory
| |
| |---[dll]------ CreateRemoteThread
| |
| |---[dll]------ VirtualFreeEx
| |
| |---[dll]------ VirtualAllocEx
| |
| |---[dll]------ OpenProcess
| |
| |---[dll]------ FindWindow
| |
| |---[dll]------ GetWindowThreadProcessId
调用的DLL命令:
.DLL命令 API_OutputDebugString, , "kernel32", "OutputDebugStringA", , 向调试发送字符串
.参数 lpOutputString, 文本型
.DLL命令 API_GetProcAddress, 整数型, "kernel32", "GetProcAddress", , 返回函数地址
.参数 hModule, 整数型
.参数 lpProcName, 文本型
.DLL命令 API_GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
.参数 lpModuleName, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.DLL命令 API_CopyMemory, , "kernel32", "RtlMoveMemory"
.参数 pDest, 整数型
.参数 pSrc, 整数型
.参数 ByteLen, 整数型
.DLL命令 API_VirtualProtect, 整数型, "kernel32", "VirtualProtect", , 修改虚拟保护
.参数 lpAddress, 整数型
.参数 dwSize, 整数型
.参数 flNewProtect, 整数型
.参数 lpflOldProtect, 整数型, 传址
.DLL命令 API_WriteProcessMemory, 整数型, "kernel32", "WriteProcessMemory", , 在指定进程中写内存
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型
.参数 lpBuffer, 字节集
.参数 nSize, 整数型
.参数 lpNumberOfBytesWritten, 整数型
.DLL命令 API_MessageBox, 整数型, "user32", "MessageBoxA", , 建立消息框窗体
.参数 hwnd, 整数型
.参数 lpText, 文本型
.参数 lpCaption, 文本型
.参数 wType, 整数型
调用的DLL命令:
.DLL命令 CallWindowProc, 整数型, "user32", "CallWindowProcA"
.参数 lpPrevWndFunc, 整数型
.参数 hwnd, 整数型
.参数 Msg, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.DLL命令 API_WaitForSingleObject, 整数型, "kernel32", "WaitForSingleObject", , 监测一个对象
.参数 hHandle, 整数型
.参数 dwMilliseconds, 整数型
.DLL命令 CloseHandle, 整数型, "kernel32", "CloseHandle", , 关闭一个内核对象。其中包括文件、文件映射、进程、线程、security和同步对象等。涉及文件处理时,这个函数通常与vb的close命令相似。应尽可能的使用close,因为它支持vb的差错控制。注意这个函数使用的文件句柄与vb的文件编号是完全不同的 非零表示成功,零表示失败。会设置GetLastError
.参数 对象句柄, 整数型, , 欲关闭的一个对象的句柄;
.DLL命令 API_GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
.参数 lpModuleName, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.DLL命令 API_寻找顶级窗口, 整数型, "user32", "FindWindowA", , 寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题) 找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
.参数 窗口类名, 整数型, , 指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类
.参数 窗口文本, 文本型, , 指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题 示例Dim hw&, cnt&Dim rttitle As * 256hw& = FindWindow("ThunderRT5Main", vbNullString) ' ThunderRTMain under VB4cnt = GetWindowText(hw&, rttitle, 255)MsgBox Left$(rttitle, cnt), 0, "RTMain title";
.DLL命令 API_GetWindowThreadProcessId, 整数型, "user32", "GetWindowThreadProcessId", , ; 获取与指定窗口关联在一起的一个进程和线程标识符 拥有窗口的线程的标识符
.参数 hwnd, 整数型, , 指定一个变量,用于装载拥有那个窗口的一个进程的标识符
.参数 lpdwProcessId, 整数型, 传址, 指定窗口句柄;
.DLL命令 API_GetProcAddress, 整数型, "kernel32", "GetProcAddress", , 返回函数地址
.参数 hModule, 整数型
.参数 lpProcName, 文本型
.DLL命令 API_CreateToolhelp32Snapshot, 整数型, "KERNEL32.DLL", "CreateToolhelp32Snapshot"
.参数 dwFlags, 整数型
.参数 th32ProcessID, 整数型
.DLL命令 WriteProcessMemory, 整数型, "kernel32", "WriteProcessMemory", , 在指定进程中写内存
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型
.参数 lpBuffer, 文本型
.参数 nSize, 整数型
.参数 lpNumberOfBytesWritten, 整数型
.DLL命令 ReadProcessMemory, 整数型, "kernel32", "ReadProcessMemory", , 在进程中读内存
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型
.参数 lpBuffer, 整数型, 传址
.参数 nSize, 整数型
.参数 lpNumberOfBytesWritten, 整数型
.DLL命令 CreateRemoteThread, 整数型, "kernel32", "CreateRemoteThread", , 在另一进程中建立线索
.参数 hProcess, 整数型
.参数 lpThreadAttributes, 整数型
.参数 dwStackSize, 整数型
.参数 lpStartAddress, 整数型
.参数 lpParameter, 整数型
.参数 dwCreationFlags, 整数型
.参数 lpThreadId, 整数型
.DLL命令 VirtualFreeEx, 整数型, "kernel32.dll", "VirtualFreeEx"
.参数 hProcess, 整数型
.参数 lpAddress, 整数型
.参数 dwSize, 整数型, 传址
.参数 dwFreeType, 整数型
.DLL命令 VirtualAllocEx, 整数型, "kernel32.dll", "VirtualAllocEx"
.参数 hProcess, 整数型
.参数 lpAddress, 整数型
.参数 dwSize, 整数型, 传址
.参数 flAllocationType, 整数型
.参数 flProtect, 整数型
.DLL命令 OpenProcess, 整数型
.参数 dwDesiredAccess, 整数型
.参数 bInheritHandle, 逻辑型
.参数 dwProcessId, 整数型
.DLL命令 FindWindow, 整数型, "user32", "FindWindowA", , 寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题) 找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
.参数 窗口类名, 整数型, , 指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类
.参数 窗口文本, 文本型, , 指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题 示例Dim hw&, cnt&Dim rttitle As * 256hw& = FindWindow("ThunderRT5Main", vbNullString) ' ThunderRTMain under VB4cnt = GetWindowText(hw&, rttitle, 255)MsgBox Left$(rttitle, cnt), 0, "RTMain title";
.DLL命令 GetWindowThreadProcessId, 整数型, "user32", "GetWindowThreadProcessId", , ; 获取与指定窗口关联在一起的一个进程和线程标识符 拥有窗口的线程的标识符
.参数 hwnd, 整数型, , 指定一个变量,用于装载拥有那个窗口的一个进程的标识符
.参数 lpdwProcessId, 整数型, 传址, 指定窗口句柄;
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。