钩子 易语言

易语言钩子DLL注入源码及源码说明2010-04-06 13:52[所有要使用到的API]
.版本 2
.DLL命令 LoadLibraryA, 整数型
.参数 lpLibFileName, 文本型
.DLL命令 SetWindowsHookExA, 整数型, "user32.dll", "SetWindowsHookExA", 公开, SetWindowsHookEx
.参数钩子类型, 整数型, , idHook
.参数回调函数地址, 整数型, , lpfn
.参数实例句柄, 整数型, , hmod
.参数线程ID, 整数型, , dwThreadId
.DLL命令 FreeLibrary, 整数型, "kernel32.dll", "FreeLibrary", , 释放指定的动态链接库,它们早先是用LoadLibrary ;API函数装载的非零表示成功,零表示失败。会设置GetLastError
一体化机芯
.参数库句柄, 整数型, , hLibModule,要释放的一个库句柄,在VB里使用只能用这个函数释放那些由应用程序明确装载的DLL。对LoadLibrary的每一次调用都应该有一个对应的FreeLibrary 调用;
.DLL命令 UnhookWindowsHookEx, 整数型, "user32.dll", "UnhookWindowsHookEx", , UnhookWindowsHookEx
.参数钩子句柄, 整数型, , hHook
.DLL命令 CallNextHookEx, 整数型, "user32.dll", "CallNextHookEx", 公开, CallNextHookEx    .参数钩子句柄, 整数型, , hHook
.参数代码值, 整数型, , ncode
.参数附加参数1, 整数型, , wParam
.参数附加参数2, 整数型, 传址, lParam
.DLL命令 GetProcAddress, 整数型, "kernel32.dll", "GetProcAddress", , 取进程路径
.参数模块句柄, 整数型, , hModule
.
参数进程名称, 文本型, , lpProcName
.DLL命令 GetCurrentThreadId, 整数型, "kernel32.dll", "GetCurrentThreadId"
.DLL命令获取特别文件夹位置_, 整数型, "shell32.dll", "SHGetSpecialFolderLocation"
.参数窗口句柄, 整数型, , hwndOwner
.参数文件夹位置, 整数型, , nFolder
.参数结构, 项目标识符列表_, 传址, pIdl
.DLL命令从列表id取路径_, 整数型, "shell32.dll", "SHGetPathFromIDListA", , $(b)
.参数结构指针, 整数型, , pIdl
.参数路径, 文本型, 传址, pszPath
.DLL命令 CallWindowProcA, 整数型, "user32.dll", "CallWindowProcA"t233
.参数动态调用代码, 字节集, , 一定要用本人编写的
.
参数子程序, 子程序指针, , 子程序指针
.参数参数, 整数型, 数组, 为整数数组,参数1为成员1…类推;文本型和字节集型(自定义
结构)为指针
.参数参数数目, 整数型, , 一定要和参数数组相符,不然会出错
.参数是否C调用, 整数型, , 真为cdecl调用方式,假为stdcall调用方式(即标准WINAPI方式)[这里函数所有代码和一个自定义类型,API代码在左边]
.版本 2
曲柄销.程序集程序集1
.程序集变量临时呼出热键, 整数型
.程序集变量临时载入窗口, 窗口
.程序集变量钩子模块句柄, 整数型, , "1000"
.程序集变量钩子句柄, 整数型, , "1000"
.程序集变量钩子IDx, 整数型
.程序集变量 x, 整数型
.程序集变量钩子句柄1, 整数型
.程序集变量 temp目录, 文本型
.程序集变量 xxx, 整数型
.程序集变量热键钩子句柄, 整数型
.程序集变量第一次, 逻辑型
.子程序调用_调用子程序, 整数型, 公开, 呼叫某个函数可以传入无限个参数返回函数返回值
.参数子程序指针, 子程序指针, , 指定函数
.参数参数, 整数型, 可空数组, 指定参数可以不写, 参数为数组格式为参数[1]=xxx 参数[2]=xxx 文本型或字节集请用转换指针格式2 加入成员(参数,xxx)
.局部变量动态调用代码, 字节集
动态调用代码= { 85, 139, 236, 86, 139, 117, 16, 141, 78, 255, 133, 201, 124, 21, 139, 69, 12, 141, 4, 136, 65, 139, 16, 137, 85, 16, 255, 117, 16, 131, 232, 4, 73, 117, 242, 255, 85, 8, 137, 69, 12, 139, 69, 20, 133, 192, 116, 13, 141, 4, 181, 0, 0, 0, 0, 137, 69, 16, 3, 101, 16, 139, 69, 12, 94, 93, 194, 16, 0 }
返回 (CallWindowProcA (动态调用代码, 子程序指针, 参数, 取数组成员数 (参数), 0))
.子程序操作_取特定目录, 文本型, 公开, 取特定的目录(返回所要取的指定目录名无效返回空) .参数欲获取目录类型, 整数型, 可空, 0我的桌面 1临时目录 5我的文档 6我的收藏夹 7我的启动11我的开始菜单 20系统字体 36Windows安装目录 37系统目录 [99更多]
.局部变量路径, 文本型
.局部变量标示结构, 项目标识符列表_
.局部变量目录类型, 整数型
.如果真 (欲获取目录类型= 99)
输出调试文本 (“0我的桌面 2我的程序 5我的文档 6我的收藏夹 7我的启动 8我最近的文档 9我的发送到 11我的开始菜单 13我的音乐 14我的视频 16我的桌面 20系统字体 22开始菜单组 23
程序组 24启动组 25桌面 31收藏夹 32我的浏览器临时目录 33我的Cookies 34我的历史记录
36Windows安装目录 37系统目录 38文件安装目录 39我的图片 40用户目录 41系统目录 46文档 47管理工具 48我的管理工具 53音乐 54图片 55视频”)
.如果真结束
.如果 (欲获取目录类型= 1)
目录类型= 34
.否则
目录类型=欲获取目录类型
.如果结束
获取特别文件夹位置_ (0, 目录类型, 标示结构)
路径=取空白文本 (255)
从列表id取路径_ (标示结构.结构大小, 路径)
.如果真 (路径=“”)
返回 (“”)
.如果真结束
.如果真 (欲获取目录类型= 1)
路径=子文本替换 (路径, “History”, “Temp”, , , 真)
.如果真结束
返回 (路径+“\”)
.子程序注入_安装钩子DLL, 整数型, 公开, DLL注入返回0=失败整数型 DLL接口(代码值,参数1,参数2)
.参数线程ID, 整数型, , -1 全局钩子
.参数 DLL全名, 文本型, , DLL全名
.参数 DLL接口, 文本型, 可空, 默认整数型钩子接口(代码值,参数1,参数2)
.局部变量临时变量, 整数型
.局部变量目录, 文本型
.局部变量窗口句柄, 整数型
.如果真 (是否为空 (DLL接口) =真)
DLL接口=“钩子接口”
.如果真结束
.如果真 (线程ID = 0)
返回 (0)
.如果真结束
.如果真 (线程ID = -1)
线程ID = 0
.
如果真结束
钩子IDx =钩子IDx + 1
钩子模块句柄 [钩子IDx] = LoadLibraryA (DLL全名)
钩子句柄 [钩子IDx] = SetWindowsHookExA (3, GetProcAddress (钩子模块句柄 [钩子IDx], DLL 接口), 钩子模块句柄 [钩子IDx], 线程ID)
目录=操作_取特定目录 (1)
写配置项 (目录+“ada.ini”, “ada”, “钩子句柄”, 到文本 (钩子句柄 [钩子IDx]))
输出调试文本 (钩子IDx, 钩子模块句柄 [钩子IDx], 钩子句柄 [钩子IDx])
返回 (钩子IDx)
.版本 2
.子程序注入_卸载钩子DLL, 逻辑型, 公开
.参数钩子ID, 整数型, 可空, 卸载所有时无效
.参数卸载所有, 逻辑型, 可空
.局部变量 xx, 整数型
.如果真 (卸载所有)
.如果真 (钩子IDx > 0)
.计次循环首 (钩子IDx, xx)
.如果真 (钩子模块句柄 [xx] ≠ 0)
FreeLibrary (钩子模块句柄 [xx])
UnhookWindowsHookEx (钩子句柄 [xx])
.如果真结束
.计次循环尾 ()
.如果真结束
返回 (真)
.如果真结束
.如果真 (钩子ID > 0)
.如果真 (钩子模块句柄 [钩子ID] ≠ 0)
FreeLibrary (钩子模块句柄 [钩子ID])
UnhookWindowsHookEx (钩子句柄 [钩子ID])
返回 (真)
全息打印.如果真结束
.如果真结束
返回 (假)
.子程序注入_初始化钩子DLL, 整数型, 公开, DLL用.
.
参数代码值, 整数型
.参数参数1, 整数型
.参数参数2, 整数型
.参数初始, 子程序指针
.局部变量 xxxx, 整数型
.如果真 (钩子句柄1 = 0)
temp目录=操作_取特定目录 (1)
钩子句柄1 =到整数 (读配置项 (temp目录+“ada.ini”, “ada”, “钩子句柄”, ))
.如果真结束
.如果真 (第一次=假)
第一次=真
调用_调用子程序 (初始)
.如果真结束
返回 (CallNextHookEx (钩子句柄1, 代码值, 参数1, 参数2))
.子程序注入_设置呼出窗口, 逻辑型, 公开
.参数设置热键, 整数型
.参数呼出窗口, 窗口
临时呼出热键=设置热键
临时载入窗口=呼出窗口
热键钩子句柄= SetWindowsHookExA (2, 到整数 (&呼出键接口), 0, GetCurrentThreadId ()) .如果真 (热键钩子句柄> 0)
返回 (真)
裂缝检测.如果真结束白菊醋
返回 (假)
.子程序呼出键接口, 整数型
.参数一, 整数型
.参数二, 整数型
.参数三, 整数型
.如果真 (一= 0 且二=临时呼出热键且三> 0)    .如果 (是否已创建 (临时载入窗口))
.如果 (临时载入窗口.可视)
临时载入窗口.可视=假
.否则
临时载入窗口.可视=真
.如果结束
.
否则
载入 (临时载入窗口, , 假)
临时载入窗口.Esc键关闭=假
临时载入窗口.最小化按钮=真
.如果结束
.如果真结束
返回 (CallNextHookEx (热键钩子句柄, 一, 二, 三))
.版本 2
.数据类型项目标识符列表_, , ITEMIDLIST
.成员结构大小, 整数型, , , cb
.成员标识符长度, 字节型, , "255", abID
此函数是用来调用指针函数的.就是CALL

本文发布于:2024-09-22 14:25:12,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/310320.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:参数   钩子   整数型   句柄   目录   调用   子程序
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议