Задать вопрос
Ответы пользователя по тегу Assembler
  • Почему не работает Buffer Overflow в C?

    @DancingOnWater
    По ходу это как-то связано с 64битностью системы.

    P.S. хотя я не понимаю, почему мы должны перепрыгнуть инструкцию. Область инструкций и область данных - две совершенные разные области в памяти

    Блин туплю. На стеке внутри функции 1указатель + 10 чаров + 5 чаров + 3инта + указатель адреса выхода.

    В случае 32-битной системы тебе нужно отмотать 3 инта(*4 байта = 12) и попасть на указатель выхода. В 32 битной системе его размерность тоже 4 байта (и вот здесь я пока не понимаю, почему мы меняем на +8 в примере), в 64 битной его размер = 8.
    Черт, совсем забыл про разную длину инструкций в x86
    Ответ написан