“mov into stack”这个ASM代码的另一个变量

时间:2017-08-04 06:43:58

标签: assembly x86

我对asm非常陌生,我一直在关注其他人的一些指南和代码来做我自己做的事情,但这对我来说很难。

所以我找到了这段代码:

_asm
    {
        push Fn3Var2;
        mov ecx, 0x7AAD828;
        mov esi, 0x00402F50;
        call esi;
        push eax;
        mov eax, dword ptr ds : [0x7C13C7C];
        lea eax, dword ptr ds : [eax + eax * 0x4];
        lea edx, dword ptr ds : [eax + eax * 0x4];
        lea eax, dword ptr ds : [edx * 0x4 + 0x7BE1238];
        push eax;
        mov esi, 0x00851348;
        call esi;
        mov eax, dword ptr ds : [0x7C13C7C];
        add esp, 0x8;
        mov dword ptr ds : [eax * 0x4 + 0x7BE239C], 0x08; // ebx
        mov dword ptr ds : [eax * 0x4 + 0x7C114A0], 0x1; // ebx
        inc eax;
        mov dword ptr ds : [0x7C13C7C], eax;

        mov eax, 0x00594CFD;
        jmp eax;
    }

所以Fn3Var2是一个DWORD。 这段代码对于我应该做的事情(在游戏中的项目中添加文本)可以正常工作。 但是我想添加另一行文本,这就是共享代码的人所说的:

“只需​​注册另一个变量(DWORD Fn3Var3),在每个项目中设置它然后将其移动到asm代码中的堆栈。”

所以显然创建了一个我理解的新DWORD Fn3Var3,但后来我不知道如何添加它或将其移动到堆栈。 真的能比我理解这个的人能解释一下吗? :)

编辑:“在每个项目案例中设置它”意味着在某些条件下添加Fn3Var3,不要担心。

Edit2:抱歉,我忘记添加此内容,也许这很重要。这段代码:

    _asm
{
    mov ax, word ptr ds : [edi];
    mov Fn3Var1, eax;
}

在另一个之前跑。

Edit3:所以我在IDA(0x00402F50,0x00851348,0x00594CFD)上搜索了这3个位置,这就是它的样子:http://imgur.com/a/oIV7y 不确定它是否有帮助,但任何方式:)

上次编辑:我设法通过查看其他人的类似代码来完成此操作,您可以关闭此问题。 :)

0 个答案:

没有答案