开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 32802|回复: 332
收起左侧

[易语言纯源码] x64进程远程hook,x64_远程调用函数,源码更新V1.8.7:2021/4/16

    [复制链接]
发表于 2021-4-16 21:10:41 | 显示全部楼层 |阅读模式   浙江省绍兴市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
这个论坛麻烦的要命,更新一回开个新帖,烦不胜举,暂时就到这吧,以后一般更新不往论坛放了

源码为下方连接帖子后续更新内容:
浅谈64位进程远程hook技术:https://bbs.125.la/forum.php?mod=viewthread&tid=14666356&extra=
不管您是转载还是使用请保留版权,源码在精益论坛免费发布本人未获利,请不要用于非法途径。

wow64_hook 源码历史更新
---------------------------------------------------------------
2021/4/16  模块源码1.8.7 更新:
1:重新架构了穿插汇编指令,优化了一些代码和流程
2:在 远程hook64指令_安装()时新增可回调的3个自定义参数值,这些值在回调接口的[寄存器64.自定义值1;2;3]里可获取到该值
3:修复 寻找无效8字节指令地址()中一个重要BUG,此BUG极大可能导致之前版本在 远程hook64指令_安装()时即导致目标程序崩溃的现象
本次更新比较重要 建议使用者更新到此版本使用............
---------------------------------------------------------------
2021/4/15  模块源码1.8.6 更新:
1:新增3组函数:X64_取模块代码区起始地址(),X64_取模块入口地址(),X64_取模块代码执行段大小()
2:自定义类型:模块信息64,的成员构成新增改动为 以下,在枚举模块中亦可直接取得
成员 模块基址, 长整数型, , , 模块映像的内存地址 也称为句柄
成员 模块长度, 整数型, , , 整个模块文件长度
成员 模块入口, 长整数型, , , 模块入口函数地址 如 Mian/DllMain
成员 模块代码入口, 长整数型, , , 模块代码执行区起始地址
成员 模块代码长度, 整数型, , , 模块代码执行区的长度
成员 模块名称, 文本型, , , 文件名称
成员 模块路径, 文本型, , , 完整的路径地址
3:新消息接口()远程返回_调用回调子程序()优化了代码严谨性,减少hook目标崩溃的可能性
4:寻找无效8字节指令地址()由之前的全模块查找 改动为 在模块代码执行区查找
5:改写模块实列为 一对多的模式
6:模块实列操作控件的方式由变量改为堆内存,避免引起多线程自身崩溃
7:模块实列 对 recv,recvfrom两个函数的hook方式由原先 在回调内 暂停recv-->recv_call-->恢复recv,的方式改为经过特殊改造的 recv_call,这个call经过特殊处理,在recv回调函数内调用,用来取得真实长度,这个调用会绕过hook位置,所以不会触发 recv回调,详见源码
8:修改了一些已知可能出现的问题
---------------------------------------------------------------
2021/4/12 模块源码 v1.8.2更新
1:修复 x64_远调用函数()在易语言主线程调用时造成消息无法回调,导致易语言主线程窗口卡死的问题。
     感谢楼下易友发现的BUG,已经第一时间更新
---------------------------------------------------------------
2021/4/12 模块源码 v1.8.1更新
1:修复 hook全部卸载时的流程写法的一个错误,由于句柄的提前关闭导致多个hook点卸载不干净的问题
2:改写了消息回调时线程传参的代码优化,优化了其他一些小问题
3:  鉴于很多朋友需要,改写了模块自带实列,对TCP,UDP的两组封包函数做了hook实列写法
4:列子中同样增加对x64_远调用函数()的应用写了几个列子,如使用套接字取得本地或远端IP端口API调用的的应用实列
5:本hook模块不支持非模块内存区hook,如申请的动态分配页等,不是不能支持,只是觉得没有任何意义,对这方面有需求的,自行改写模块源码使用
提醒:hook回调函数中尽量减少耗时代码,时间越长返回越慢,回调中谨慎操作控件,如必须要用到可参考源码中实列写法采用线程操作
---------------------------------------------------------------
2021/3/1   模块源码v1.6更新:
1:修复  x64_远程调用函数()命令,在没有提供 寄存器 参数时,没有返回值的BUG。
---------------------------------------------------------------
2021/2/28 模块源码v1.5更新:
一:修复win7 64位系统下枚举模块 出现部分模块长度出现负数的问题,从而导致部分win7用户不能使用

