简介
这是我第一次在一个小问题上寻求帮助或者更多的帮助。我没有通过互联网寻求帮助的经验,所以如果我的问题很短和/或不够详细,请原谅我。
我一直在研究一个项目(没有学校项目,只是一个小项目,以便更好地掌握C ++和汇编)但我偶然发现了一个问题。
项目的“核心”是从特定目标的内存中读取和写入。我将从目标内存空间读取的信息存储到我自己的结构中。在我的程序中稍后,我将在表单中输出值。
问题:
现在我偶然发现了这个问题。我无法从目标内存中读取字符串并将其存储在我的结构中。我以前从未做过这样的事情。
我试图通过Visual Studio 2012中的内联汇编(C ++)来实现这一目的。
如果有任何有心思意念的人知道我怎么可能这样做。请告诉我。
额外信息
记忆视图
在存储器地址0x582FAD74处存储指向另一个结构的指针,并且在该结构中,在偏移量0x0处存储该字符串。这是我目前控制的播放器的名称。
现在,我有一个函数可以抓取指针指向的地址并将其存储在我的结构中。
// EAX contains the base address of my character.
// At offset 0xD0 there is another structure so I am grabbing the address the pointer is pointing to.
// At offset 0x90 is the structure that contains the string. And I am storing it in my structure for later use.
mov ebx, [eax+0xD0]
mov ebx, [ebx+0x90]
mov UnitOne.Unit_Description, ebx
此时“Unit_Description”包含我需要获取保存我所追求的字符串的结构所需的地址。
现在,我的结构中有一个名为“Player_Name”的变量,我想找到一种方法来检索字符串并通过内联汇编将其存储在变量“Player_Name”中。
解决方案
解决方案就在我的鼻子底下。虽然我不是通过内联汇编来实现的。我正在使用 strcpy_s 从结构中获取字符串。谢谢你试图帮助我。干杯!
实施例。 strcpy_s(UnitOne.Player_Name, (char*)UnitOne.Unit_Description);
亲切的问候, 源