gpt4 book ai didi

c++ - 使用 __asm 从十六进制偏移调用函数

转载 作者:太空宇宙 更新时间:2023-11-04 01:15:35 27 4
gpt4 key购买 nike

我不懂汇编,所以我不确定该怎么做。

我有一个程序正在挂接到另一个程序。我已经获得函数在 Hook 程序的 .exe 中所在位置的偏移量

#define FuncToCall 0x00447E5D

那么现在如何使用 __asm{} 调用该函数?

最佳答案

简短的回答是,如果你不懂汇编,你不应该这样做,哈哈。

但是,如果您如此热衷于进行墙面黑客攻击,我的意思是,修改合法程序的操作,您不能只获取一个地址并称其为好。

您需要查找符号(如果在快乐的 linux 领域)或使用 sig 扫描(或同时使用 D=)来查找实际函数。

一旦你这样做了,它就相对简单了,你只需要写一个mov和jmp。假设您已经可以访问正在运行的进程,并且您的 sig 扫描器找到了正确的地址,这段代码将得到您想要的

mov eax, 0×deadbeef
jmp eax

现在,如果你想要的这个功能是一个类方法..你需要做更多的研究。但是那部分程序集将运行您想要的任何静态函数。

处理不同的调用约定也有些困惑,所以没有评论者试图就此叫我出来,这对于这个问题来说还远远不够先进。

编辑:顺便说一句,我不使用调用,因为使用调用时你必须担心堆栈帧和其他非常困惑的事情。此代码将跳转到任何地址并开始执行。

如果你想返回到你的代码那是另一回事,但只要它是正确的调用约定,而不是类方法等等,这将使你的目标函数运行

关于c++ - 使用 __asm 从十六进制偏移调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1926007/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com