Автор Тема: Упаковка и распаковка  (Прочитано 15433 раз)

Оффлайн Killot

  • Новичок
  • *
  • Сообщений: 6
    • http://photoshop-tutorials.ru/
Упаковка и распаковка
« : 18 Апреля 2009, 17:36:47 »
Начал переводить программу в которой есть отдельный lng файл, его полностью перевел но в программе не все пункты меню отображаются на русском, половина на английском.
Начал ковырять в restorator'e прога оказалась упакованной, я распаковал с помощью AsprStrip 2.11 RC2, перевел всю прогу в Passolo, а чем упаковать не знаю... пробовал aspack212 выдает ошибку, а если и упакует то программа не запускается.

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

Подскажите пожалуйста как такую программу перевести ?

Оффлайн Kirill Borisenko

  • Постоялец
  • ***
  • Сообщений: 177
    • http://
Упаковка и распаковка
« Ответ #1 : 18 Апреля 2009, 19:01:32 »
Цитата: Killot
...распаковал с помощью AsprStrip 2.11 RC2, перевел всю прогу в Passolo, а чем упаковать не знаю... пробовал aspack212 выдает ошибку, а если и упакует то программа не запускается.


Подскажите пожалуйста как такую программу перевести ?

Автоматические распаковщики ASPack иногда не могут "восстановить" файл полностью.

Для того, чтобы файл нормально обрабатывался - попробуйте такой способ:

-Откройте распакованный файл в PE Explorer.
-Измените в нём несколько ресурсов.
-Сохраните изменённый файл.

Часто, после пересборки в этом редакторе, файл начинает обрабатываться хорошо другими редакторами и самим ASPack.

Упаковывать переведённую программу не обязательно самим ASPack.

Попробуйте упаковать при помощи UPX-X-Shell.

Более того - упаковывать не обязательно.

По итогам создания русифиактора при помощи Patch Wise Free, в результате сравнения двух сжатых файлов, результирующий файл перевода будет сопоставим по размеру самому exe-шнику.

Поэтому вполне разумным решением является упаковка непосредственно переведённых файлов при помощи WinRAR (например) и создание SFX пакета установки, настроенного на извлечение с заменой файлов.
« Последнее редактирование: 18 Апреля 2009, 19:10:50 от Kirill Borisenko »

Оффлайн Killot

  • Новичок
  • *
  • Сообщений: 6
    • http://photoshop-tutorials.ru/
Упаковка и распаковка
« Ответ #2 : 18 Апреля 2009, 20:18:19 »
Цитата: Kirill Borisenko
Автоматические распаковщики ASPack иногда не могут "восстановить" файл полностью.

После распаковки файл запускается без ошибок.

Цитировать
-Откройте распакованный файл в PE Explorer.
-Измените в нём несколько ресурсов.
-Сохраните изменённый файл.

Перевел одну строку в PEexplorer сохранил, запускается...
Сжал Aspack'om все нармально сжалось и запускается...

В Passolo кстати также, если перевести от одной скажем до двадцати строк то все нормально, если перевести всю программу то при запуске экзешки вылетает ошибка инициализации объекта
Как избавиться от этого ?

При переводе число символов увеличивается, следовательно увеличивается и размер.
Так вот несовпадение размера исходного и редактированного файла вызывает ошибку по-моему.

Такой вот еще вопрос как в программе проверяется размер данных ?
Можно ли его увеличить ?

Оффлайн ZeroChaos

  • Root Admin
  • Ветеран
  • *****
  • Сообщений: 1376
  • The Dragon Reborn
    • zerolab.net
Упаковка и распаковка
« Ответ #3 : 18 Апреля 2009, 21:59:25 »
Что-то мне подсказывает, что после автоматической распаковки ASPack-а секция ресурсов становится до секции импорта и после перевода какого-то количества строк просто налезает на секцию импорта затирая ее, вот Вам и испорченный PE файл. Без ручной реконструкции файла при распаковке, думаю, не обойтись. Kirill Borisenko, ты как считаешь?
Killot
Выложи оригинальный упакованный файл, может кто возьмется посмотреть, а то не видя с чем ты имеешь дело, сложно делать выводы. Сам смогу посмотреть только в понедельник на работе, ибо дома у меня кроме Mac OS X, да Debian GNU/Linux давно ничего нет, на работе хоть виртуалка с виндой стоит, гляну при случае.

