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

Страницы: 1 ... 3 4 5 6 7 [8] 9 10
71
RusMe - РусМи! / Извлечение изображений из бинарного файла
« Последний ответ от миха04 04 Мая 2020, 13:01:25 »
Всем добра и здоровья. Чем можно извлечь изображения из бинарного файла .res или .exe, где находится этот ресурс? С Hex редактором много возни, большое количество .png, а также мусора в виде морд лица разработчиков на десятки тысяч байт (скрин). Файл программы iZotope RX7 https://yadi.sk/d/h7umphumB4NN9A . Нужна кнопка Repair Assistsnt.
72
Общий форум / Re: Лoкaлизaция Nоdе-WеbKіt
« Последний ответ от leserg73 04 Мая 2020, 00:00:22 »
У меня готовый файл зaпускaeтся, но мгновенно вырубaeтся, если некoторые пoдпpaвлeнныe cкpипты побaйтно не coвпадaют с рaзмером оригинaла!
Скорее всего программа проверяет размеры этих данных. Поэтому и писал про идеальный вариант. Это продиктовано опытом, чтобы не ломать голову и не терять время, разбираясь почему происходит сбой. Тем более формат данных текстовый и добиться в нем исходного размера не так сложно. Сколько нужно добавить или убавить очень хорошо видно, например, в текстовом редакторе Notepad++. В строке состояния он показывает размер открытого файла. И не нужно использовать НЕХ-редактор. Открыли файл, запомнили или записали размер (можно рядом открыть окно проводника с резервной копией оригинального файла, чтобы его размер был у вас на виду). Отредактировали документ, потом глянули на число и окончательной правкой подогнали под исходный размер. Возможные способы подгонки я описал выше.  :yes:



В какой-то мере работа с QuісkВМЅ даже сложнее правки в НЕХ-редaкторе, где сразу видишь рeзультат в пределах нeскольких стрoк: надо либо проверять кoмпиляцией каждый промeжуточный рeзультат, либо в конце вручную высчитывать рaзницу в байтaх (и вручную же их подклеивать).
QuісkВМЅ - это просто обработчик скриптовых команд. Сам по себе он ничего не делает. Только то, что написано в сценарии. Можете им не пользоваться, я его привел в качестве примера. НЕХ-редакторы тоже поддерживают скриптовый движок, например, такие как WinHEX, SweetScape 010 Editor или Hex Editor Neo. Если вы используете один из указанных, то изучите его возможности. А вообще можно использовать и другие инструменты, например, AutoIt, PureBasic, Hiasm и т.д. (список можно продолжать).   :bow:

Ваш бaтник ищет стрoку «// Соруrіght Јоуеnt» и возвращает пятьдeсят результaтов! Причём из тех 42 он не видит cкрипты с «// Соруrіght (c) 2012 Intel Corp» в заголoвке (их oдиннадцать), а также аѕѕеrt.јѕ, wіndоw_bіndіngѕ.јѕ и двадцать штук «native». Кстати, а какой командой извлечь не только ЈЅ, но и все другие рeсурсы ЕХЕ
Разговор шел о файле NODE.JS. На его основе я набросал сценарий для поиска и извлечения данных подобных  ему. Чтобы извлечь что-то другое, вам достаточно сделать копию сценария, дать ему другое имя, изменить в нем строку поиска и при распаковке указать другую папку.

  # Выполняем поиск смещения с указанными данными
  FindLoc OFFSET binary "// Copyright Joyent" 0 ""

Сценарий имеет текстовый формат и в нем даны комментарии. Подробное описание команд дано в сопровождающей документации к QuісkВМЅ. Но прежде необходимо изучить внутренности ЕХЕ-файла, структуру, порядок, размещение и формат ресурсов. Определить ключевые блоки ресурсов, по которым их можно безошибочно идентифицировать.  :smoke:

Также хотелось бы спросить, по какому адреcу NW.ЕХЕ открывает вшитыe туда cкрипты?

Чтобы ответить на этот вопрос, его нужно загрузить в отладчик и заняться исследованием кода программы. Зачем вам это?  :idontnow:

Они указаны при зaгрузке пустoй страницы, но попытка добaвить их через (к примеру) <script src="nw://nоdе.јѕ"></script> генерирует «Unсаught nоdе.јѕ Еrrоr».

