LINUX.ORG.RU

GNU Poke 1.0

 , poke


4

1

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

GNU Poke является консольной утилитой, использующей gnu-библиотеку readline, однако также существует графический интерфейс, созданный с применением Tk/Tcl. Виртуальная машина Poke основана на Jitter.

Релиз GNU Poke 1.0 состоялся 26 февраля 2021 года, разработка продолжалась в течение 3 лет.

Сайт проекта

Исчерпывающее руководство на английском языке

>>> Анонс от команды разработчиков

★★★★★

Проверено: anonymous_incognito ()
Последнее исправление: anonymous_incognito (всего исправлений: 2)

Релиз GNU Poke 1.0 состоялся 26 февраля 2021 года, разработка продолжалась в течение 3 лет.

Авторам никто не рассказал про Kaitai Struct?

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Авторам никто не рассказал про Kaitai Struct?

Софтом на жабе и её деривативах кто-то разве на десктопе пользуется?

mv ★★★★★
()

GNU

Это значит Столлман лично зааппрувил?

Crocodoom ★★★★★
()
Ответ на: комментарий от hobbit

Kaitai не может писать. Он только читает. И скриптование там совсем уж слабое. Для парсинга нехитрых форматов обычно хватает, но не более того

q0tw4 ★★★★
()
Последнее исправление: q0tw4 (всего исправлений: 1)
Ответ на: комментарий от hobbit

Kaitai Struct это больше про другое, он больше про интеграцию бинарных форматов в разные языки программирования, если честно работать с ним больно. более юзабельное будет например okteta под kde или Synalyze It! под mac. Если нужен просто редактор что бы можно было циферки посмотреть и тп то лучше взять https://hexed.it/

anonymous
()

И Патрик тут же добавил этот ваш poke в слаку.

  This looks useful enough to add upon the initial upstream release.
luke ★★★★★
()
Ответ на: комментарий от seiken

обратной разработки

Но уже распространилось и стало общепринятым.

olegd ★★★
()
Последнее исправление: olegd (всего исправлений: 1)

Может ли он работать с потоками бит, не выравненными на границу байта? Есть ли примеры разбора GIF, ZIP и подобных форматов?

Можно ли для dump сделать обработку выводимых в правой колонке символов? Прогонять их через что-то вроде iconv или sed y/…/…/ ? Для наглядности.

question4 ★★★★★
()
Ответ на: комментарий от question4

Может ли он работать с потоками бит, не выравненными на границу байта?

Да. В руководстве это описано начиная с пункта 2.9.

Можно ли для dump сделать обработку выводимых в правой колонке символов? Прогонять их через что-то вроде iconv или sed y/…/…/ ? Для наглядности.

Кажется, простого способа сделать это нет.

Leupold_cat ★★★★★
() автор топика
Последнее исправление: Leupold_cat (всего исправлений: 1)
Ответ на: комментарий от AKonia

А как ещё называть разработку в обратном направлении

Так это не «разработка в обратном направлении». При ней ПО проектируется задом на перед? Производится анализ проблемы в обратном направлении? В обратном направлении происходят обсуждения с заказчиком. Нет, ничего этого в reverse engineering нет. Термин абсолютно убогий, как в прочем частенько бывает в английском языке.

seiken ★★★★★
()
Ответ на: комментарий от Aber

Конкретные примеры можно? И самое главное, каким боком к этим примерам будет то, что скрывается под термином reverse engineering в т.ч. в контексте данной тулзы?

seiken ★★★★★
()
Ответ на: комментарий от AVL2

Деградировать непереходный глагол. Не подходит.

«Деградировать что-то», ну так…

wandrien ★★
()
Ответ на: комментарий от seiken

А как еще, если результат - новое ПО, реализующее данный протокол обмена? Разработка и есть.

AVL2 ★★★★★
()
Ответ на: комментарий от wandrien

Ты не знаешь, что означает термин «обратная разработка»?

Применительно к опен-сурце не знаю, а если закрытое ПО то за квыряние в нем могут и наказать …

mx__ ★★★★★
()
Ответ на: комментарий от mx__

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

Вроде нет такой статьи.

wandrien ★★
()
Ответ на: комментарий от seiken

Нет, просто было:

Высокоуровневый код 
  -> выработка автокода 
  -> сборка + связывание 
  -> двоичный исполнимый файл

Обращение же

двоичный исполнимый файл 
   -> восстановление связей и подразбика на блоки/секции
   -> раскодирование(восстановление автокода) 
   -> выработка высокоуровневого кода/описания логики работы.

Т.е. полностью обратная задача

AKonia ★★
()

Интересный проект. Не совсем понятно зачем им свой язык, но может так надо. С простым TUI было бы ещё удобнее.

xaizek ★★★★★
()
Ответ на: комментарий от seiken

что скрывается под термином reverse engineering

Reverse engineering как термин зародился задолго до ПО.

Конкретные примеры можно?

Представь что сейчас 1946 год и тебе нужно создать реактивный двигатель для истребителя, инета нету, документации в открытом виде тоже, но тебе продали двигатель Rolls-Royce Nene. И тут внезапно нужны инженеры которые в теме, целый отдел инженеров, которые будут тратить время, ресурсы, а на выходе будет только чертежи и документация.

