DLL注入模块含源码
系统结构:注入DLL,卸载DLL,提取错误标题,提取错误信息,提取错误代码,UnHookDLL,OpenProcess,VirtualAllocEx,CloseHandle,WriteProcessMemory,VirtualFreeEx,GetModuleHandle,GetProcAddress,CreateRemoteThread,WaitForSingleObject,GetExitCodeThread,LoadLibraryEx,FreeLibrary,myDLLcall,myDLLcall2,注入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
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ myDLLcall
| |
| |------ myDLLcall2
======系统程序集
| |
| |------ _启动子程序
| |
| |------ 注入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命令 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, 整数型
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。