P.S. Вообще, лучше дай ссылку на свою программу, будет проще протестировать.
The Wheel of Time turns, and Ages come and pass, leaving memories that become legend. Legend fades to myth, and even myth is long forgotten when the Age that gave it birth comes again... There are neither beginnings nor endings to the turning of the Wheel of Time. But it was a beginning. R. Jordan

Оффлайн Kirill Borisenko

  • Постоялец
  • ***
  • Сообщений: 177
    • http://
Упаковка и распаковка
« Ответ #4 : 18 Апреля 2009, 22:08:19 »
Цитата: ZeroChaos
Без ручной реконструкции файла при распаковке, думаю, не обойтись.

Kirill Borisenko, ты как считаешь?

PE Explorer даёт неплохие результаты. Без учёта оригинальных особенностей файла (если таковые имеются), естественно.
« Последнее редактирование: 18 Апреля 2009, 22:21:37 от Kirill Borisenko »

Оффлайн ZeroChaos

  • Root Admin
  • Ветеран
  • *****
  • Сообщений: 1376
  • The Dragon Reborn
    • zerolab.net
Упаковка и распаковка
« Ответ #5 : 18 Апреля 2009, 22:29:16 »
Kirill Borisenko, мне больше было интересно что ты думаешь об этом:
"Что-то мне подсказывает, что после автоматической распаковки ASPack-а секция ресурсов становится до секции импорта и после перевода какого-то количества строк просто налезает на секцию импорта затирая ее, вот Вам и испорченный PE файл."
?
Мне кажется причина именно в этом. Killot, ты не пробовал именно после распаковки автоматическим унпакером пересохранить файл в PE Explorer, и лишь после этого переводить в Passolo? Это действительно может решить проблему. Еще можешь попробовать Resource Binder от SetiSoft. Если не поможет, я распакую файл вручную под отладчиком, заодно посмотрю может там действительно есть какие проверки, хотя очень сильно в этом сомневаюсь, прислушайся к советам что давались выше.
The Wheel of Time turns, and Ages come and pass, leaving memories that become legend. Legend fades to myth, and even myth is long forgotten when the Age that gave it birth comes again... There are neither beginnings nor endings to the turning of the Wheel of Time. But it was a beginning. R. Jordan

Оффлайн Killot

  • Новичок
  • *
  • Сообщений: 6
    • http://photoshop-tutorials.ru/
Упаковка и распаковка
« Ответ #6 : 20 Апреля 2009, 15:00:48 »
Оригинальная экзешка весит 879 616 байт
Вот что я заметил...
Я переводил по одной строке и постоянно сохранял программу, допустимо только 880 128 байт, если добавить хоть один символ программа выдает ошибку инициализации объекта.
С таким размером программа сохраняется и запускается а также сжимается Aspackom все нормально.
Как я писал в самом начале в программе есть отдельный lng файл перевод которого отображает в программе лишь часть менюшек и диалогов по русски, остальное на английском.
Так вот я ту часть на английском и перевел в пассло получился полный перевод.

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

Зато теперь я знаю куда обращаться за помощью...
Всем огромное спасибо за советы, узнал немного нового для себя...

Кстати злочастная программа это Crystal Button 2.7 Сайт программы: http://www.crystalbutton.com/

Оффлайн ZeroChaos

  • Root Admin
  • Ветеран
  • *****
  • Сообщений: 1376
  • The Dragon Reborn
    • zerolab.net
Упаковка и распаковка
« Ответ #7 : 20 Апреля 2009, 15:32:20 »
Скачал с офсайта Crystal Button 3.20, файл ничем не запакован. Я так понимаю Вы распаковывали cracked.exe (а не оригинальный файл программы) для версии 2.7? Если уже неактуально, то ладно, если все ещё хотите чтобы я посмотрел файл - выложите свой комплект.
The Wheel of Time turns, and Ages come and pass, leaving memories that become legend. Legend fades to myth, and even myth is long forgotten when the Age that gave it birth comes again... There are neither beginnings nor endings to the turning of the Wheel of Time. But it was a beginning. R. Jordan