Я работаю над разрушением стека в ARM, и у меня есть буфер, объявленный как:
char buff [12];
в моем коде.
Для того, чтобы найти место, где P C перезаписывается в GDB. Я пишу
AAAABBBBCCCCDDDDEEEEFFFF в буфер
Я ожидал, что D DDD перезапишет FP (r11) как 0x44444444 (и он выполняется правильно), но P C был переопределен с 0x45454544 ( вместо 0x45454545 )
Есть ли у кого-нибудь идея почему последний байт D (44) вместо E (45)? Я пробовал более длинный ввод, но значение в P C всегда падает на несколько битов.
Снимок экрана вывода GDB