全站数据
8 4 2 0 5 8 1

api劫持什么意思

消防工程师 | 简单学习,快乐成才!         
问题更新日期:2024-10-25 01:07:02

问题描述

api劫持什么意思急求答案,帮忙回答下
精选答案
最佳答案

api劫持就是如果A程序调用了B.cll里面的C函数。

我们可以做到当A调用C函数执行的时候,直接执行我们自己事先准备好的函数,之后我们在执行真正的C。

当然我们可以不执行C或者更改C的参数等等,实现的核心思路就是:mov eax, pNewAddr[/size][size=3] jmp eax。

具体原理:

我们首先获取要劫持函数的地址,然后我们在自己组装一个数据结构,数据结构的内容是执行汇编:

把新函数地址拷到寄存器里,然后再jmp到新函数地址位置执行新函数,然后我们把自己组装这个数据结构拷贝到之前获取的需要劫持的函数地址指向的内存的位置。

这样当我们再次调用该函数的时候,程序走到函数地址处发现是执行我们刚刚写好的汇编命令,直接jmp到了我们自己定义的函数地址的位置,也就相当于直接运行了我们自己写好的函数地址了。

当然自己写的函数必须要和原函数参数和返回值一样,自己写的函数里面也可以调用原函数(达到过滤的目的)。

但是前提是调用之前要先关闭劫持,也就是把我们替换的内容给人家替换回去,执行完之后再次替换我们的地址。

如果不替换回去我们就会进入无限递归了这个不解释,当然我们也可以修改参数什么的,给调用者进行一个“加工”。

其他回答

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

API劫持是任何框架都很难避免的问题,而被侵入框架API的程序也很容易被该框架绑定,很难脱离框架运行环境

其他回答

api劫持指的是玩家在游戏过程中遇到的选项或程序莫名跳转的情况,打开的内容不是原来的内容,反而跳转到了未知的页面,这就是api劫持。