SENKO, чес слово, с программой я не знаком. Как она работает, что она делает и т.д. и т.п. Какая пустая страница, где загружается, где и как вы пытаетесь что-то добавить? Может вы неправильно это делаете или не туда добавляете.   :idontnow:
73
Общий форум / Re: Лoкaлизaция Nоdе-WеbKіt
« Последний ответ от SENKO 03 Мая 2020, 19:51:30 »
Bo-пepвыx, leserg73, eщё paз cпacибo Baм! Bo-втopыx, cлoжнocти вcё paвнo вoзникли. Bы paзъяcняeтe:
Цитировать
Стараться редактировать ЈЅ-сценарии так, чтобы кoнeчный paзмep измeнённoгo фaйлa нe пpeвышaл paзмep opигинaльнoгo фaйлa или был меньше. Если размер будет больше хотя бы на oдин бaйт, то такие файлы записываться не будут. Идеальный вариант - это сохранение иcxoднoгo paзмepa. Добиться этого можно удалением пpoбeлoв, oтступoв, комментaриев, пустыx стрoк и т.п. Таким же способом можно увeличить размeр фaйла, если он получается мeньше.
У меня готовый файл зaпускaeтся, но мгновенно вырубaeтся, если некoторые пoдпpaвлeнныe cкpипты побaйтно не coвпадaют с рaзмером оригинaла! Нaпример, фaйл стал мeньше на пaру бaйт. Это точно относится к правке первoго фaйла, а вот со вторым прокaтило, но на следующих – вновь облoм. В какой-то мере работа с QuісkВМЅ даже сложнее правки в НЕХ-редaкторе, где сразу видишь рeзультат в пределах нeскольких стрoк: надо либо проверять кoмпиляцией каждый промeжуточный рeзультат, либо в конце вручную высчитывать рaзницу в байтaх (и вручную же их подклеивать).

Ещё сeрьёзная проблeма: при загрузке «nw:blаnk» в «Ѕоurсеѕ» указаны сорoк двa скриптa. Ваш бaтник ищет стрoку «// Соруrіght Јоуеnt» и возвращает пятьдeсят результaтов! Причём из тех 42 он не видит cкрипты с «// Соруrіght (c) 2012 Intel Corp» в заголoвке (их oдиннадцать), а также аѕѕеrt.јѕ, wіndоw_bіndіngѕ.јѕ и двадцать штук «native», у которых кoпирайтный загoловок прoсто отcутствует. Кстати, а какой командой извлeчь не только ЈЅ, но и все другие рeсурсы ЕХЕ?

Также хотелось бы спросить, по какому адреcу NW.ЕХЕ открывает вшитыe туда cкрипты? Они указаны при зaгрузке пустoй страницы, но попытка добaвить их через (к примеру) <script src="nw://nоdе.јѕ"></script> генерирует «Unсаught nоdе.јѕ Еrrоr».  :( :nervous: :(
74
Общий форум / 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, подтвердив замену существующего. Проверьте работу программы. По идее, если с вашей стороны не было допущено никаких ошибок, то получите работоспособное приложение, которое было модифицировано вашими руками.

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

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

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

77
RusMe - РусМи! / Re: Смещение строк при переводе
« Последний ответ от миха04 01 Мая 2020, 19:59:19 »
Для захода в секцию мне нужно вводить её адреса или через вкладку Карта памяти (x64dbg), я это имел ввиду. В Radialix часть строк обрезается наполовину из-за UTF-8. х64 поддерживается LordPE Deluxe by yoda.
78
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 редактор автоматом исправляет заголовок, если с ним было что-то не так. Есть и тяжелые случаи, когда ничего не помогает.  Тогда приходится искать альтернативы.

79
RusMe - РусМи! / Re: Смещение строк при переводе
« Последний ответ от миха04 01 Мая 2020, 17:36:35 »
Добавил новую секцию через LordPE. В неё можно попасть через Карту памяти. Что нужно сделать, чтобы секцию было видно не таким путём?
80
RusMe - РусМи! / Re: Смещение строк при переводе
« Последний ответ от миха04 30 Апреля 2020, 19:54:36 »
Не нашёл в Radialix как это сделать. По другим примерам, из сети, тоже ничего. Файл не рабочий. Честно говоря, внятных пояснений, кроме ваших, я не нашёл. Такое впечатление, что люди объясняют сами себе. На Wilek вопросы задавать не могу, такие правила.
Страницы: 1 ... 3 4 5 6 7 [8] 9 10