gpt4 book ai didi

function - ASM , 用 asm 调用函数

转载 作者:行者123 更新时间:2023-12-04 18:24:15 29 4
gpt4 key购买 nike

我想在 C++ 程序中使用 ASM 调用地址为 774a7fdch 的函数(kernel32.dll 函数)

我正在使用 Visual Studio 2010。

我该怎么做?

call 774a7fdch

不行,怎么传调用函数地址?

谢谢!

最佳答案

小心 CALL 指令,它与位置有关。它被编码为:

E8 XX XX XX XX

其中 X 是从下一条指令的内存地址到您正在调用的函数的地址的距离。此距离也称为 增量偏移

如果您不知道代码在内存中的位置以便进行计算,您可以尝试将地址加载到寄存器中:

mov eax, 774a7fdch
call eax

不过,那将是 7 个字节而不是 5 个字节。

另外,正如另一位用户指出的那样,对函数地址进行硬编码可能不是一个好主意,因为它们可以四处移动。

我不知道这是否能解决您的问题,因为我不确定您所说的“不起作用”是什么意思。

关于function - ASM , 用 asm 调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9141256/

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