|
分享源码
界面截图: |
|
是否带模块: |
纯源码 |
备注说明: |
- |
之前有人发过:【易首发】Hook一个API就可以实现Hook亿个API吗? 这个源码里面有一些问题,我大致修改了一下,用这个帖子作个记录
@ANormalUser @1185384801
{b = 0 ' b虽然没有用到,但是删了程序会崩溃,不知道为什么}
修改后的源码去掉了这个局部变量,并没有出现崩溃的问题 原版出现崩溃现象大概率是
堆栈没有平引起的,加上这个变量之后正好平了,然后不崩了
{- mov r10,rcx }
rcx里面是函数要操作的进程句柄,传递给r10应该是作为一个内核参数, 不需要操作句柄的函数似乎没有这一行
{我猜测x64程序可以直接用int 2E进入内核}
x64位系统下的程序无论32位还是64位都是通过syscall进行系统调用, int 2E是远古时期的内核调用方式
{Demo测试结果(我好像只Hook了一处,实际上我可能Hook了几乎所以的API,但是这个NtRaiseException命令似乎修复了我们的Hook,这里我没有深入研究,具体可以自己研究):}
经测试, NtRaiseException并不会修复Hook, 这个函数应该是触发系统异常, 比如 内存错误, 参数错误等.
{如果屏蔽掉我们的测试部分代码,程序很快就会因为拦截到过多的消息函数而堆栈崩溃(如何优化请自行思考}
修改之后没有出现堆栈崩溃, 但是一直拦截会造成窗口消息卡顿
|
评分
-
参与人数 3 | 好评 +3 |
精币 +10 |
收起
理由
|
猪滴寳貝哝
| + 1 |
+ 2 |
解决了一个问题,又引出另一个问题(ps:窗口卡顿),不过还是感谢你的分享!. |
神女软件定制
| + 1 |
+ 3 |
不明觉厉 |
冰点
| + 1 |
+ 5 |
感谢分享,很给力!~ |
查看全部评分
|