Автор Тема: Byte Juggler  (Прочитано 2067 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8065
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Byte Juggler
« : 18 Июнь 2021, 10:47:50 »


Данная программа позволяет производить наиболее популярные операции с байтами в автоматическом режиме (перастановка, замена, логические действия, сдвиг и т.д.). Выходному файлу присваивается новое расширение, которое является кодом выполненной операции (номер вкладки + номер действия).
« Последнее редактирование: 22 Июнь 2021, 10:12:35 от paul_met »

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Byte Juggler
« Ответ #1 : 18 Июнь 2021, 13:54:44 »
Будет ли этот софт расти до Translhextion в плане хекс-редактирования?

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8065
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Byte Juggler
« Ответ #2 : 18 Июнь 2021, 14:50:06 »
Будет ли этот софт расти до Translhextion в плане хекс-редактирования?
Нет, это же прога для автоматической правки блока байт без надобности ковыряться вручную.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4971
    • Просмотр профиля
Byte Juggler
« Ответ #3 : 18 Июнь 2021, 15:42:52 »
Такие операции было бы неплохо видеть в HEX-редакторе, возможно есть похожие плагины.
Как улучшение программы я вижу так (приближается к HEX-редактору):
* Возможность вставки HEX текста из буфера обмена, вместо файла, и получение результата также. Это позволит работать одновременно с HEX-редактором, вырезая отдельные куски. Будет как внешний плагин.
* Добавить произвольный код с пресетами в виде существующих операций. Все операции записываются в виде C-подобного кода довольно просто, а найти примитивный парсер должно быть не сложно, что позволит добавлять свои операции. Хотя здесь уже проще свой скрипт на Python написать.
* Задание промежутка обработка и другие условия в дополнение к произвольному коду операций.
* Предпросмотр изменений в виде HEX.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9364
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Byte Juggler
« Ответ #4 : 18 Июнь 2021, 16:07:04 »
Такие операции было бы неплохо видеть в HEX-редакторе
такое устроит ? штатная фича WinHEX, думаю в других тоже есть


Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Byte Juggler
« Ответ #5 : 18 Июнь 2021, 16:10:36 »
WinHEX неповоротливый и жутко неудобный. В остальных редакторах такого не было, кроме разве что Hex Workshop, который сто лет не обновлялся.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9364
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Byte Juggler
« Ответ #6 : 18 Июнь 2021, 16:13:30 »
WinHEX неповоротливый и жутко неудобный
чем и почему ? первый раз такое слышу

"неудобный" он разве что своей платностью

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Byte Juggler
« Ответ #7 : 18 Июнь 2021, 16:20:05 »
чем и почему ? первый раз такое слышу

"неудобный" он разве что своей платностью
После перехода с Hex Workshop и того же HxD на него ощутил себя беспомощным:) Неповоротливость в операциях - его основной минус, также - то, что выделение остаётся после выделения.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9364
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Byte Juggler
« Ответ #8 : 18 Июнь 2021, 16:30:18 »
DrMefistO, ну не знаю, WinHEX обычный "олдскульный" редактор с совершенно типичным набором фич, так что это имхо скорее дело привычки ;)

из современных навороченных "хексредакоторов" заточенных под реверс и анализ данных я бы посоветовал обратить внимание например на этот - https://github.com/WerWolv/ImHex
набор фич и наворотов очень впечатляет

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8065
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Byte Juggler
« Ответ #9 : 18 Июнь 2021, 16:51:55 »
Такие операции было бы неплохо видеть в HEX-редакторе, возможно есть похожие плагины.
Как улучшение программы я вижу так (приближается к HEX-редактору):
* Возможность вставки HEX текста из буфера обмена, вместо файла, и получение результата также. Это позволит работать одновременно с HEX-редактором, вырезая отдельные куски. Будет как внешний плагин.
* Добавить произвольный код с пресетами в виде существующих операций. Все операции записываются в виде C-подобного кода довольно просто, а найти примитивный парсер должно быть не сложно, что позволит добавлять свои операции. Хотя здесь уже проще свой скрипт на Python написать.
* Задание промежутка обработка и другие условия в дополнение к произвольному коду операций.
* Предпросмотр изменений в виде HEX.
Я не владею ни Сишкой, ни Питоном. Прогу я планировал лишь как дополнение к хекс редакторам, коих великое множество. Делать очередной хекс редактор смысла особого не вижу. То же вышеупомянутый WinHex  весьма хорош, но ему как раз не хватает всяких стандартных и не очень мелочей.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1136
    • ВКонтакте
    • Steam
    • Просмотр профиля
Byte Juggler
« Ответ #10 : 18 Июнь 2021, 20:55:14 »
чем и почему ? первый раз такое слышу
-почему нельзя просто выделить и скопировать из хекс окна с Ctrl+C? (но - это бич многих хекс-редакторов). Зато можно легко вставлять :neznayu:
-с выделением беда, надо привыкать, да. Вроде бы должно быть просто выделять и "оцветнять", но это целая наука. Строки одного цвета рядом не объединяются. Можно случайно оцветнить внутри цветного и он будет не виден. Как убрать цвет? Не нашёл, поэтому приходится менять длину на 0.
-у меня пропало ASCII-представление - как вернуть? В меню есть только Hex Display Only и Text Display Only.
-в строку поиска строки можно вставить только около 140 символов, узнал совершенно случайно. Никак не предупреждает, что обрезает вставленное и ищет неправильно.

В остальном хорош, лучше многих других.

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24588
    • Просмотр профиля
Byte Juggler
« Ответ #11 : 18 Июнь 2021, 21:24:13 »
-почему нельзя просто выделить и скопировать из хекс окна с Ctrl+C?
Потому что можно

-с выделением беда, надо привыкать, да.
Правой кнопкой Начало блока, Конец блока. Просто беда. Плюс через определение блока можно задать адреса начала и конца, от начала файла, до конца, размер блока...

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1136
    • ВКонтакте
    • Steam
    • Просмотр профиля
Byte Juggler
« Ответ #12 : 18 Июнь 2021, 23:37:42 »
Имел в виду, из области хекса, не области ASCII. Приходится Ctrl + Shift + C.

Про выделение - внутри оцветнённого выделяешь отрезок, назначаешь другой цвет, и цвет назначается всей цветной области, не выделению :ohmy:.
Т.е. надо вызывать контекстное меню вне области выделения и вне цветной области, внутри которой и выделено - гениально :facepalm:
Или кликнул по байту, хочешь ему установить цвет, а оцветняется выделение где-то за экраном, о котором ты уже и забыл, или его прикрыло другой цветной областью.
И как убрать цвет вообще, в итоге? Назначая длину в ноль?

Короче, идеального хекс-редактора нет, и приходится держать несколько.
Жаль, что доработка Translhextion Марата накрылась :(

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8065
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Byte Juggler
« Ответ #13 : 18 Июнь 2021, 23:58:22 »
Имел в виду, из области хекса, не области ASCII. Приходится Ctrl + Shift + C.
Потому, что выделение происходит синхронно (хекс значения и текст). Чтобы различать что именно пользователь хочет скопировать (не скакать лишний раз TAB'ом туда-сюда), используются разные комбинации кнопок. По мне, так всё логично.

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24588
    • Просмотр профиля
Byte Juggler
« Ответ #14 : 19 Июнь 2021, 00:05:23 »
По моему тоже. Это же не текстовый редактор
Про манипуляции с цветами вообще ничего не понял :-\

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1136
    • ВКонтакте
    • Steam
    • Просмотр профиля
Byte Juggler
« Ответ #15 : 19 Июнь 2021, 00:30:47 »
Чтобы различать что именно пользователь хочет скопировать
достаточно запомнить, в какой области пользователь выделял :)

P.S.: Проверил в Hex Workshop - так и работает, оказывается. Вот что значит так естественно, что даже незаметно.
Забавно, но зато проблема уже с копированием через меню - не учитывается над чем находится курсор и копируется что было выделено изначально.

с цветами вообще ничего не понял
Выдели отрезок, назначь цвет. Выдели внутри него отрезок поменьше - попробуй назначить цвет. Цвет изменится у большого отрезка. Чтобы изменить цвет именно у выделенного внутреннего надо контекстное меню вызывать вне этого большого отрезка. А если всё вокруг уже в цветах, то над чем вызывать контекстное меню? Над ASCII полем или Offset? Меню появится, но нажатие на Add Annotation ничего не даст! ;)
Т.е. выделение почему-то не имеет приоритета перед цветным отрезком.
« Последнее редактирование: 19 Июнь 2021, 00:41:44 от perfect_genius »

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4413
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Byte Juggler
« Ответ #16 : 19 Июнь 2021, 01:18:34 »
Если не секрет, то куда нужно добавлять/убавлять 15-ый бит? Что за архитектуры такие 14-ти и 15-ти битные?

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1136
    • ВКонтакте
    • Steam
    • Просмотр профиля
Byte Juggler
« Ответ #17 : 19 Июнь 2021, 01:45:20 »
Скорее всего, 15 - это отсчёт от нуля, поэтому шестнадцатый. И меняется знак числа.

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4413
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Byte Juggler
« Ответ #18 : 19 Июнь 2021, 02:35:32 »
perfect_genius,
ну, на скриншоте виден порядковый суффикс "th", а подсчёт не ведётся с ноля. Может быть оффсет 0, но байт там будет первый.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8065
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Byte Juggler
« Ответ #19 : 19 Июнь 2021, 08:11:20 »
Если не секрет, то куда нужно добавлять/убавлять 15-ый бит? Что за архитектуры такие 14-ти и 15-ти битные?
15-й бит - это первый бит слева в Word значениях (15,14,13...0). У меня возникла такая необходимость, когда столкнулся с полупрозрачностью в непалитровых изображениях. Другими словами - это MSB.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9364
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Byte Juggler
« Ответ #20 : 19 Июнь 2021, 11:33:29 »
paul_met, тогда стоит исправить на 16th, как выше отметил Yoti, нумерация аля "1й" "2й" ... "16й" бит (почти) никогда не ведется от нуля

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8065
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Byte Juggler
« Ответ #21 : 19 Июнь 2021, 11:53:22 »
paul_met, тогда стоит исправить на 16th, как выше отметил Yoti, нумерация аля "1й" "2й" ... "16й" бит (почти) никогда не ведется от нуля
Я наоборот не встречал ,чтобы нумерация велась с 1. В доках по процам, в хекс редакторах, в массивах и т.д. нумерация всегда ведётся с нуля. Да даже банально взять стандартный калькулятор винды в режиме программист.


Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9364
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Byte Juggler
« Ответ #22 : 19 Июнь 2021, 13:31:44 »
paul_met, еще раз перечитай сообщение Yoti, но вдумчиво
если не дошло еще и я повторю:
- нумерация типа "бит [номер] 1/2/16/итп" обычно ведется с нуля
- нумерация типа "1й/2й/16й бит" обычно ведется с единицы

то есть "1й бит" = "бит 0", "15й бит" = "бит 14" итп

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4413
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Byte Juggler
« Ответ #23 : 19 Июнь 2021, 14:42:43 »
Да даже банально взять стандартный калькулятор винды в режиме программист.
Тут указан оффсет, а не порядковый номер. Просто написано не совсем верно. А ещё, я так понимаю, операции должны быть типа "set" (задать 1) и "clear" (задать 0). Удаление уменьшает кортеж на один элемент, а добавление - увеличивает.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8065
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Byte Juggler
« Ответ #24 : 19 Июнь 2021, 15:37:44 »
MetalliC, тогда будет бит №15.
Yoti, На счёт формулировку set / clear соглашусь.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Byte Juggler
« Ответ #25 : 19 Июнь 2021, 22:54:36 »
А меня вот 15th не смутило. Очень даже понятно, что имелось в виду. Смутило бы "Add 16th".

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4413
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Byte Juggler
« Ответ #26 : 20 Июнь 2021, 14:12:32 »
Смутило бы "Add 16th".
Потому, что порядковый счёт ведётся с единицы. И 15-ый будет предпоследним среди 16-ти. Ты просто погугли порядковые суффиксы в английском языке на предмет оного у ноля)

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8065
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Byte Juggler
« Ответ #27 : 22 Июнь 2021, 10:13:22 »
Изменения в версии 1.1:
  • Добавлен индикатор прогресса;
  • Добавлена возможность выбрать диапазон обработки;
http://www.emu-land.net/forum/index.php/topic,85753.msg1500259.html#msg1500259

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1583
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
Byte Juggler
« Ответ #28 : 22 Июнь 2021, 10:39:29 »
Для популярных операций(reverse, logic, shift), неплохо было бы добавить вычисления в окне.  ::)

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8065
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Byte Juggler
« Ответ #29 : 22 Июнь 2021, 10:47:17 »
Для популярных операций(reverse, logic, shift), неплохо было бы добавить вычисления в окне.  ::)
Есть же калькулятор программиста для этого.