• 当前位置: 首页 > 系统II类源码 > 模块控件源码易语言增强APIHook类1.4模块源码
  • 易语言增强APIHook类1.4模块源码

    • 软件授权:
      开源软件
    • 软件大小:
      26.83 KB
    • 文件类型:
      .zip,.e
    • 下载次数:
    • 上传用户:
      心脏
    • 发布时间:
      2018-10-24 18:59
    • 软件等阶:
    • 运行环境:
      Winall,Win2003,WinXP,Win7,Win8
    • 软件评级:

    软件介绍             



     

    易语言增强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

      


    易语言增强APIHook类1.4模块源码 易语言增强APIHook类1.4模块源码


    调用的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,指定要挂起的一个线程的句柄

    相关软件

    下载说明

    本站目前主要提供易语言源码、模块、支持库等下载大部分源码均为ZIP打包,
    注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
    部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
    由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。

    使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。

     

    推荐排行

    • 易语言卷帘工具箱源码

      易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...

    • 易语言仅用核心支持库实

      易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...

    • 易语言仅用核心支持库实

      易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...

    • 易语言仅用核心支持库实

      易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...

    • 易语言两个文件内存中通

      易语言两个文件内存中通讯源码,子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错...

    • 易语言易模块管理器Incl

      易语言易模块管理器Include目录源码,CopyTo_CreateProcessDebugInfo,CopyTo_CreateThreadDebugInfo,CopyTo_ExitThreadDebugInfo,CopyTo_ExitProcessDebugInfo,CopyTo_LoadDllDebugInfo,CopyTo_UnloadDllDebugInfo,CopyTo_ExceptionDebugInfo,Copy...

    • 易语言卷帘工具箱源码

      易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...

    • 文件读写和文件映射模块

      子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错误信息,读入字节集,读入2M字节集,清除文件缓冲区,读入文本,写出文本,写文本行,读入一行,插入字节集,取文件号...

    • 怪怪专用工具箱

      初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...