1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

exerus - утилита для перевода текста в exe и прочего

Тема в разделе "Мастерская", создана пользователем sanctuarydaemon, 30 ноя 2016.

  1. sanctuarydaemon

    sanctuarydaemon

    Регистрация:
    11 фев 2014
    Сообщения:
    52
    Доморощенная утилита для извлечения и изменения ANSI текста в exe и dll (другие файлы тоже может зацепить).
    Для пассивной помощи в переводе стареньких игр.


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

    exerus.jpg
    Описание какое-то хоть
     

    Вложения:

    Последнее редактирование: 29 дек 2016
    Kokka, shelter, dimon222 и 13 другим нравится это.
  2.  
  3. Helmut Herr Mannelig

    Helmut

    Переводчик

    Регистрация:
    18 мар 2008
    Сообщения:
    7.083
    А смещения отслеживает? Для изменение длины стрингов.
     
  4. sanctuarydaemon

    sanctuarydaemon

    Регистрация:
    11 фев 2014
    Сообщения:
    52
    Увы, нет. И найденные строки сейчас можно только обрезать - изначально максимально возможную длину выдает.
     
  5. Helmut Herr Mannelig

    Helmut

    Переводчик

    Регистрация:
    18 мар 2008
    Сообщения:
    7.083
    А вообще, планируется ли добавить анализатор смещений, раз начала и длины строк уже и так само находит? Без этого область применения утилиты довольно ограничена. Редко где при переводе удается укладываться в исходную длину. Да и OgreGUI давно есть.
     
  6. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    @Helmut, проблема с анализатором смещений в том, что эти самые смещения могут быть представлены неявно, то есть они могут вычисляться на лету например, содержаться в неких таблицах, на которые ссылаются другие таблицы, зависеть от способа адресации в команде, быть зашифрованы и т.п.
    А самое замечательное, что на всё это накладывает отпечаток ещё и формат самого исполняемого файла.

    Наиболее крутой анализатор - IDA и то неспособна в ряде случаев понять, где строка, а где что.

    Проблема сия существовала ещё до IBM, например на том же спектруме, что очень подробно описано в периодике и с чем сталкивались регулярно при локализации игр.
     
  7. sanctuarydaemon

    sanctuarydaemon

    Регистрация:
    11 фев 2014
    Сообщения:
    52
    Анализатор смещений хотелось бы самому, но, как Bato-San заметил, там тьма кромешная.
    Тот же OgreGUI ничуть не помог при переводе war.exe (warcraft первый), т.к. работает только с PE. Тут же можно открыть любой небольшой файл.
    А если в переводе использованы шрифты, тупо заменяющие латинские символы кириллицей - имеем в строках нечитаемый набор символов (см. Diablo первый от Фаргус). Для этого тут спецом прикручен "конвертер".
    Утилитой решал конкретные проблемы, с которыми сам столкнулся. Поэтому чего-то там может не хватать, что-то может быть не так.
    К предложениям прислушаюсь - если смогу что-то реализовать, добавлю функционал или поправлю чего-нибудь.
     
  8. Helmut Herr Mannelig

    Helmut

    Переводчик

    Регистрация:
    18 мар 2008
    Сообщения:
    7.083
    @sanctuarydaemon, если бы был анализатор хотя бы жестко прописанных смещений (которые, вероятно, чаще встречаются не в исполняемых, а в ресурсных файлах) - такой утилиты реально не хватает. Сильно упростило бы жизнь, ускорило работу и уменьшило геморрой. Во всем остальном - тоже сталкивался со случаями, когда OgreGUI не помогал, но тогда помогал Restorator. Не помогал Restorator - годился ResourceHacker, и т.д., утилит для поиска текстовых строк не так уж и мало. Разумеется, встроенная таблица для замены кириллицы - полезнейшая штука, но, по моему личному опыту, при переводе игр это - наименьшая из проблем, решается парой строчек кода на любом языке.
     
    Последнее редактирование: 30 ноя 2016
  9. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    @sanctuarydaemon, главное в увеличении длины это куда перенести данные, новую длинную строку и второе найти сам указатель. Первые действия ручные недолго найти, но в проге должна быть поддержка ввода в ручном режиме.
    Первые действия делаешь руками, получаешь пару нужных адресов, сохраняешь их, а дальше уже можно играться с фразами в 2 клика, типа - поиграть со шрифтами. Можно заточить под один или несколько файлов, но форматов несколько. Хз насколько это важно и нужно, но раз ты столько написал, то сможешь и еще немного добавить)
    Дальше еще наступают ограничения интерфейса, про варик1 для юнитов и зданий - 10 символов, для комментария детального внизу не считал, но около 20+ это ограничение никак не преодолеть из-за разрешения.
     
    Последнее редактирование: 30 ноя 2016
  10. sanctuarydaemon

    sanctuarydaemon

    Регистрация:
    11 фев 2014
    Сообщения:
    52
    Для ручного ввода можно выделить область в панели отображения содержимого файла (справа) и добавить ее к таблице строк (кнопка add selection to ini) - далее можно редактировать ее как найденные строки, символьно или в хексе.
    --- добавлено 30 ноя 2016, предыдущее сообщение размещено: 30 ноя 2016 ---
    По варику то уже понятно, что делать. Но тут не только под него. Кстати, там (в war.exe) есть огромная область, забитая нулями - переносил туда названия, не пришлось ошибки переписывать. Пока не глючило.
     
    Последнее редактирование: 30 ноя 2016
    AndyFox нравится это.
  11. sanctuarydaemon

    sanctuarydaemon

    Регистрация:
    11 фев 2014
    Сообщения:
    52
    Небольшой апдейт до 1.1.0.14
    - добавлено копирование / вставка символов строки в редакторе (ctrl+c/ctrl+v)
    - просто сказочно ускорен экспорт INI
    - пофикшен импорт больших INI, в несколько мб
    - добавлено поле редактирования оффсета строки
     
    AndyFox, Gamerun и Sylvester нравится это.
  12. sanctuarydaemon

    sanctuarydaemon

    Регистрация:
    11 фев 2014
    Сообщения:
    52
    1.1.0.15
    - добавлен поиск нулевых байтов внутри строк
    - управление файлами (EXE/INI) вынесено в менюшку
     
    AndyFox нравится это.
  13. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    @sanctuarydaemon, допили, пжлст, экспорт строк в .txt, чтоб можно было почистить текстовик и выложить для перевода.
     
  14. sanctuarydaemon

    sanctuarydaemon

    Регистрация:
    11 фев 2014
    Сообщения:
    52
    Ладушки, в следующей версии будет.
     
    jack7277 нравится это.
  15. sanctuarydaemon

    sanctuarydaemon

    Регистрация:
    11 фев 2014
    Сообщения:
    52
    1.1.0.16
    - добавлен INI экспорт/ипорт строк в виде печатных символов
    - в редакторе строк INSERT теперь вставляет пробелы вместо нулей
    - "вертикальная табуляция" $0B и "новая страница" $0C больше не определяются как печатные символы

    Совсем TXT чуть позже будет.
     
    WinstAn нравится это.
  16. sanctuarydaemon

    sanctuarydaemon

    Регистрация:
    11 фев 2014
    Сообщения:
    52
    1.1.0.17
    - добавлен экспорт строк в простой TXT
    - поправлена работа с буфером в редакторе строк, теперь копируется не только хекс код
    - ESC в редакторе строк теперь отменяет изменения, а не печатает символ
    - исправлен импорт/экспорт строк в виде печатных символов - нулевые символы заменяются на [#00]
    - если вводимый в строку conv символ отсутствует в таблице конверсии, он будет добавлен в строку char без конверсии (вместо символа "?" как раньше)

    Однако, экспорт в HEX кажется более надежным.
     
    Tigoro, Dimouse и jack7277 нравится это.
  17. sanctuarydaemon

    sanctuarydaemon

    Регистрация:
    11 фев 2014
    Сообщения:
    52
    Тэк-сь... Шапку уже поправить не могу, поэтому апдейт тут.

    1.1.0.18
    - добавлен дополнительный примитивный редактор текста - двойной клик по одной из строк основного редактора
    - панельку с просмотром ехе можно скрыть - кнопка справа ">"
    - убрана кнопка загрузки файлов конверсий - вместо нее сразу выбор файлов из папки conv

    описание с изменениями
     
    Последнее редактирование: 9 янв 2017
    Kokka, Tigoro, Gamerun и ещё 1-му нравится это.
  18. sanctuarydaemon

    sanctuarydaemon

    Регистрация:
    11 фев 2014
    Сообщения:
    52
    1.1.0.20
    - оптимизирована работа с данными - памяти жрет в разы меньше, загружает файлы заметно шустрее
    - показ позиции каретки во всплывающем редакторе текста
    - включена цветовая индикация превышения длины текста во всплывающем редакторе
    1.1.0.21
    - теперь при поиске по таблице строк в редакторе подсвечивается найденная позиция
    - неожиданно реализован брутфорсный поиск таблицы указателей/смещений по выбранным строкам

    ПОИСК ТАБЛИЦЫ УКАЗАТЕЛЕЙ/СМЕЩЕНИЙ НА СТРОКИ
     
    Последнее редактирование: 5 янв 2017
    kirik-82 и Gamerun нравится это.
  19. sanctuarydaemon

    sanctuarydaemon

    Регистрация:
    11 фев 2014
    Сообщения:
    52
    1.1.0.22
    - поправлена длина выделяемой области в содержании файла при двойном клике по таблице строк
    - изменен формат сохранения ini в hex - убраны пробелы, места занимает меньше
    - активированы кнопки для добавления байтов слева и справа от редактируемой строки
    - во всплывающем текстовом редакторе добавлен выбор символов переноса строки - при смене строка перезагружается, изменения теряются
    - при применении изменений во всплывающем редакторе, изменения сразу вносятся в таблицу строк
    - добавлена проверка орфографии во всплывающем редакторе, используются словари myspell/hunspell в oxt формте - нужно скачать в папку dict
    - в поиске таблицы указателей добавлена длина значения в 1 байт, поправлено выделение найденного блока
     

    Вложения:

    shelter, 007007, Tigoro и ещё 1-му нравится это.
  20. Кирилл Борисенко

    Кирилл Борисенко

    Регистрация:
    22 окт 2023
    Сообщения:
    3
    @sanctuarydaemon было бы здорово, если бы при вписывании данных в исходный .exe-файл сохранялась бы целиком его предыдущая версия с расширением .bak

    Чтобы в случае чего заменить ".bak" на ".exe", и всё заработало.
     
    Последнее редактирование: 22 окт 2023
  21. Tigoro AI General

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    3.143
    @Кирилл Борисенко, автор не заходил на сайт с января 2017 года.
    Если утилита поддерживает запуск из командной строки, типа exescan filename.exe
    можно попробовать сделать батник и через него запускать, чтобы до редактирования создавалась копия файла. Что-то вроде этого, делаем файлик "в архив.cmd":

    @echo off
    set h=%TIME:~0,2%
    set m=%TIME:~3,2%
    set s=%TIME:~6,2%
    set curtime=%h%-%m%-%s%
    set dd=%DATE:~0,2%
    set mm=%DATE:~3,2%
    set yyyy=%DATE:~6,4%
    set curdate=%dd%.%mm%.%yyyy%
    set curdatetime=%curdate%_%curtime%
    copy "%1" "%1_%curdatetime%.bak"
    pause
    ваш путь к файлу\exerus "%1"

    Проверить работоспособность команды copy не могу; возможно аргументы что во что копировать иначе нужно писать, без кавычек. У меня подобная конструкция создает копии файлов с конкретными постоянными именами на рабочем компьютере, т.е. ручная "архивация" без программ.

    Повторюсь батник cmd пригоден, если утилита поддерживает запуск с параметром, а не открывает файлы только из интерфейса.
     
    Последнее редактирование: 22 окт 2023
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление