易语言简单多用注入源码
系统结构: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, 整数型, 传址, 指定窗口句柄;
原贴 [易语言首发]PCVX小程序解密 因为 我也不懂 就看了下这个 PC小程序解密.e 发出来不知道怎么用,所以 度娘一步步找答案得到 的 自行研究捉摸了下 仅供学习参考 1.打开 PC小程序解...
易语言模块基址获取源码,模块基址获取,GetModuleBaseAddress...
易语言流程控制编译原理源码,流程控制编译原理,是否汉字,读字符,是否运算符,是否逻辑运算符,指针回溯,跳过空格,跳过注释,代码块,取程序返回值,外部接口_代码块执行,外部接口_表达式计算,表达式计算,逻辑判断,文本到逻辑,函数调用,函数_位或,函数_测试,函数_信...
易语言搜索程序隐藏代码源码,搜索程序隐藏代码,枚举子程序...
易语言打鱼学习链表源码,打鱼学习链表,入栈,出栈,清空链表,取顶数据,取索引处值,取长度,取值处索引,插入,删除,倒置,是否为空,到八,入队,出队...
易语言脚本解析类源码,脚本解析类,子程序1,QEHash,创建进入许可证_,进入许可区_,退出许可区_,删除进入许可证_,启动线程_,销毁线程_,寻找字节集_,内存_申请,内存_释放,内存_尺寸,内存_读整数,内存_写整数,内存_复制,内存_写字节集,内存_写文本,内存_读字节集,...
易语言核心算术计算解析源码,核心算术计算解析,信息框3,信息框2...
易语言获取网页和密码例程源码,获取网页和密码例程,取文档对象,取浏览器文档对象_API,注册消息_API,发送消息_API,置鼠标捕获窗口_API,取消鼠标捕获窗口_API,取窗口类名_API,取座标窗口句柄_API,取光标位置_API...
易语言置入代码调用子程序办法源码,置入代码调用子程序办法,普通写法,置入写法...