Я рефлекторно внедряю dll в память других процессов, и мне нужно явно вызвать CreateThread ().Я передаю определенные параметры в DLL, которую я внедряю, используя мою структуру loader_data.У меня есть определенные переменные, которые мне нужно передать, такие как размеры порции памяти и т. Д. Все они успешно доставляются в мою введенную dll, однако при передаче char * в мою структуру она оказывается пустой для моей введенной dll в зарезервированнойпараметр DllMain.
loader_data_t *parameter = new loader_data_t();
... initialize variables.
lpRemoteLibraryBuffer3 = VirtualAllocEx(proc, NULL, sizeof(loader_data_t), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(proc, lpRemoteLibraryBuffer3, parameter, sizeof(loader_data_t), NULL);
Вот как я выделяю пространство для параметра.
typedef struct loader_data_t {
char *chunk;
int chunk_size;
ULONG_PTR reloc_address;
};
И это структура, которую я передаю.Я определенно инициализирую это правильно, я проверил, чтобы убедиться, что все настроено правильно.Однако когда он передается зарезервированному параметру в DllMain, все остальные переменные верны, кроме переменной char * chunk.Я действительно запутался, извините за возможно смутное название.