易语言启动WAR3对决源码
系统结构:子程序1,远程注入,安装APIHOOK,取原始数据地址,卸载APIHOOK,继续拦截,暂停拦截,CreateProcess,VirtualAllocEx,WriteprocessMemory_byte,GetModuleHandle,GetProcAddress,CreateRemoteThread,WaitForSingleObject,GetExitCodeThread,VirtualFreeEx,CloseHandle,LoadLibraryEx,bind,connect,htons,LoadLibraryA,FreeLibrary,VirtualProtect,取字节集变量数据地址,
======窗口程序集1
| |
| |------ _服务器1_客户进入
| |
| |------ _服务器1_客户离开
| |
| |------ __启动窗口_创建完毕
| |
| |------ _服务器1_数据到达
======窗口程序集1
| |
| |------ _按钮1_被单击
| |
| |------ _按钮2_被单击
| |
| |------ _客户1_数据到达
| |
| |------ _数据报1_数据到达
| |
| |------ _数据报2_数据到达
| |
| |------ _数据报3_数据到达
| |
| |------ _数据报4_数据到达
| |
| |------ _数据报5_数据到达
| |
| |------ _服务器1_客户进入
| |
| |------ _服务器2_客户进入
| |
| |------ _服务器3_客户进入
| |
| |------ _服务器4_客户进入
| |
| |------ _服务器5_客户进入
| |
| |------ _客户2_数据到达
| |
| |------ _客户3_数据到达
| |
| |------ _客户4_数据到达
| |
| |------ _客户5_数据到达
| |
| |------ _客户6_数据到达
| |
| |------ _服务器1_数据到达
| |
| |------ _服务器2_数据到达
| |
| |------ _服务器3_数据到达
| |
| |------ _服务器4_数据到达
| |
| |------ _服务器5_数据到达
| |
| |------ _服务器1_客户离开
| |
| |------ _服务器2_客户离开
| |
| |------ _服务器3_客户离开
| |
| |------ _服务器4_客户离开
| |
| |------ _服务器5_客户离开
| |
| |------ _客户2_连接断开
| |
| |------ _客户3_连接断开
| |
| |------ _客户4_连接断开
| |
| |------ _客户5_连接断开
| |
| |------ _客户6_连接断开
| |
| |------ __启动窗口_创建完毕
| |
| |------ 子程序1
| |
| |------ _客户1_连接断开
| |
| |------ _按钮3_被单击
| |
| |------ 远程注入
| |
| |
======APIHOOK
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 安装APIHOOK
| |
| |------ 取原始数据地址
| |
| |------ 卸载APIHOOK
| |
| |------ 继续拦截
| |
| |------ 暂停拦截
| |
| |
======调用的Dll
| |
| |---[dll]------ CreateProcess
| |
| |---[dll]------ VirtualAllocEx
| |
| |---[dll]------ WriteprocessMemory_byte
| |
| |---[dll]------ GetModuleHandle
| |
| |---[dll]------ GetProcAddress
| |
| |---[dll]------ CreateRemoteThread
| |
| |---[dll]------ WaitForSingleObject
| |
| |---[dll]------ GetExitCodeThread
| |
| |---[dll]------ VirtualFreeEx
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ LoadLibraryEx
| |
| |---[dll]------ bind
| |
| |---[dll]------ connect
| |
| |---[dll]------ htons
| |
| |---[dll]------ LoadLibraryA
| |
| |---[dll]------ FreeLibrary
| |
| |---[dll]------ VirtualProtect
| |
| |---[dll]------ 取字节集变量数据地址
调用的DLL命令:
.DLL命令 CreateProcess, 整数型, , "CreateProcessA"
.参数 lpApplicationName, 文本型
.参数 lpCommandLine, 文本型
.参数 lpProcessAttributes, 整数型
.参数 lpThreadAttributes, 整数型
.参数 bInheritHandles, 整数型
.参数 dwCreationFlags, 整数型
.参数 lpEnvironment, 整数型
.参数 lpCurrentDriectory, 文本型
.参数 lpStartupInfo, STARTUPINFO, 传址
.参数 lpProcessInformation, PROCESS_INFORMATION, 传址
.DLL命令 VirtualAllocEx, 整数型, , "VirtualAllocEx", 公开
.参数 hProcess, 整数型, , 申请内存所在的进程句柄
.参数 lpAddress, 整数型, , 保留页面的内存地址;一般用NULL自动分配
.参数 dwSize, 整数型, , 欲分配的内存大小,字节单位;注意实际分 配的内存大小是页内存大小的整数倍
.参数 flAllocationType, 整数型, , 查看MSDN
.参数 flProtect, 整数型, , 查看MSDN
.DLL命令 WriteprocessMemory_byte, 整数型, "kernel32.dll", "WriteProcessMemory", 公开
.参数 hProcess, 整数型, , 进程的句柄
.参数 lpBaseAddress, 整数型, , 进程地址
.参数 lpBuffer, 字节集, , 数据存放地址
.参数 nSize, 整数型, , 数据的长度
.参数 lpNumberOfBytesWritten, 整数型, 传址, 实际数据的长度
.DLL命令 GetModuleHandle, 整数型, , "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
.参数 lpModuleName, 文本型, , 一般为0 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD
.DLL命令 GetProcAddress, 整数型, "kernel32.dll", "GetProcAddress", 公开, 如果函数调用成功,返回值是DLL中的输出函数地址。
.参数 hModule, 整数型, , DLL模块句柄
.参数 lpProcName, 文本型, , 函数名
.DLL命令 CreateRemoteThread, 整数型, "kernel32.dll", "CreateRemoteThread", , 在一个远程进程中建立线程
.参数 THandle, 整数型, , 远程进程的句柄
.参数 Pointer, SECURITY_ATTRIBUTES, 传址, 线程security描述字,指向SECURITY_ATTRIBUTES结构的指针
.参数 dwStackSize, 整数型, , 线程栈大小,以字节表示
.参数 TFNThreadStartRoutine, 整数型, , 一个TFNThreadStartRoutine类型的指针,指向在远程进程中执行的函数地址
.参数 Pointer, 整数型, , 传入参数的指针
.参数 CreationFlags, 整数型, , 创建线程的其它标志
.参数 ThreadId, 整数型, , 线程身份标志,如果为0, 则不返回
.DLL命令 WaitForSingleObject, 整数型, , "WaitForSingleObject", 公开
.参数 hHandle, 整数型, , 事件的句柄
.参数 dwMilliseconds, 整数型, , 时间间隔
.DLL命令 GetExitCodeThread, , , "GetExitCodeThread"
.参数 hThread, 整数型, , 线程句柄
.参数 lpExitCode, 整数型, 传址, 一个变量指针接收到线终止状态。
.DLL命令 VirtualFreeEx, 整数型
.参数 hProcess, 整数型
.参数 lpBuf, 整数型
.参数 dwSize, 整数型
.参数 sss, 整数型
.DLL命令 CloseHandle, 整数型, "kernel32.dll", "CloseHandle", 公开, Long,非零表示成功,零表示失败
.参数 hObject, 整数型, , Long,欲关闭的一个对象的句柄
.DLL命令 LoadLibraryEx, 整数型, , "LoadLibraryExA", 公开, Long,成功则返回库模块的句柄,零表示失败。会设置GetLastError 装载指定的动态链接库,并为当前进程把它映射到地址空间。一旦载入,就可以访问库内保存的资源
.参数 lpLibFileName, 文本型, , 指定要载入的动态链接库的名称。采用与CreateProcess函数的lpCommandLine参数指定的同样的搜索顺序
.参数 hFile, 整数型, , Long,未用,设为零
.参数 dwFlags, 整数型, , Long,指定下述常数的一个或多个
.DLL命令 bind, 整数型, "ws2_32.dll", "bind"
.参数 s, 整数型
.参数 addr, addr, 传址
.参数 namelen, 整数型
.DLL命令 connect, 整数型, "ws2_32.dll", "connect"
.参数 asda, 整数型
.参数 asds, 整数型
.参数 asdx, 整数型
.DLL命令 htons, 短整数型, "ws2_32.dll", "htons"
.参数 hostshortas, 整数型
.DLL命令 LoadLibraryA, 整数型
.参数 lpLibFileName, 文本型
.DLL命令 FreeLibrary, 逻辑型
.参数 hLibModule, 整数型
.DLL命令 VirtualProtect, 逻辑型
.参数 lpAddress, 整数型
.参数 dwSize, 整数型
.参数 flNewProtect, 整数型
.参数 lpflOldProtect, 整数型, 传址
.DLL命令 取字节集变量数据地址, 整数型, , "lstrcpynA"
.参数 lpString1, 字节集
.参数 lpString2, 字节集
.参数 iMaxLength, 整数型
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。