gpt4 book ai didi

c++ - 帮助 : Application crashes on accessing source code

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:35:52 24 4
gpt4 key购买 nike

这是我在 VC++ 项目中插入的一个简单的 asm 代码。 addr_curr_ebp 是 EBP 指针的当前地址。它指向堆栈帧内的旧 EBP 值。这之后的 4 个字节是应用程序函数内部的返回地址。我从代码部分提取了一个字节。我将代码与 gtalk、vlc 等其他应用程序一起运行。当我在代码中包含 ProbStat 1 和 2 时,应用程序总是崩溃。当我删除这些语句时,一切正常。你认为这是什么?

__asm{
push eax
push ebx
push cx

mov ebx, addr_curr_ebp
mov eax, [ebx + 4]

mov cl, BYTE PTR [eax - 5] //ProbStat 1
mov ret_5, cl // ProbStat 2

pop cx
pop ebx
pop eax
}

最佳答案

您的代码片段不够好,无法查看“ret_5”所在的位置。如果它是某个类的成员,您将自动崩溃。 ecx 寄存器存储“this”指针,你搞砸了。

不确定这是做什么的,听起来好像您需要使用 _ReturnAddress 内在函数。它返回调用此代码的调用指令之后的指令地址。赋值给一个unsigned char*,不需要这样组装。

关于c++ - 帮助 : Application crashes on accessing source code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4593057/

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