Pull to refresh

Comments 13

Вторая ссылка (платформа VR) ведёт на "todo". Желательно исправить.

Гидра умеет разные форматы, но вот HEX не умеет,

Странно, неоднократно загружал HEX, он значительно более информативен, чем BIN. Имеется в виду Intel HEX https://ru.wikipedia.org/wiki/Intel_HEX.

Просто процитирую вики:

Достоинством формата (в отличие от простого двоичного) является возможность указывать только определённые области адресов (с точностью до байта). Многие микроконтроллерные архитектуры имеют несколько областей программирования с обширными пустотами в адресации между ними.

Он позволяет загружать меньше "мусора".

А в целом, конечно, грандиозная работа (и проделана и описана!..)

Просто делаем Импорт файла (File -> Import...), далее выбираем свой hex-файл и появится диалог, в котором у кажете Language и всё, как обычно...

Метрическая сила...!

Меня вот это смутило - отсутствие тут *.hex.

Да, если выбрать hex файл, тогда он даёт выбор:


Теперь смогу сэкономить 5 секунд в следующий раз :)

p.s.: пойду отправлю пулреквесть :)

Тут не только экономия времени, возможно более точное описание блоков памяти: не обязательно вся память в bin файле была заполнена/использована, тогда возможно определить промежутки и не использовать их или задать что-то типа "bss".

Да, разумеется я заметил дырку (там вначале код, потом дыра под стандартную либу, потом дыра под конфигурацию и в конце немного параметров настройки прошивки)...

Кстати, может, я так же не заметил генерацию патч-файла, как в IDA есть? :) а то заниматься экспортом и диффингом немного устаёт.

Так что с чем надо сравнивать? С какой целью?

Вроде в Ghidra есть мощный аппарат для сравнения разных вариантов. Смотри в хелпе "Program Differences", там много что написано. Тем более, что у Ghidra в отличие от IDA чуть ли не изначально предполагается возможность одновременной работы над одним проектом нескольких особей. А результаты надо уметь сливать в одну кучку... Опять же встроенная система версий...

У Ghidra иногда совсем другие подходы по решению проблем, чем, например "традиционные".

Эквивалент IDAшного "File=>Produce file=>Create dif file", где сохраняется результат редактирования образа в базе данных.

Гидра вообще, если я редактирую через memory -- подсвечивает синеньким что я менял. Если редактирую через ассемблер -- нет. В итоге надо помнить где что менял, либо экспортить весь бинарь и сравнивать потом. И то и то -- неудобственько.

Есть вероятность, что уже существует скрипт, который делает эту операцию:

  • он может быть в составе уже имеющегося штатного комплекта.

  • он может быть в составе какой-нибудь коллекции скриптов в инете (стоит поискать/поспрашивать на форумах). Допускаю, что их должно быть изрядное количество, хотя сам ничего специально не искал пока.

  • есть подозрение, что всё это может быть написано в пределах десятка операторов на Python.

Кстати, да, порой у Ghidra очень забавный интерфейс и обработка событий!. Сам до некоторых операций никак дойти не могу, хотя в IDA они тривиальны...

Sign up to leave a comment.

Articles