我对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 不确定它是否有帮助,但任何方式:)
上次编辑:我设法通过查看其他人的类似代码来完成此操作,您可以关闭此问题。 :)