易语⾔钩⼦DLL注⼊源码及源码说明
易语⾔钩⼦DLL注⼊源码及源码说明2010-04-06 13:52[所有要使⽤到的API]
.版本 2
.DLL命令 LoadLibraryA, 整数型,"kernel32.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"
.参数动态调⽤代码, 字节集, , ⼀定要⽤本⼈编写的
.参数⼦程序, ⼦程序指针, , ⼦程序指针
.参数参数, 整数型, 数组, 为整数数组,参数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)
返回 (真)
.如果真结束
返回 (假)
.⼦程序呼出键接⼝, 整数型
.参数⼀, 整数型
.参数⼆, 整数型
.参数三, 整数型
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论