
 
易语言增强APIHook类1.4模块源码
系统结构:汇编动态调用函数,MyMessageBoxA1,MyMessageBoxA2,MyMessageBoxA3,子程序10000000000000000000000000000,MyGetWindowLongA1,MyGetWindowLongA2,线程1,线程2,线程3,MywsprintfA1,指针取文本,API_RtlMoveMemory_读取整数,API_RtlMoveMemory_写入整数,API_lstrcpynA_字节集,API_VirtualProtect,API_LoadLibraryA,API_GetProcAddress,以下是演示中所用的dll声明,API_MessageBoxA,API_lstrcpynA_文本,API_OutputDebugStringA,API_CreateThread,API_wsprintfA,API_lstrlen,API_lstrcpyn_Text,API_HeapAlloc,API_GetProcessHeap,检测是否已被Hook,安装HookByName,安装HookByAddr,卸载Hook,继续Hook,暂停Hook,函数原内存地址,函数新过程地址,新函数头,清理新函数头,调用原函数,写出Nop数量,汇编动态调用,读取一字节,sizeofcode,暂停其他线程,挂起指定线程,恢复其他线程,有效句柄,汇编sizeofcode,API_RtlMoveMemory_读取整数,API_RtlMoveMemory_写入整数,API_lstrcpynA_字节集,API_VirtualProtect,API_LoadLibraryA,API_GetProcAddress,API_GetThreadPriority,API_GetCurrentThreadId,API_GetCurrentThread,API_SetThreadPriority,API_GetCurrentProcessId,API_CreateToolhelp32Snapshot,API_Thread32First,API_Thread32Next,API_OpenThread,API_SuspendThread,API_CloseHandle,API_ResumeThread, 
======启动 
           |  | 
           |  |------ _启动子程序 
           |  | 
           |  |------ _临时子程序 
           |  | 
           |  | 
======演示窗口程序集 
           |  | 
           |  |------ 汇编动态调用函数 
           |  | 
           |  |------ _按钮2_被单击 
           |  | 
           |  |------ _按钮1_被单击 
           |  | 
           |  |------ MyMessageBoxA1 
           |  | 
           |  |------ _按钮3_被单击 
           |  | 
           |  |------ _按钮4_被单击 
           |  | 
           |  |------ MyMessageBoxA2 
           |  | 
           |  |------ _按钮5_被单击 
           |  | 
           |  |------ _按钮6_被单击 
           |  | 
           |  |------ MyMessageBoxA3 
           |  | 
           |  |------ _按钮7_被单击 
           |  | 
           |  |------ 子程序10000000000000000000000000000 
           |  | 
           |  |------ _按钮8_被单击 
           |  | 
           |  |------ _按钮9_被单击 
           |  | 
           |  |------ MyGetWindowLongA1 
           |  | 
           |  |------ _按钮10_被单击 
           |  | 
           |  |------ _按钮11_被单击 
           |  | 
           |  |------ MyGetWindowLongA2 
           |  | 
           |  |------ _按钮12_被单击 
           |  | 
           |  |------ _演示窗口_创建完毕 
           |  | 
           |  |------ 线程1 
           |  | 
           |  |------ 线程2 
           |  | 
           |  |------ 线程3 
           |  | 
           |  |------ _按钮13_被单击 
           |  | 
           |  |------ _按钮14_被单击 
           |  | 
           |  |------ MywsprintfA1 
           |  | 
           |  |------ 指针取文本 
           |  | 
           |  |------ _按钮15_被单击 
           |  | 
           |  |------ _按钮16_被单击 
           |  | 
           |  |------ _演示窗口_将被销毁 
           |  | 
           |  | 
