易语言注入DLL模块源码
系统结构:注入DLL,卸载DLL,提取错误标题,提取错误信息,提取错误代码,UnHookDLL,OpenProcess,VirtualAllocEx,CloseHandle,WriteProcessMemory,VirtualFreeEx,GetModuleHandle,GetProcAddress,CreateRemoteThread,WaitForSingleObject,GetExitCodeThread,LoadLibraryEx,FreeLibrary,push_常数,call_eax,push_eax,mov_eax_常数,ret,置代码,取文本型变量指针,取字节集型变量指针,注入DLL,GetCurrentProcessId,GetProcAddress,GetModuleHandle,OpenProcess,WriteProcessMemory,VirtualAllocEx,CreateRemoteThread,CloseHandle,CallWindowProcA,CallWindowProcA1,VirtualProtectEx,进程自动关闭,回调,API_安装系统定时器,API_取消定时器,TranslateMessage,DispatchMessage,GetMessage,句柄获得进程ID_DLL,注入DLL,卸载DLL,提取错误标题,提取错误信息,提取错误代码,UnHookDLL,OpenProcess,VirtualAllocEx,CloseHandle,WriteProcessMemory,VirtualFreeEx,GetModuleHandle,GetProcAddress,CreateRemoteThread,WaitForSingleObject,GetExitCodeThread,LoadLibraryEx,FreeLibrary,
======系统程序集
| |
| |------ _启动子程序
| |
| |------ 注入DLL
| |
| |------ 卸载DLL
| |
| |
======内部程序集
| |
| |------ 提取错误标题
| |
| |------ 提取错误信息
| |
| |------ 提取错误代码
| |
| |------ UnHookDLL
| |
| |
======调用的Dll
| |
| |---[dll]------ OpenProcess
| |
| |---[dll]------ VirtualAllocEx
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ WriteProcessMemory
| |
| |---[dll]------ VirtualFreeEx
| |
| |---[dll]------ GetModuleHandle
| |
| |---[dll]------ GetProcAddress
| |
| |---[dll]------ CreateRemoteThread
| |
| |---[dll]------ WaitForSingleObject
| |
| |---[dll]------ GetExitCodeThread
| |
| |---[dll]------ LoadLibraryEx
| |
| |---[dll]------ FreeLibrary
======窗口程序集1
| |
| |------ _按钮1_被单击
| |
| |
======程序集1
| |
| |------ push_常数
| |
| |------ _取代码
| |
| |------ call_eax
| |
| |------ push_eax
| |
| |------ mov_eax_常数
| |
| |------ ret
| |
| |------ 置代码
| |
| |------ 取文本型变量指针
| |
| |------ 取字节集型变量指针
| |
| |
======程序集2
| |
| |------ 注入DLL
| |
| |
======调用的Dll
| |
| |---[dll]------ GetCurrentProcessId
| |
| |---[dll]------ GetProcAddress
| |
| |---[dll]------ GetModuleHandle
| |
| |---[dll]------ OpenProcess
| |
| |---[dll]------ WriteProcessMemory
| |
| |---[dll]------ VirtualAllocEx
| |
| |---[dll]------ CreateRemoteThread
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ CallWindowProcA
| |
| |---[dll]------ CallWindowProcA1
| |
| |---[dll]------ VirtualProtectEx
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ 进程自动关闭
| |
| |------ 回调
| |
| |
======调用的Dll
| |
| |---[dll]------ API_安装系统定时器
| |
| |---[dll]------ API_取消定时器
| |
| |---[dll]------ TranslateMessage
| |
| |---[dll]------ DispatchMessage
| |
| |---[dll]------ GetMessage
| |
| |---[dll]------ 句柄获得进程ID_DLL
======系统程序集
| |
| |------ _启动子程序
| |
| |------ 注入DLL
| |
| |------ 卸载DLL
| |
| |
======内部程序集
| |
| |------ 提取错误标题
| |
| |------ 提取错误信息
| |
| |------ 提取错误代码
| |
| |------ UnHookDLL
| |
| |
======调用的Dll
| |
| |---[dll]------ OpenProcess
| |
| |---[dll]------ VirtualAllocEx
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ WriteProcessMemory
| |
| |---[dll]------ VirtualFreeEx
| |
| |---[dll]------ GetModuleHandle
| |
| |---[dll]------ GetProcAddress
| |
| |---[dll]------ CreateRemoteThread
| |
| |---[dll]------ WaitForSingleObject
| |
| |---[dll]------ GetExitCodeThread
| |
| |---[dll]------ LoadLibraryEx
| |
| |---[dll]------ FreeLibrary
======窗口程序集1
| |
| |------ _按钮1_被单击
| |
| |------ _按钮2_被单击
调用的DLL命令:
.DLL命令 OpenProcess, 整数型, "kernel32", "OpenProcess", , 将句柄返回给过程对象
.参数 dwDesiredAccess, 整数型
.参数 bInheritHandle, 整数型
.参数 dwProcessId, 整数型
.DLL命令 VirtualAllocEx, 整数型, "kernel32.dll", "VirtualAllocEx"
.参数 hProcess, 整数型
.参数 lpAddress, 整数型
.参数 dwSize, 整数型
.参数 flAllocationType, 整数型
.参数 flProtect, 整数型
.DLL命令 CloseHandle, 整数型
.参数 hObject, 整数型
.DLL命令 WriteProcessMemory, 整数型, , "WriteProcessMemory"
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型
.参数 lpBuffer, 字节集
.参数 nSize, 整数型
.参数 lpNumberOfBytesWritten, 整数型, 传址
.DLL命令 VirtualFreeEx, 整数型
.参数 hProcess, 整数型
.参数 lpBuf, 整数型
.参数 dwSize, 整数型
.参数 dwFreeType, 整数型
.DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
.参数 lpModuleName, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.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命令 LoadLibraryEx, 整数型, "kernel32.dll", "LoadLibraryExA"
.参数 lpLibFileName, 文本型, 传址
.参数 hFile, 整数型
.参数 dwFlags, 整数型
.DLL命令 FreeLibrary, 整数型, "kernel32.dll"
.参数 hModule, 整数型
调用的DLL命令:
.DLL命令 GetCurrentProcessId, 整数型, , , 公开
.DLL命令 GetProcAddress, 整数型, , "GetProcAddress", 公开
.参数 hinst, 整数型
.参数 函数过程名, 文本型
.DLL命令 GetModuleHandle, 整数型, , "GetModuleHandleA", 公开
.参数 lpModuleName, 文本型
.DLL命令 OpenProcess, 整数型, , , 公开
.参数 a, 整数型
.参数 b, 整数型
.参数 c, 整数型
.DLL命令 WriteProcessMemory, 整数型, , "WriteProcessMemory", 公开
.参数 要写进程的句柄, 整数型
.参数 写内存的起始地址, 整数型
.参数 写入数据的地址, 整数型
.参数 要写的字节数, 整数型
.参数 实际写入的子节数, 整数型, 传址
.DLL命令 VirtualAllocEx, 整数型, , , 公开
.参数 目标进程的句柄
.参数 分配的起始地址
.参数 分配空间的大小, , , byte
.参数 分配的类型
.参数 读写的保护模式
.DLL命令 CreateRemoteThread, 整数型, "kernel32", "CreateRemoteThread"
.参数 hProcess, 整数型
.参数 lpThreadAttributes, 整数型
.参数 dwStackSize, 整数型
.参数 lpStartAddress, 整数型
.参数 lpParameter, 整数型
.参数 dwCreationFlags, 整数型
.参数 lpThreadId, 整数型, 传址
.DLL命令 CloseHandle, 整数型, , , 公开
.参数 hObject, 整数型
.DLL命令 CallWindowProcA, 整数型, , "CallWindowProcA"
.参数 lpPrevWndFunc, 字节集
.参数 hwnd, 文本型
.参数 msg
.参数 wParam
.参数 iparam
.DLL命令 CallWindowProcA1, 整数型, , "CallWindowProcA"
.参数 lpPrevWndFunc, 字节集
.参数 hwnd, 字节集
.参数 msg
.参数 wParam
.参数 iparam
.DLL命令 VirtualProtectEx, 整数型, , "VirtualProtectEx", 公开
.参数 要修改内存的进程句柄
.参数 要修改内存的起始地址
.参数 修改内存的字节
.参数 修改后的内存属性
.参数 修改前的内存属性的地址, , 传址
调用的DLL命令:
.DLL命令 API_安装系统定时器, 整数型, "user32", "SetTimer", , 安装系统定时器
.参数 窗口句柄, 整数型
.参数 定时器ID, 整数型
.参数 时间间隔, 整数型, , 单位为毫秒
.参数 回调函数, 子程序指针
.DLL命令 API_取消定时器, 整数型, "user32", "KillTimer", , 中止定时器
.参数 窗口句柄, 整数型
.参数 定时器ID, 整数型
.DLL命令 TranslateMessage, 整数型, , "TranslateMessage"
.参数 msg, MSG
.DLL命令 DispatchMessage, 整数型, , "DispatchMessageA"
.参数 msg, MSG
.DLL命令 GetMessage, 逻辑型, , "GetMessageA", , 公开
.参数 lpMsg, MSG
.参数 hwnd, 整数型
.参数 wMsgFilterMin, 整数型
.参数 wMsgFilterMax, 整数型
.DLL命令 句柄获得进程ID_DLL, , "user32.dll", "GetWindowThreadProcessId", 公开, 窗口句柄如何获得进程ID?告诉我吧...
.参数 窗口句柄, 整数型
.参数 返回容器_进程ID, 整数型, 传址, ProcID 进程ID 容器
调用的DLL命令:
.DLL命令 OpenProcess, 整数型, "kernel32", "OpenProcess", , 将句柄返回给过程对象
.参数 dwDesiredAccess, 整数型
.参数 bInheritHandle, 整数型
.参数 dwProcessId, 整数型
.DLL命令 VirtualAllocEx, 整数型, "kernel32.dll", "VirtualAllocEx"
.参数 hProcess, 整数型
.参数 lpAddress, 整数型
.参数 dwSize, 整数型
.参数 flAllocationType, 整数型
.参数 flProtect, 整数型
.DLL命令 CloseHandle, 整数型
.参数 hObject, 整数型
.DLL命令 WriteProcessMemory, 整数型, , "WriteProcessMemory"
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型
.参数 lpBuffer, 字节集
.参数 nSize, 整数型
.参数 lpNumberOfBytesWritten, 整数型, 传址
.DLL命令 VirtualFreeEx, 整数型
.参数 hProcess, 整数型
.参数 lpBuf, 整数型
.参数 dwSize, 整数型
.参数 dwFreeType, 整数型
.DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
.参数 lpModuleName, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.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命令 LoadLibraryEx, 整数型, "kernel32.dll", "LoadLibraryExA"
.参数 lpLibFileName, 文本型, 传址
.参数 hFile, 整数型
.参数 dwFlags, 整数型
.DLL命令 FreeLibrary, 整数型, "kernel32.dll"
.参数 hModule, 整数型
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。