Я пытаюсь найти способ перезаписать адрес возврата функции, содержащей этот код:
длина = больше целевого размера, но меньше смещения адреса возврата от начала целевого массива.
for (i = 0; i <= length; i++)
target[i] = argument[i];
Аргумент - это то, что я передаю из ввода.
Локальная переменная length достаточно велика, чтобы я мог переполнить аргумент для перезаписи i и length.
Предположим, смещение возвратаадрес от начального адреса цели - 300.
Мне нужно перезаписать i
, чтобы быть некоторым числом, меньшим, чем 300 (0x12c), и length
, чтобы быть некоторым числом, большим, чем 300.
Поскольку это 32-разрядная система, целое число 0x0000012c содержит нулевой символ, поэтому я не могу передать его через аргумент.
Есть ли способ перезаписать адрес возврата в этом случае?