======调用的Dll 
           |  | 
           |  |---[dll]------   API_RtlMoveMemory_读取整数 
           |  | 
           |  |---[dll]------   API_RtlMoveMemory_写入整数 
           |  | 
           |  |---[dll]------   API_lstrcpynA_字节集 
           |  | 
           |  |---[dll]------   API_VirtualProtect 
           |  | 
           |  |---[dll]------   API_LoadLibraryA 
           |  | 
           |  |---[dll]------   API_GetProcAddress 
           |  | 
           |  |---[dll]------   以下是演示中所用的dll声明 
           |  | 
           |  |---[dll]------   API_MessageBoxA 
           |  | 
           |  |---[dll]------   API_lstrcpynA_文本 
           |  | 
           |  |---[dll]------   API_OutputDebugStringA 
           |  | 
           |  |---[dll]------   API_CreateThread 
           |  | 
           |  |---[dll]------   API_wsprintfA 
           |  | 
           |  |---[dll]------   API_lstrlen 
           |  | 
           |  |---[dll]------   API_lstrcpyn_Text 
           |  | 
           |  |---[dll]------   API_HeapAlloc 
           |  | 
           |  |---[dll]------   API_GetProcessHeap 
  ======功能子程序 
           |  | 
           |  |------ _启动子程序 
           |  | 
           |  |------ _临时子程序 
           |  | 
           |  | 
======增强APIHook类 
           |  | 
           |  |------ _初始化 
           |  | 
           |  |------ _销毁 
           |  | 
           |  |------ 检测是否已被Hook 
           |  | 
           |  |------ 安装HookByName 
           |  | 
           |  |------ 安装HookByAddr 
           |  | 
           |  |------ 卸载Hook 
           |  | 
           |  |------ 继续Hook 
           |  | 
           |  |------ 暂停Hook 
           |  | 
           |  |------ 函数原内存地址 
           |  | 
           |  |------ 函数新过程地址 
           |  | 
           |  |------ 新函数头 
           |  | 
           |  |------ 清理新函数头 
           |  | 
           |  |------ 调用原函数 
           |  | 
           |  |------ 写出Nop数量 
           |  | 
           |  |------ 汇编动态调用 
           |  | 
           |  |------ 读取一字节 
           |  | 
           |  |------ sizeofcode 
           |  | 
           |  |------ 暂停其他线程 
           |  | 
           |  |------ 挂起指定线程 
           |  | 
           |  |------ 恢复其他线程 
           |  | 
           |  |------ 有效句柄 
           |  | 
           |  |------ 汇编sizeofcode 
           |  | 
           |  | 
======调用的Dll 
           |  | 
           |  |---[dll]------   API_RtlMoveMemory_读取整数 
           |  | 
           |  |---[dll]------   API_RtlMoveMemory_写入整数 
           |  | 
           |  |---[dll]------   API_lstrcpynA_字节集 
           |  | 
           |  |---[dll]------   API_VirtualProtect 
           |  | 
           |  |---[dll]------   API_LoadLibraryA 
           |  | 
           |  |---[dll]------   API_GetProcAddress 
           |  | 
           |  |---[dll]------   API_GetThreadPriority 
           |  | 
           |  |---[dll]------   API_GetCurrentThreadId 
           |  | 
           |  |---[dll]------   API_GetCurrentThread 
           |  | 
           |  |---[dll]------   API_SetThreadPriority 
           |  | 
           |  |---[dll]------   API_GetCurrentProcessId 
           |  | 
           |  |---[dll]------   API_CreateToolhelp32Snapshot 
           |  | 
           |  |---[dll]------   API_Thread32First 
           |  | 
           |  |---[dll]------   API_Thread32Next 
           |  | 
           |  |---[dll]------   API_OpenThread 
           |  | 
           |  |---[dll]------   API_SuspendThread 
           |  | 
           |  |---[dll]------   API_CloseHandle 
           |  | 
           |  |---[dll]------   API_ResumeThread 
 
  
  
调用的DLL命令: 
.DLL命令 API_RtlMoveMemory_读取整数, 整数型, "kernel32", "RtlMoveMemory", , 写内存整数,最后个参数应该是4,才表示整数,否则只是个字节 
    .参数 pDestination, 整数型, 传址 
    .参数 pSource, 整数型 
    .参数 Length, 整数型, , 1 
.DLL命令 API_RtlMoveMemory_写入整数, , "kernel32", "RtlMoveMemory", , 写内存整数,最后个参数应该是4,才表示整数,否则只是个字节 
    .参数 Destination, 整数型 
    .参数 Source, 整数型, 传址 
    .参数 Length, 整数型 
