Последние сообщения

Страницы: 1 ... 4 5 6 7 8 [9] 10
81
Общий форум / Re: Лoкaлизaция Nоdе-WеbKіt
« Последний ответ от leserg73 02 Мая 2020, 00:28:54 »
Написал сценарий для программы QuickBMS generic files extractor and reimporter 0.10.1 (quickbms), который позволяет извлечь все JS-сценарии из файла программы nw.exe, а также записать обратно после сделанных в них изменениях. Возможно он поможет вам реализовать все свои хотелки. Архив со сценарием во вложении к этому сообщению (nw_bms.zip).

Подготовка:
  • Скачиваете архив с программой QuickBMS с сайта разработчика.
  • Распаковываете его в отдельную папку.
    Для работы нам необходимы только два файла:
     - quickbms.exe - основной файл утилиты, для извлечения;
     - reimport.bat - батник, который запускает quickbms.exe, но уже с параметрами для записи.
  • Создайте отдельную папку с любым именем и распакуйте в неё прилагаемый файл сценария nw.bms, а также скопируйте в неё файл программы nw.exe.
  • В папке со сценарием nw.bms создайте подпапку с именем "JS" (можете обозвать как угодно). В неё будем выполнять извлечение JS-сценариев из файла программы nw.exe. Эту папку можно создать и потом, во время работы с утилитой QuickBMS.

Извлечение:
Запустите файл quickbms.exe и выбирайте данные в следующей очередности:
  • Файл сценария nw.bms, подтвердив свой выбор нажатием "Открыть";
  • Файл программы nw.exe, подтвердив свой выбор нажатием "Открыть";
  • Папку, в которую будет выполнено извлечение. У вас это или папка "JS", или своя, или сейчас вы можете её создать. Важно: папку в диалоге выбора нужно не выделить, а зайти в неё, после чего нажать "Сохранить".

Все. Начнется работа сценария. По окончании работы утилиты в указанной папке вы найдете 50 файлов с расширением JS.

Далее. Прежде чем продолжать работу с этими файлами, сделайте резервную копию все папки, в которой находятся файлы nw.bms, nw.exe и папка с извлеченными JS-сценариями.

При модификации JS-сценариев важно:
  • Не переименовывать их и не менять индексы файлов! Иначе обратная их запись в файл программы nw.exe будет невозможна.
  • Не изменять первую строку в файлах (начинается с "// Copyright Joyent..."). По этой строке идет идентификация данных.
  • Стараться редактировать JS-сценарии так, чтобы конечный размер изменённого файла не превышал размер оригинального файла или был меньше. Если размер будет больше хотя бы на один байт, то такие файлы записываться не будут. Идеальный вариант - это сохранение исходного размера. Добиться этого можно удалением пробелов, отступов, комментариев, пустых строк и т.п. Таким же способом можно увеличить размер файла, если он получается меньше.
  • Как можно чаще создавайте резервные копии при любых изменениях в файлах.

Запись:
Для записи необходимо запустить бат-файл reimport.bat и далее выполнить действия в следующей последовательности (как при извлечении):
  • Выбираете файл сценария nw.bms, подтвердив свой выбор нажатием "Открыть";
  • Выбираете файл программы nw.exe, подтвердив свой выбор нажатием "Открыть";
  • Выбираете папку, в которую были извлечены файлы, а сейчас лежат отредактированные (в этом примере это папка "JS").
Будет запущен процесс записи. Если с размерами файлов все в порядке, то данные JS-сценариев в файле nw.exe будут перезаписаны новыми, изменёнными данными.

Создайте копию папки с установленной программ Node-WebKit и скопируйте в неё полученный, перезаписанный файл программы nw.exe, подтвердив замену существующего. Проверьте работу программы. По идее, если с вашей стороны не было допущено никаких ошибок, то получите работоспособное приложение, которое было модифицировано вашими руками.

Всего наилучшего!
82
RusMe - РусМи! / Re: Смещение строк при переводе
« Последний ответ от миха04 01 Мая 2020, 22:17:36 »
Спасибо. Последую вашим рекомендациям.
83
RusMe - РусМи! / Re: Смещение строк при переводе
« Последний ответ от leserg73 01 Мая 2020, 20:56:37 »
В Radialix часть строк обрезается наполовину из-за UTF-8.
Конечно будут обрезаться, он то ничего не знает про указатели длин, прописанные в коде для строк. Вы можете в Radialix сделать локализованный файл, а потом в отладчике поправить значения длин. Это намного проще, чем в отладчике вводить строки. Плюс у вас будет проект, который потом легко обновить с выходом новой версии программы. В последствии вы можете потом сделать патч, который будет автоматом исправлять эти значения длин. Первопроходцем быть сложно, зато потом процесс можно автоматизировать.

