Коллекция коммунальных услуг, связанных с PWN/CTF для Ghidra
Эта утилита попытается заменить известные константы в функциях на их читаемого аналога человека.

Эта утилита попытается найти и определить системные вызовы (и аргументы).
Аннотация в представлении декомпилятора
Аргументы аннотируются в взгляде на разборку
Правильный рабочий процесс для преобразования отображаемых данных в операнде состоит в том, чтобы щелкнуть правой кнопкой мыши значение и выбрать тип преобразования под Convert подменю, однако по запросу я сделал скрипт для преобразования типа дисплея операндов, чтобы его можно было использовать с сочетание клавиш для char (стиль IDA).
Чтобы использовать его, выберите опцию In Tool сценария UtilitiesConvertCharacter.py , а затем выберите цифровой операнд и нажмите shift+r чтобы преобразовать в строку. Вы можете изменить ярлык, редактируя линию, которая содержит комментарий с keybinding в верхней части сценария.
Одна раздражающая разница между Ghidra и IDA заключается в том, что Ghidra не пытается прыгнуть в main() (или точку входа), когда вы загружаете бинарный. Сценарий UtilitiesGotoMain.py стремится исправить это. Запустите его напрямую или, если интегрируется с In Tool , нажмите ctrl + m , и он попытается динамически найти main() и перемещать фокус на эту функцию.
Если не обнаружена функция main() , она перейдет к функции входа. Если вы запустите на разряженном двоичном файле, он переименован в main функцию для вас.
Клонировать репозиторий или загрузить и извлечь где -нибудь. В Ghidra откройте Script Manager ( Window -> Script Manager ). Нажмите кнопку Script Directory и добавьте в список pwndra/scripts .
Как только каталог сценария добавлен в Ghidra, вы можете найти сценарии в категории Pwn . Вы можете запустить сценарии непосредственно из Script Manager если хотите, но сценарии также имеют меню и сочетания клавиш для простоты использования. Чтобы активировать меню и ярлыки, вы должны нажать в флажке In Tool рядом со сценариями, которые вы хотите интегрировать в инструмент.
Если вы нажали In Tool меню будет Analysis -> Pwn , а любые ярлыки для сценариев перечислены в пункте меню, в котором используется этот ярлык.
Доступно несколько фронта:
Вы можете либо запустить один из этих сценариев Frontend напрямую (через Script Manager , либо, если вы нажали In Tool вы можете получить доступ к меню; Analysis -> Pwn -> Tool Name ).
Существует Auto фронт, который автоматически обнаружит текущую загруженную программу для вас. Это также можно получить с помощью сочетания клавиатуры, который указан в элементе меню для инструмента.
Сценарии имеют два режима работы, по умолчанию работают глобально, второе - работать только на данном выборе. Это полезно для тех времен, когда у вас есть два двоичных режима, переплетенных в одном и том же коде, таких как i386 / amd64 или thumb / arm .