.DLL命令 API_lstrcpynA_字节集, 整数型, "Kernel32", "lstrcpynA", , 本api可替代取变量数据地址命令 
    .参数 lpString1, 字节集, 传址, 这个与下面的类型要同时修改 
    .参数 lpString2, 字节集, 传址 
    .参数 iMaxLength, 整数型 
.DLL命令 API_VirtualProtect, 整数型, , "VirtualProtect", , 改写内存属性 失败为0 
    .参数 lpAddress, 整数型 
    .参数 dwSize, 整数型 
    .参数 flNewProtect, 整数型 
    .参数 lpflOldProtect, 整数型, 传址 
.DLL命令 API_LoadLibraryA, 整数型, "kernel32", "LoadLibraryA", , 载入库 
    .参数 File, 文本型 
.DLL命令 API_GetProcAddress, 整数型, "kernel32", "GetProcAddress", , 返回函数地址 
    .参数 hModule, 整数型 
    .参数 lpProcName, 文本型 
.DLL命令 以下是演示中所用的dll声明, , , , , =========================================================== 
.DLL命令 API_MessageBoxA, 整数型, , "MessageBoxA" 
    .参数 NULL, 整数型, , NULL 
    .参数 text, 文本型, , text 
    .参数 title, 文本型, , title 
    .参数 BUTTON, 整数型, , BUTTON 
.DLL命令 API_lstrcpynA_文本, 整数型, "Kernel32", "lstrcpynA", , 本api可替代取变量数据地址命令 
    .参数 lpString1, 文本型, 传址, 这个与下面的类型要同时修改 
    .参数 lpString2, 文本型, 传址 
    .参数 iMaxLength, 整数型 
.DLL命令 API_OutputDebugStringA, , "Kernel32", "OutputDebugStringA" 
    .参数 LPCTSTR, 文本型, , __in_opt  LPCTSTR lpOutputString 
.DLL命令 API_CreateThread, 整数型, "kernel32", "CreateThread", , 不引用C标准函数库,还是很可靠的 
    .参数 lpThreadAttributes, 整数型 
    .参数 dwStackSize, 整数型 
    .参数 lpStartAddress, 整数型 
    .参数 lpParameter, 整数型 
    .参数 dwCreationFlags, 整数型 
    .参数 lpThreadId, 整数型, 传址 
.DLL命令 API_wsprintfA, 整数型, "User32", "@wsprintfA", , 因为它的参数是不定的 
    .参数 输出文本, 文本型 
    .参数 格式文本, 文本型 
    .参数 文本1, 文本型 
    .参数 整数, 整数型 
.DLL命令 API_lstrlen, 整数型, , "lstrlenA" 
    .参数 Ptr, 整数型 
.DLL命令 API_lstrcpyn_Text, 整数型, , "lstrcpynA" 
    .参数 lpString1, 文本型 
    .参数 lpString2, 整数型 
    .参数 iMaxLength, 整数型 
.DLL命令 API_HeapAlloc, 整数型, , "HeapAlloc" 
    .参数 hHeap, 整数型 
    .参数 dwFlags, 整数型 
    .参数 dwBytes, 整数型 
.DLL命令 API_GetProcessHeap, 整数型, , "GetProcessHeap" 
调用的DLL命令: 
.DLL命令 API_RtlMoveMemory_读取整数, 整数型, "kernel32", "RtlMoveMemory", 公开, 写内存整数,最后个参数应该是4,才表示整数,否则只是个字节 
    .参数 pDestination, 整数型, 传址 
    .参数 pSource, 整数型 
    .参数 Length, 整数型, , 1 
.DLL命令 API_RtlMoveMemory_写入整数, , "kernel32", "RtlMoveMemory", 公开, 写内存整数,最后个参数应该是4,才表示整数,否则只是个字节 
    .参数 Destination, 整数型 
    .参数 Source, 整数型, 传址 
    .参数 Length, 整数型 
.DLL命令 API_lstrcpynA_字节集, 整数型, "Kernel32", "lstrcpynA", 公开, 本api可替代取变量数据地址命令 
    .参数 lpString1, 字节集, 传址, 这个与下面的类型要同时修改 
    .参数 lpString2, 字节集, 传址 
    .参数 iMaxLength, 整数型 
