Я работаю над инструментом эмуляции в Windows.
При перехвате приложения я столкнулся с ситуацией.
У меня есть структура c ++, которая имеет следующий формат
typedef struct node {
int open;
int version;
const unsigned long long * data;
char* flags;
} _node;
Это дескриптор двоичного файла.Я делаю перехват API и получаю этот указатель из внутреннего вызова API, выполняемого приложением.
Также поле данных в приведенной выше структуре является указателем на экземпляры двух структур, расположенных последовательно.Две структуры:
typedef struct header{
unsigned int open;
unsigned int version;
unsigned long long int length;
} _header;
typedef struct body{
unsigned int v1, v2, v3, v4, v5, v6, v7, v8, v9, v10;
unsigned long long int ll1, ll2;
} _body;
Я могу получить доступ к полю данных и распечатать его следующим образом.
_node* First=(node *)address;//Address is a pointer that i get from intercepting an application
_header* nodeHeader=(_header*)First->data;
char *bodyPtr=(char *)(nodeHeader+1);
_body* nodeBody=(_body *)(bodyPtr);
unsigned long long int offset=0;
while(!(nodeBody->v1 & 1) && offset< nodeHeader->length)
{
nodeBody=(_body*)(bodyPtr+offset);
offset=nodeBody->v2+nodeBody->v3;
}
Я хочу записать экземпляр узла структуры в текстовый файли иметь возможность прочитать его обратно в экземпляр структуры позже.Каков наилучший способ сделать это?Я хочу получить ответ на c ++
Я хочу код на c ++, потому что код, над которым я работаю, находится на языке c ++.Код, который я разместил здесь, имеет typedef, потому что люди, которые написали структуру, написали его на C.
Если бы это помогло, мне нужны эти данные в структуре, чтобы я мог эмулировать приложение с помощью своего инструмента.структуры являются внутренними и скрыты от меня, лучше всего хранить элементы структуры и восстанавливать их позднее (время эмуляции)