二:强化 远程hook64指令_安装 的稳定性:
       1,穿插代码中增加对标志位的保护,避免hook位置长度下一条指令为跳转时产生跳转错乱的问题,强化了hook任意位置的定位

       2,因为穿插代码中会调用API函数,而64位汇编必须遵守栈指针16字节对齐,故对穿插代码进行栈指针16字节对齐,增强稳定性
       3,hook指令安装支持长度由6-127字节 变动 为 6-119字节,原因么没必要说了,代码优化造成的,稍微少了一点无所谓了
       4,对模块回调进行了适当优化处理,增强稳定性
三:应支持的朋友需要故增加 x64_远程调用函数()命令,易语言可以直接远call64进程,且无需写汇编代码或机器码指令,支持15个参数,支持返回值,支持16个通用寄存器全部取得返回值
      该功能调用即16字节栈对齐,不要用户管堆栈,代码内部构成,远线程执行,你只需要知道call有几个参数,需要什么寄存器,对应提供即可。
四:有朋友说原模块x64英文看了烦,那好吧就给改成了中文标识,弄得我自己也不习惯
五:源码内列子改了改,可以自己看,需要注意的是模块注释的很详细,使用前最好看一看,尤其是hook回调接口的写法和安装的写法最好按照模块列子中的写法来,除非你能把64hook模块组看懂一遍,对于一些对本模块一知半解的朋友请不要乱改乱发,这个模块我会继续增强的,只是工作原因时间有限,只能一点一点来
--------------------------------------------------------------------

支持最小6字节hook,hook采用JMP转移,且为长转移(并非2G短转移),且支持最小6字节
支持hook任意指令处,支持获得当时16个通用寄存器+一个rip寄存器,的读取及修改
回调接口返回值支持是否执行Hook掉的原指令(0=执行,>0不执行)
支持任意堆栈操作,通过rsp
支持任意rip转移(支持大于2G长转移),通过rip
支持一个易语言程序同时控制多个64位目标进程
支持多个hook点同时回调至一个回调接口内
且所有回调尽阶独立,不论hook位置的复杂经过性皆不影响回调数据
每次hook的经过都会等到回调返回,假如回调接口未返回,则hook当时的经过为挂起等待状态

灵活多变的自由控制,可达到几乎所有的要求

附件回复可见,如有BUG可加入企鹅讨论群提出
64_hook1.8.7.e (389.93 KB, 下载次数: 912)

评分

参与人数 19好评 +17 精币 +39 收起 理由
inat + 1 + 2 感谢分享,很给力!~
猪滴寳貝哝 + 1 + 2 感谢分享,很给力!~
先锋小七 + 1 + 3 WSASend WSASendto wsarecv wsarecvfrom 来一波啊
QQEat + 1 支持开源~!感谢分享
qwe7777777 + 1 + 2 源码很赞,谢谢分享
易语言资源网 + 1 + 3 支持开源~!感谢分享
wangxd + 1 + 2 奉上小小红包希望笑纳
llxx123 + 1 + 2 支持开源~!感谢分享
元老 + 1 + 2 这人是真厉害....大佬,本小白膜拜!
信易达 + 1 + 5 新技能已get√
元首很忙 + 1 新技能已get√
fengshou + 1 新技能已get√
734108950 + 1 + 2 奉上小小红包希望笑纳
爱的凌迟 + 1 + 3 支持开源~!感谢分享
350246356 + 1 + 2 感谢分享,很给力!~
1301ok + 1 很赞同,谢谢!
Bszk + 1 + 3 感谢分享,很给力!~
xslyhk + 1 + 2 支持开源~!感谢分享
汉族 + 1 + 2 新技能已get√

查看全部评分


本帖被以下淘专辑推荐:

签到天数: 1 天

发表于 3 天前 | 显示全部楼层   山东省滨州市
好,谢谢
回复 支持 反对

使用道具 举报

发表于 2024-5-15 00:13:55 | 显示全部楼层   上海市上海市
牛逼大神
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 18 天

发表于 2023-8-5 16:37:42 | 显示全部楼层   广东省茂名市
牛逼大神
回复 支持 反对

使用道具 举报

发表于 2023-6-29 05:00:22 | 显示全部楼层   重庆市重庆市
支持支持
回复 支持 反对

使用道具 举报

结帖率:17% (2/12)

签到天数: 1 天

发表于 2023-6-18 08:01:51 | 显示全部楼层   福建省莆田市
222222222222222222222
回复 支持 反对

使用道具 举报

结帖率:17% (2/12)

签到天数: 1 天

发表于 2023-6-18 08:01:30 | 显示全部楼层   福建省莆田市
22222222222222222222222222
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
发表于 2023-4-30 09:28:13 | 显示全部楼层   天津市天津市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
发表于 2023-4-30 09:27:51 | 显示全部楼层   天津市天津市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

发表于 2023-1-31 18:24:14 | 显示全部楼层   浙江省宁波市
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表