.DLL命令 API_VirtualProtect, 整数型, "kernel32", "VirtualProtect", 公开, 改写内存属性 失败为0 
    .参数 lpAddress, 整数型 
    .参数 dwSize, 整数型 
    .参数 flNewProtect, 整数型 
    .参数 lpflOldProtect, 整数型, 传址 
.DLL命令 API_LoadLibraryA, 整数型, "kernel32", "LoadLibraryA", 公开, 载入库 
    .参数 File, 文本型 
.DLL命令 API_GetProcAddress, 整数型, "kernel32", "GetProcAddress", 公开, 返回函数地址 
    .参数 hModule, 整数型 
    .参数 lpProcName, 文本型 
.DLL命令 API_GetThreadPriority, 整数型, "kernel32", "GetThreadPriority", 公开, , 
    .参数 线程句柄, 整数型, , 线程句柄 
.DLL命令 API_GetCurrentThreadId, 整数型, "kernel32", "GetCurrentThreadId", 公开, , 
.DLL命令 API_GetCurrentThread, 整数型, "kernel32", "GetCurrentThread", 公开, , 获取当前线程的一个伪句柄  当前线程的伪句柄 
.DLL命令 API_SetThreadPriority, 整数型, "kernel32", "SetThreadPriority", 公开, , 设定线程的优先级别  非零表示成功,零表示失败。会设置GetLastError 
    .参数 线程句柄, 整数型, , hThread 
    .参数 优先权, 整数型, , nPriority 
.DLL命令 API_GetCurrentProcessId, 整数型, "kernel32", "GetCurrentProcessId", 公开, , 获取当前进程一个唯一的标识符 
.DLL命令 API_CreateToolhelp32Snapshot, 整数型, "kernel32", "CreateToolhelp32Snapshot", 公开, , 取进程信息 
    .参数 标志, 整数型, , lFlags 
    .参数 进程标识符, 整数型, , lProcessID 
.DLL命令 API_Thread32First, 逻辑型, "Kernel32", "Thread32First", 公开 
    .参数 hSnapshot, 整数型, , A handle to the snapshot returned from a previous call to the CreateToolhelp32Snapshot function 
    .参数 lpte, THREADENTRY32, 传址, A pointer to a THREADENTRY32 structure 
.DLL命令 API_Thread32Next, 逻辑型, "Kernel32", "Thread32Next", 公开 
    .参数 hSnapShot, 整数型 
    .参数 lpte, THREADENTRY32, 传址, LPTHREADENTRY32 lpte 
.DLL命令 API_OpenThread, 整数型, "Kernel32", "OpenThread", 公开 
    .参数 dwDesiredAccess, 整数型 
    .参数 bInheritHandle, 逻辑型 
    .参数 dwThreadId, 整数型 
.DLL命令 API_SuspendThread, 整数型, "Kernel32", "SuspendThread", 公开 
    .参数 hThread, 整数型, , Long,指定要挂起的一个线程的句柄 
.DLL命令 API_CloseHandle, 整数型, "Kernel32", "CloseHandle", 公开 
    .参数 hObject, 整数型, , HANDLE hObject 
.DLL命令 API_ResumeThread, 整数型, "Kernel32", "ResumeThread", 公开, If the function fails, the return value is (DWORD) -1 
    .参数 hThread, 整数型, , Long,指定要挂起的一个线程的句柄 
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言两个文件内存中通讯源码,子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错...
易语言易模块管理器Include目录源码,CopyTo_CreateProcessDebugInfo,CopyTo_CreateThreadDebugInfo,CopyTo_ExitThreadDebugInfo,CopyTo_ExitProcessDebugInfo,CopyTo_LoadDllDebugInfo,CopyTo_UnloadDllDebugInfo,CopyTo_ExceptionDebugInfo,Copy...
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错误信息,读入字节集,读入2M字节集,清除文件缓冲区,读入文本,写出文本,写文本行,读入一行,插入字节集,取文件号...
初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...