是否可以找到所有属性以及链接到该结构的所有对象的偏移量?
我更喜欢无需使用断点就可以做到这一点,但是如果没有其他方法,我可以使用它们。
#1 楼
您应该使用示例输出来询问问题,以使答案不基于猜测。我是否加载结构均值
我编写了一个程序,其中我使用OpenProcess()ReadProcessMemory()这意味着
我正在使用FILE * fp打开原始文件; fopen(“ c:\ XXX”,“ wb”)fread(fp);或将其加载到ollydbg或hexeditor中
假设您使用
ReadProcessMemory
,您提供的缓冲区将填充字节。您可以将其强制转换为适当的类型,以访问struct的各个成员(是的,您需要事先获得该结构的有效原型)。
type result;
BYTE foo[0x100];
Mystruct *blah;
int s1;
PSTR s2;
result = ReadProcessMemory(where,howmuch,destination,VerifiactionPointer)
blah = (MyStruct *)destination;
s1 = blah->someint;
s2 = blah->somestring;
您看到的内存将始终包含彼此无法区分的十六进制字节。它就像陶工手中的粘土。
只有工匠才能给它形式。黏土本身永远不能成为雕像或精美的茶壶。
评论
值得注意的是,内存中的结构可能会大于根据源代码的结构,除非在结构的定义中使用了pack,否则它们可能会在内存中对齐,因此会更大。
– Hanan N.
2013年9月15日下午4:16