х64 поддерживается LordPE Deluxe by yoda.
Спасибо, буду иметь ввиду.  :thanks:

Для захода в секцию мне нужно вводить её адреса или через вкладку Карта памяти (x64dbg), я это имел ввиду.
Да откройте её на одной из вкладок Дампа памяти.

84
RusMe - РусМи! / Re: Смещение строк при переводе
« Последний ответ от миха04 01 Мая 2020, 19:59:19 »
Для захода в секцию мне нужно вводить её адреса или через вкладку Карта памяти (x64dbg), я это имел ввиду. В Radialix часть строк обрезается наполовину из-за UTF-8. х64 поддерживается LordPE Deluxe by yoda.
85
RusMe - РусМи! / Re: Смещение строк при переводе
« Последний ответ от leserg73 01 Мая 2020, 18:35:28 »
Не нашёл в Radialix как это сделать.
Radialix делает это на автомате, когда переводите в нем жестко закодированные строки.  Отдельной функции для добавления новой секции в нем нет. Для создания секций в файлах формата PE необходимо использовать соответствующие утилиты и инструменты, например, PETools, PE-Bear, CFF Explorer, Stud-Pe и другие им подобные. На практике я использую CFF Explorer. 

Добавил новую секцию через LordPE. В неё можно попасть через Карту памяти. Что нужно сделать, чтобы секцию было видно не таким путём?
Не уверен, что LordPE умеет работать с 64-бит программами. Очень древняя разработка. Проверьте файл другими PE инструментами.

Немного не понял.
В отладчике любую секцию можно открыть на одной из 5-ти вкладок панели дампа памяти.
Поясните "чтобы секцию было видно не таким путём". Видно где и каким путем?

А в чем проблема при переводе в Radialix? Если строк много, то замучаетесь вручную их переносить. Да и с поддержкой локализации последующих версий приложения будете страдать. Локализованный файл получается нерабочий? Разобраться не пробовали почему? Бывает Radialix портачит файлы. Попробуйте использовать другую версию редактора. Я по большей части использую 2 версию (последнюю), но если что-то не идет, пробую в 3 версии (также последней версии). Также бывает, что не получается рабочий файл программы, тогда смотрю оригинальный и локализованный в РE редакторах, сравниваю заголовки. А бывает достаточно пересохранить локализованный файл из PE редактора в новый файл и он становится рабочим. В большинстве случаев PE редактор автоматом исправляет заголовок, если с ним было что-то не так. Есть и тяжелые случаи, когда ничего не помогает.  Тогда приходится искать альтернативы.

86
RusMe - РусМи! / Re: Смещение строк при переводе
« Последний ответ от миха04 01 Мая 2020, 17:36:35 »
Добавил новую секцию через LordPE. В неё можно попасть через Карту памяти. Что нужно сделать, чтобы секцию было видно не таким путём?
87
RusMe - РусМи! / Re: Смещение строк при переводе
« Последний ответ от миха04 30 Апреля 2020, 19:54:36 »
Не нашёл в Radialix как это сделать. По другим примерам, из сети, тоже ничего. Файл не рабочий. Честно говоря, внятных пояснений, кроме ваших, я не нашёл. Такое впечатление, что люди объясняют сами себе. На Wilek вопросы задавать не могу, такие правила.
88
RusMe - РусМи! / Re: Смещение строк при переводе
« Последний ответ от миха04 29 Апреля 2020, 23:38:22 »
Хорошо. Спасибо за советы. Буду теперь знать.
89
RusMe - РусМи! / Re: Смещение строк при переводе
« Последний ответ от leserg73 29 Апреля 2020, 23:14:59 »
И можно ли как-то всё это побороть?
Можно. Добавить в конце файла новую секцию и все строки сносить туда. Так, например, делает шаблонный редактор Radialix, когда перевод касается жестко закодированных строк.
90
RusMe - РусМи! / Re: Смещение строк при переводе
« Последний ответ от миха04 29 Апреля 2020, 22:46:17 »
Ясно. Грустная история. И можно ли как-то всё это побороть?
Страницы: 1 ... 4 5 6 7 8 [9] 10