Это тоже инженерия, но в обратном направлении, у нее есть отличия от разработки с нуля. В реверс инженерии практически нет творческого поиска и сомнений в надежности (если ничего не менять), полного понимания как все работает тоже может не быть, например можно в каком-то узле сплав сделать менее тугоплавким (если промышленность не может такое изготовить).

в контексте данной тулзы?

Я так понял тулза слишком узконаправленная на протоколы.

Aber ★★★★★
()
Ответ на: комментарий от Aber

В реверс инженерии практически нет творческого поиска и сомнений в надежности (если ничего не менять),

если ничего не менять

это уже сфероконь.

Стандарты-то разные, материалы, марки стали, например. У того же Туполева, когда «копировали» B29 (вплоть то заплаток и пепельницы) ряд стального проката в США был и есть в дюймах, а у нас метрический. соответственно, проката одинаковой толщины не было в принципе, скопировать просто не вышло бы. По сути, все равно создавали заново.

В ПО если ничего не менять, это значит и реверсить нечего, это просто пиратство, копируй и используй оригинал.

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

это уже сфероконь.

Вот днями посмотрел про МИГ 23 (https://youtu.be/WsHPoQygnVQ?t=302), там говорится что воздухозаборники полная копия с фантома, вплоть до количества дырочек которые служат уменьшению входящего поток воздуха, и даже скопировали ту острую часть которая нужна для посадки на авианосец, для срезания какого-то барьера (to cut the barricade).

Если это так, то выходит полного понимания работы воздухозаборников на 2-х махах не было, просто копировали, надеясь что будет не хуже.

Aber ★★★★★
()
Последнее исправление: Aber (всего исправлений: 1)

Ждём ебилдов^Wоказывается, уже есть.

Какой-то у этой утилитки прям подозрительный стремительный успех, в репозитории дистров с ходу попала. Такое редко бывает. Не иначе коррупция и заговоры! :)

Harald ★★★★★
()

Сабж собирается autotools-ами, хорошая годная программа.

Harald ★★★★★
()
Ответ на: комментарий от Aber

воздухозаборники полная копия с фантома,

Это просто невозможно. Просто потому, что самолеты все равно разные, мощности двигателей разные, массы самолетов, жесткости разные.

Воздухозаборник невозможно снять с одного самолета и поставить на другой. Его надо полностью расчитывать. Могли форму взять за основу? Могли. Могли разгрузить решетку сделать одинаковой? запросто. Но потом все равно расчет, проектирование, продувка и доработка. Полный ниокр. Не выйдет просто копировать.

Если это так, то выходит полного понимания работы воздухозаборников на 2-х махах не было, просто копировали, надеясь что будет не хуже.

А потом понимание само собой снизошло и сделали миг-25 почти на три маха?

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

Но потом все равно расчет, проектирование, продувка и доработка. Полный ниокр. Не выйдет просто копировать.

И скопировали острую кромку которую сделали для разрезания страховочной сетки при аварийной посадке на авианосец.

Наверное каждый кодер хоть раз в жизни да копировал себе непонятный текстовый блоб который делал то что нужно, и каждый же хотел разобраться что там происходит, чтоб написать «по нормальному», но это потом, потому что сейчас тебе менеджер пишет ASAP.
Хоть конечный результат работы логики и покрывался интеграционными тестами понимания это не добавляло.

А потом понимание само собой снизошло и сделали миг-25 почти на три маха?

Потом снизошло т.к. выделили достаточно времени и ресурсов и это уже была нормальная разработка. Нормальная разработка стоит дороже.

Aber ★★★★★
()
Последнее исправление: Aber (всего исправлений: 1)
Ответ на: комментарий от Harald

Возможно, приставка GNU в названии сыграла в этом не последнюю роль.

Leupold_cat ★★★★★
() автор топика
Ответ на: комментарий от Aber

вплоть до количества дырочек которые служат уменьшению входящего поток воздуха

Если загуглить «f-4» «Port intake ramp.» то не похоже что это правда, приврал мужик на видео. Ладно, по самолетам ничего говорить не буду, не эксперт :)

Aber ★★★★★
()
Ответ на: комментарий от mv

Софтом на жабе и её деривативах кто-то разве на десктопе пользуется

Ты код в виме пишешь? Та же идея на яве, нетбинс, эклипс - все на ней

upcFrost ★★★★★
()
Ответ на: комментарий от upcFrost

Ты код в виме пишешь? Та же идея на яве, нетбинс, эклипс - все на ней

Я же седобородый профессионал. В Emacs’е, конечно!

mv ★★★★★
()
Ответ на: комментарий от Aber

И скопировали острую кромку которую сделали для разрезания страховочной сетки при аварийной посадке на авианосец.

почему нет? Если решение удачное, то почему бы его не позаимствовать, если понимаешь что и зачем?

Наверное каждый кодер хоть раз в жизни да копировал себе непонятный текстовый блоб

Ты не путай компьютер, в котором байты абсолютно одинаковые и физический снаряд, который проходит одной геометрией через кучу режимов. Где он там рванет или порвется хрен его знает.

Потом снизошло т.к. выделили достаточно времени и ресурсов и это уже была нормальная разработка. Нормальная разработка стоит дороже.

для этого кадры обучать надо, школу создать. А когда копируют, школа загибается, как загнулась вся электронная и микропроцессорная отрасль СССР.

AVL2 ★★★★★
()
Ответ на: комментарий от upcFrost

на спидах …

.. ты думаешь, что думаешь.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.