При инъекции DLL важно учитывать архитектуру целевой системы, потому что локально загруженная библиотека DLL, скопированная в удалённый процесс, должна занимать те же адреса, что и в процессе внедрения. 3 Для этого необходимо выделить память для того же диапазона адресов, который был занят ранее в процессе внедрения. 3
Также учёт архитектуры системы важен, например, при загрузке внедряемой библиотеки в 32-битный процесс в 64-битных версиях Windows, так как нужно учитывать особенности функционирования 32-битных процессов в среде WOW64. 1
Ещё одна причина учитывать архитектуру системы при инъекции DLL — наличие предпочтительных адресов загрузки у библиотек DLL. 3 Некоторые библиотеки DLL, например kernel32.dll, надёжно загружаются на ранних этапах, когда адресное пространство процесса занято исполняемым образом и зависящими от него библиотеками DLL. 3 Обычно они имеют надёжные и неконфликтные адреса. 3