Можете ли вы перевести данные стека? Каковы данные?

Я хочу знать, как перевести данные в стек. Мы можем видеть данные вроде: 0x80808080, но имеет ли это смысл? Какие части чисел означают что-то другое? И что означает «0x»?

Главное, что я хочу знать, – как организованы данные. Я знаю, как работают push и pop, но я не понимаю таких вещей, как:

(gdb) x/300wx 0xbffff155 0xbffff155: 0x80808080 0x80808080 0xbffff355: 0x80808080 0x80808080 

Что означает каждая часть? ^ Я знаю, что r = 4 w = 2 x = 1 & – = 0

  • ptrace: операция не допускается при присоединении к процессу зомби
  • Использование gdb для проверки переменных среды
  • Как скомпилировать ядро ​​Linux и отладить с помощью gcc и BOCHS?
  • Модуль Linux Kernel Удаленная отладка с GDB + KGDB, удаленный ответ «g» пакет слишком длинный
  • Conque-GDB in vim: как установить размер
  • gdb set overwrite logging on должен перезаписать gdb.txt правильно?
  • Запустить программу с более низкой скоростью процессора?
  • Как вы можете комментировать информацию о клубе ELF в Linux?
  • One Solution collect form web for “Можете ли вы перевести данные стека? Каковы данные?”

    0x – очень распространенный префикс для чисел, написанных в шестнадцатеричном виде, т.е. в базе 16.

    x – команда GDB для отображения содержимого части памяти. Цифры и буквы после / указывают, что печатать: 300 слов ( w ), в шестнадцатеричном формате ( x ). После этого номер будет адресом для начала печати.

    «R = 4 w = 2 x = 1» относится к числовым и символическим представлениям разрешений Unix-файлов и не имеет абсолютно никакого отношения к этому.

    Печать случайной части памяти процесса не приводит к каким-либо полезным данным. Если у вас есть исходный код и двоичный код, построенный с помощью отладочных символов, отладчик может сообщить вам, на каком адресе хранится каждая переменная в программе; это дает информацию о данных в стеке, но не в памяти, которая распределяется динамически. Если у вас нет источника, то вы выполняете обратное проектирование, что намного сложнее, чем отладка.

    Значение данных, то есть то, что представляют данные в переменной, не то, что компьютер может вам рассказать.

    Понимание данных, показанных отладчиком, в общем, требует некоторого опыта программирования. Значение этих данных полностью зависит от программы, нет общих соображений. Не погружаясь глубоко в конкретную программу и способ ее компиляции, это всего лишь куча чисел.

    Interesting Posts

    Почему mail-utils / cron отправляет так много писем?

    Убийство всех скриптов python, за исключением процесса grep и конкретного скрипта python

    Замените несколько пробелов одним, используя только «tr»

    Запускайте задание cron каждую минуту, имея в виду синтаксис

    Установите цвет активной вкладки tmux

    Как можно перечитать образ с dd, чтобы он соответствовал тому, который вы только что написали?

    Размещение двоичных файлов ядра и источников для создания модуля ядра?

    Ограничение поддержки символов ZSH, поддерживающее повторение?

    Задача Cron не срабатывает после изменения часового пояса

    `apt update` не удалось выполнить в Debian Linux

    Предупреждения о файловых системах только для чтения при установке пакета solaris

    используя команды grep и wc для решения проблемы

    Соответствие гексадецималов с gawk

    Однострочный трафик SCP для загрузки файла в конце строки

    Добавьте строку под каждой строкой, соответствующей шаблону, только если она уже отсутствует

    Linux и Unix - лучшая ОС в мире.