Компилляция под 86 & 64 — C++? Приветствую, нашёл исходник который делает инжект dll в адресное пространство, мне надо чтобы я мог свой код выводить на экран запущенной программы. Но столкнулся с такой проблемой, что скомпиллировал свой основной код программы под x32 и работает он как под 64 так и под 32 битными системами. Так почему же эта программа работает только 32, если под 32 скомпиллена, и только 64 под 64 компиллером. Можно ли эту программу скомпиллировать таким образом, чтобы работало и под 32 и 64, если нет, каким образом сделать обработку из единого приложения?
P.S. Я так думаю что эти приложения требуют определенную битность из-за работы с памятью, но это лишь моё предположение.
Code: https://github.com/stephenfewer/ReflectiveDLLInjection

21 Авг 2019 в 06:30
235 +1
0
Ответы
1

Да, вы правы, компиляция под разные битности (32-bit и 64-bit) требует настройки определенных параметров, таких как размер указателей и многих других внутренних деталей.

Для того чтобы ваша программа работала как под 32-bit, так и под 64-bit системами, вам необходимо создать две отдельные версии вашего приложения - одну для 32-bit и другую для 64-bit. Внутри кода программы можете использовать директивы препроцессора для определения, под какую битность происходит компиляция, и соответственно выполнять нужные действия.

Например, вы можете использовать условные компиляции в своем коде, чтобы определить, какая версия компиляции выполняется:

#ifdef _WIN64
// код для 64-bit компиляции
#else
// код для 32-bit компиляции
#endif

Таким образом, вы сможете создать универсальное приложение, которое будет работать как на 32-bit, так и на 64-bit системах.

Однако в случае инжекции DLL в адресное пространство другого процесса, вам нужно учитывать битность целевого процесса и компилировать вашу DLL соответственно. То есть вам потребуется создать две версии DLL – одну 32-bit и другую 64-bit для их инжекции в соответствующие процессы.

20 Апр в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 718 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир