Автор Тема: RTHextion: новый hex-редактор для ромхакинга и переводов  (Прочитано 440 раз)

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

Оффлайн road_t

  • Пользователь
  • Сообщений: 8
  • Пол: Мужской
    • Просмотр профиля
Посоны, привет.

Я тут запилил hex-редактор для ромхакинга. Когда-то в начале нулевых я сам использовал Translhextion16c, но где тот траснлхекшн и где нулевые...

Короче, называется он RTHextion (предложения названия получше принимаются) и лежит на гитхабе.

RTHextion доступен на всех основных платформах (под винду на ARM не делал, но если надо – соберем).

Редактор полностью бесплатный и с открытым исходным кодом. Пока выпустил бету версии 2.0.




Скачать можно тут


Буду очень рад предложениям/замечаниям и багрепортам (в идеале сразу в Issues, если есть акк на гитхабе).

З.Ы. Для модеров: надеюсь, что разделом не ошибся, если что – извинитесь  :biggrin:

Оффлайн Беларус учит русский

  • Модератор
  • Сообщений: 1436
    • ВКонтакте
    • Steam
    • Просмотр профиля
Респект за обесцвеченные нули. Не думал обесцветить их и в левой колонке адресов?
Также, не возникала идея добавить киллерфичу - перенос строки на новую в любом месте при нажатии Enter? Ну и добавление отступов Табом и пробелом. Был бы первым таким уникальным хекс-редактром. Я когда-то хотел сделать такой, но пока занят другим.

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2703
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Я пока не дома, запустить не могу. Как он работает с большими файлами (под несколько гигов)? Не глючит?

Оффлайн cl

  • Пользователь
  • Сообщений: 17
    • Просмотр профиля
для ромхакинга это видно, а что здесь тут: для переводов?

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5690
    • Просмотр профиля
Как он работает с большими файлами (под несколько гигов)? Не глючит?
Плохо в v2.0-beta1. Файл грузится полностью в ОЗУ. На 600 МБ у меня уже медленное переключение между байтами, при открытии 4 ГБ (было доступно около 10 ГБ ОЗУ) расширился файл подкачки на несколько ГБ, я принудительно закрыл программу, повторный запуск начал снова открывать файл, пришлось удалять настройки из реестра.
UPD: Для сравнения, 010 Editor после открытия 17 ГБ работает быстро как с маленьким файлом, занимает ОЗУ около 45 МБ.

Оффлайн road_t

  • Пользователь
  • Сообщений: 8
  • Пол: Мужской
    • Просмотр профиля
Респект за обесцвеченные нули. Не думал обесцветить их и в левой колонке адресов?
Цвета практически всего настраиваются, как и ширина адресной области. Реквест отдельной настройки цвета нулей в адресной области записал)

Также, не возникала идея добавить киллерфичу - перенос строки на новую в любом месте при нажатии Enter? Ну и добавление отступов Табом и пробелом. Был бы первым таким уникальным хекс-редактром. Я когда-то хотел сделать такой, но пока занят другим.
Звучит непросто с точки зрения реализации. А профит в чем?

Я пока не дома, запустить не могу. Как он работает с большими файлами (под несколько гигов)? Не глючит?
Попробовал на файле в 21 гиг. Сожрал 300 метров оперативки, но ничего тормозить не начало. Поиск или замены будут, разумеется, медленнее, чем для файла в 2Мб.

для ромхакинга это видно, а что здесь тут: для переводов?
Поиск указателей, поддержка нескольких таблиц перевода (в т.ч. для поиска и замены), импорт/экспорт скриптов (с автоматическим исправлением указателей) и редактирование скриптов на месте.

Выглядит круто :thumbup: правда я еще не попробовал. Интересно, есть ли функции:
-выделять текст в редакторе, а то в translhextion выделяются только байты.
-fill with, то бишь заполнение выделенного любым символом, translhextion умеет
-поддерживает ли таблицы, в которых букве соответствует 2 байта
 0_0, я как раз trinea ковыряю, ты делаешь перевод, или просто ради примера скинул?

– Выделение работает синхронно, можно выделять откуда нравится.
– Fill width добавлю, только нужно придумать, как это делать с точки зрения UX.
– Многобайтовые таблицы RTHextion поддерживает
– Trinea попала в примеры из-за того, что чувак с Romhacking.net пожаловался на некорректную работу предыдущего пункта))

Плохо в v2.0-beta1. Файл грузится полностью в ОЗУ. На 600 МБ у меня уже медленное переключение между байтами, при открытии 4 ГБ (было доступно около 10 ГБ ОЗУ) расширился файл подкачки на несколько ГБ, я принудительно закрыл программу, повторный запуск начал снова открывать файл, пришлось удалять настройки из реестра.
UPD: Для сравнения, 010 Editor после открытия 17 ГБ работает быстро как с маленьким файлом, занимает ОЗУ около 45 МБ.

Тут нужны детали. Какая ОС и сколько ОЗУ. Я сейчас спецом открыл кроме вышеупомянутого файла на 21Гб еще один на 3.7 и оперативки съедено всего 509 метров. Но месседж принял, постараюсь оптимизировать работу с большими файлами.

З.Ы. 010 editor у меня сожрал 200Мб только на этот один файл.

Оффлайн lupus

  • Пользователь
  • Сообщений: 3859
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
Ещё не смотрел, но было бы интересно, как это умеет translhextion mod от чифнета:
1. Scan relative с возможностью составления таблицы кодировки по найденному
2. Поиск/скан с интервалом в указанное количество байт
3. Само собой, работа с таблицами 1-2 байта на символ

Оффлайн road_t

  • Пользователь
  • Сообщений: 8
  • Пол: Мужской
    • Просмотр профиля
Ещё не смотрел, но было бы интересно, как это умеет translhextion mod от чифнета:
1. Scan relative с возможностью составления таблицы кодировки по найденному
2. Поиск/скан с интервалом в указанное количество байт
3. Само собой, работа с таблицами 1-2 байта на символ
1. Умеет.
2. В планах. Буду благодарен, если опишешь, как это должно, по-твоему, выглядеть.
3. Умеет.
« Последнее редактирование: Вчера в 19:37:58 от road_t »

Оффлайн lupus

  • Пользователь
  • Сообщений: 3859
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
1. Умеет.
2. В планах. Буду благодарен, если опишешь, как это должно, по-твоему, выглядеть.
3. Умеет.
На сайте чифнета есть мод translhextion. Он имеет опцию search interval, где выбирается количество байт, которые могут быть между искомыми символами.
Нужно один раз попробовать, наверное.
В ромах для GB, например, я таким образом некоторые строки находил.

Оффлайн road_t

  • Пользователь
  • Сообщений: 8
  • Пол: Мужской
    • Просмотр профиля
На сайте чифнета есть мод translhextion. Он имеет опцию search interval, где выбирается количество байт, которые могут быть между искомыми символами.
Нужно один раз попробовать, наверное.
В ромах для GB, например, я таким образом некоторые строки находил.
Не, смысл я понимаю, но сходу не могу придумать, как это выглядеть должно.

Эх, когда-то я неплохо поработал над Translhextion, исправил почти все баги и добавил пару функций... но был молодой и глупый и исходники никуда не загрузил. Они, соответственно, не сохранились(

Оффлайн Беларус учит русский

  • Модератор
  • Сообщений: 1436
    • ВКонтакте
    • Steam
    • Просмотр профиля
настройки цвета нулей в адресной области
Наверно понятно, што все нули в ряд слева у адреса, не внутренние.

Звучит непросто с точки зрения реализации. А профит в чем?
Ага, непросто. Зато хекс можно привести в человеческий вид. Вот пример:

А вот он же, но только с переходами на новую строку и пробелами:

Сразу виден паттэрн.

исходники никуда не загрузил. Они, соответственно, не сохранились(
Этот редактр прям проклят - Марат вот тоже потерял исходники со своими наработками прямо во время активной разработки.

Оффлайн road_t

  • Пользователь
  • Сообщений: 8
  • Пол: Мужской
    • Просмотр профиля
Так, я выложил beta 2 с кое-какими апдейтами, включая:
  • настройку цвета нулей в адресной области
  • Функцию 'Fill with' (только щас понял, что забыл переводы, в т.ч. и на русский)
  • Немного поигрался с механизмом загрузки файлов, вроде большие теперь обрабатываются без тормозов

Ага, непросто. Зато хекс можно привести в человеческий вид.
я собирался сделать разбиение на секции с навигацией и цветной подсветкой... но над твоей идеей я подумаю. Отрисовка, особенно на больших файлах может стать лютым геморроем  :wacko:


Этот редактр прям проклят - Марат вот тоже потерял исходники со своими наработками прямо во время активной разработки.
Блин, я пытался чуваку по имени Брайан Бенневиц написать на линкдине, но там вылетает ошибка  0_0

Оффлайн Беларус учит русский

  • Модератор
  • Сообщений: 1436
    • ВКонтакте
    • Steam
    • Просмотр профиля
настройку цвета нулей в адресной области
Быстро ты, но я лиш спросил о твоих мыслях-идеях - необязательно реализовывать то, што я спросил ;)
Тем более, если идея тебе не нравитса (цвет у нулей адреса по умолчанию не как у нулей хекса).

При первом запуске - малюсенькое окно, но это ладно. При каждом новом запуске окно не на весь экран (Win11, FullHD), приходитса раскрывать на полную - так и задумано? У меня такое странное поведение из всех програм на ПК только у Макса.

Тот массив значений в спойлере, который кидал тебе до этово - сохранил ево в блокноте, открыл этот текстфайл в твоём редактре, потыкал наугад нули и сохранил. Теперь в блокноте вместо значений - иероглифы. Тоже так должно быть? :)

Оффлайн road_t

  • Пользователь
  • Сообщений: 8
  • Пол: Мужской
    • Просмотр профиля
цвет у нулей адреса по умолчанию не как у нулей хекса
Я решил поведение стандартное не менять. Думаешь, лучше по дефолту сразу их делать менее контрастными?

При первом запуске - малюсенькое окно, но это ладно. При каждом новом запуске окно не на весь экран (Win11, FullHD), приходитса раскрывать на полную - так и задумано?
О как. Надо на винде проверить, я там еще ни разу не запускал.

У меня такое странное поведение из всех програм на ПК только у Макса.
а вот щас обидно было  :cry:


Тот массив значений в спойлере, который кидал тебе до этово - сохранил ево в блокноте, открыл этот текстфайл в твоём редактре, потыкал наугад нули и сохранил. Теперь в блокноте вместо значений - иероглифы. Тоже так должно быть?
Тут бы поподробнее. В идеале – оригинальный файл и проект, чтобы видеть изменения. Ну и интересно, в какой кодировке он у тебя открывается при запуске (видно в строке состояния).

Оффлайн Беларус учит русский

  • Модератор
  • Сообщений: 1436
    • ВКонтакте
    • Steam
    • Просмотр профиля
Думаешь, лучше по дефолту сразу их делать менее контрастными?
Думаю, што единообразие всегда хорошо. А то "тут делаю, а тут не делаю" - это странно ;)

а вот щас обидно было
Извини, по другому никак :biggrin:
Теперь мне понятно, што разрабы Макса не сидят на Винде. Они или как ты на Маках, или на Линуксе, поэтому десктопная версия такая корявая.

Тут бы поподробнее
В блокноте Win11 сохраняю как UTF-8. Твой редактр внизу пишет ASCII. При пересохранении ничево не меняетса, а вот если какой-нибудь байт изменить на ноль, то сохранит как UTF-16 LE.

Оффлайн ndivision

  • Пользователь
  • Сообщений: 230
  • Пол: Мужской
    • Просмотр профиля
road_t, Шикарно! Буду разбираться с таким замечательным инструментом. И благо что под не последними версиями macOS - с виду работает нормально.
Благодарю! И буду обязательно следить за развитием проекта.

Оффлайн road_t

  • Пользователь
  • Сообщений: 8
  • Пол: Мужской
    • Просмотр профиля
В блокноте Win11 сохраняю как UTF-8. Твой редактр внизу пишет ASCII.
вот если какой-нибудь байт изменить на ноль, то сохранит как UTF-16 LE.
Ну скинь файлы. А то пока звучит, как будто это проблема блокнота, который пытается определить кодировку и не понимает, что это такое ты сделал.

road_t, Шикарно! Буду разбираться с таким замечательным инструментом. И благо что под не последними версиями macOS - с виду работает нормально.
Благодарю! И буду обязательно следить за развитием проекта.
Спасибо, замечания и предложения приветствуются  :)

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

Оффлайн Беларус учит русский

  • Модератор
  • Сообщений: 1436
    • ВКонтакте
    • Steam
    • Просмотр профиля
Вот. Учитывая глючность Win11, проблема действительно может быть в Блокноте.

Оффлайн road_t

  • Пользователь
  • Сообщений: 8
  • Пол: Мужской
    • Просмотр профиля
Win11 – горе в семье  :debile:
Ну, может 12 будет приемлемой.
Но тут дело не в ней, конечно. Блокнот, скорее всего, со времен XP не менялся особо. Он пытается кодировку определить по разным маркерам (если нет BOM). Собственно, RTHextion тоже пытается и тоже с переменным успехом. Реально дело непростое.