易语言DLL制作调用及hook-认识hook技术

hook DLL源码:

  1. .版本 2
  2. .支持库 EThread
  3.  
  4. .程序集 程序集1
  5. .程序集变量 ed, 整数型
  6. .程序集变量 Hook, 整数型
  7.  
  8. .子程序 _启动子程序, 整数型, , 请在本子程序中放置动态链接库初始化代码
  9.  
  10. ed = 0
  11. _临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
  12. 返回 (0)  ' 返回值被忽略。
  13.  
  14. .子程序 _临时子程序
  15.  
  16. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  17.  
  18.  
  19. .子程序 Hook, 整数型, 公开, 这段代码请不要改动!
  20. .参数 nCode
  21. .参数 wp
  22. .参数 lp
  23.  
  24. .如果 (ed = 0)
  25.     启动线程 (&回调函数, , )
  26. .否则
  27.  
  28. .如果结束
  29. ed = 1
  30. 返回 (CallNextHookEx (0, nCode, wp, lp))
  31.  
  32. .子程序 回调函数, , , 在这个函数里写代码!
  33.  
  34. 载入 (窗口1, , 真)
  35.  
  36. .子程序 卸载注入
  37.  
  38. UnhookWindowsHookEx (Hook)
  39.  
  40. .版本 2
  41. .支持库 eAPI
  42.  
  43. .程序集 窗口程序集_窗口1
  44.  
  45. .子程序 _按钮1_被单击
  46.  
  47. .计次循环首 (100, )
  48.     模拟按键 (113, , )
  49.     程序_延时 (500, )
  50. .计次循环尾 ()

易语言注入调用

.版本 2

.程序集 窗口程序集1
.程序集变量 注入DLL, 文本型

.子程序 _按钮1_被单击

消息钩子注入 (到数值 (编辑框1.内容), 注入DLL, “Hook”)

.子程序 消息钩子注入, 逻辑型
.参数 进程ID
.参数 注入DLL, 文本型
.参数 接口函数, 文本型
.局部变量 hMod, 整数型
.局部变量 proc, 整数型
.局部变量 dwThreadId, 整数型
.局部变量 handle, 整数型
.局部变量 hook, 整数型

hMod = LoadLibraryA (注入DLL)
.如果真 (hMod = 0)
信息框 (“载人DLL 失败”, 0, , )
返回 (假)
.如果真结束
proc = GetProcAddress (GetModuleHandleA (注入DLL), 接口函数)
.如果真 (proc = 0)
信息框 (“失败”, 0, )
FreeLibrary (hMod) ' 释放
返回 (假)
.如果真结束
' 取到要注入进程的主线程ID
handle = 进程_ID取窗口句柄 (进程ID, , , )
.如果真 (handle = 0)
信息框 (“不是一个有窗口的进程!!”, 0, )
FreeLibrary (hMod) ' 释放
返回 (假)
.如果真结束
dwThreadId = 窗口_句柄取线程ID (handle)
.如果真 (dwThreadId = 0)
信息框 (“获取目标进程窗口线程ID失败!”, 0, )
FreeLibrary (hMod) ' 释放
返回 (假)

.如果真结束
hook = SetWindowsHookExA (2, 整数_到_子程序指针 (proc), hMod, dwThreadId)

.如果真 (dwThreadId = 0)
信息框 (“安装钩子失败!”, 0, , )
返回 (假)
.如果真结束
返回 (真)

.子程序 整数_到_子程序指针, 子程序指针
.参数 int, 整数型
置入代码 ({ 139, 69, 8, 139, 229, 93, 194, 4, 0 })
' mov eax,[ebp+8] 第一个参数存入EAX 用作返回
' mov esp,ebp 平衡栈
' pop ebp
' ret 4
' By 无名侠
返回 (整数_到_子程序指针 (0)) ' 这句话执行不到的,当摆设,没有的话易语言会报错!
.子程序 __启动窗口_创建完毕

注入DLL = 取运行目录 () + “\dll.dll”

教程获取下载:


发布日期:

所属分类: 易语言 标签: