BlackStar Localizations Studio

Объявление

Прежде чем начать работу с форумом, прочитайте правила: ПРАВИЛА ФОРУМА

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » BlackStar Localizations Studio » Проблемы с переводом » HEX редактор и Radialix не видят часть ресурсов


HEX редактор и Radialix не видят часть ресурсов

Сообщений 1 страница 30 из 94

1

При переводе SysTracer, столкнулся с тем, что HEX редактор и Radialix2 не видят часть ресурсов.
В программе имеются вкладки и даже переведя HEX редактором все встречающиеся слова Snapshots, вкладка остается на буржуйском.
Есть подозрение, что это картинки, но HyperSnap спокойно извлекает из них текст!

Snapshots   Registry   Files   Applications   Remote scan   Help & Register

аналогичная проблема и с разделом помощи, в программе имеется встроенная справка, но ни HEX редактор ни Radialix
не видят этих ресурсов!

Еще одна проблема - это когда переводишь заголовки колонок, они становятся кракозябрами.
Автор проги вообще юморист - часть ресурсов в Юникоде, а часть в Румынской кодировке, но на инглише!  :dontknow:

Ссылка на прогу

на Rghost выложил

Буду рад вашей помощи, а то один я с ней не справлюсь  :)

Отредактировано dan8888 (2012-11-06 22:28:05)

0

2

dan8888
В этой программе очень много зашито в теле.
Там есть HTML страницы.
Вытащить можно и перевести но понту от этого мало.

В общем эту прогу не получится перевести на сто.
Только если к разработчику обратится с этой просьбой.
Но не думаю что румыны будут рады такой идее.

+2

3

dan8888 написал(а):

в программе имеется встроенная справка, но ни HEX редактор ни Radialix не видят этих ресурсов!

Справка и остальная часть ресурсов в этой программе находятся в запакованном виде, поэтому их не видят редакторы. Архивация выполнена с помощью библиотеки zlib, которая позволяет распаковать данные в память ПК, откуда их и загружает запущенная программа. Это можно узнать, выполнив поиск в исполняемом файле при помощи НЕХ-редактора, сигнатуры [inflate]. Далее вы увидите строку "inflate 1.2.3 Copyright 1995-2005 Mark Adler". Извлечь эти ресурсы можно, но запаковать обратно и вставить в файл, не зная параметров архивации, нет.

+1

4

ADMIN®CRACK

Только если к разработчику обратится с этой просьбой.
Но не думаю что румыны будут рады такой идее.

Я тоже думаю, что не стоит пугать румынов своими предложениями о переводе )))
А то начнут усиливать защиту и удалять с файлообменников, как происходит с PE Explorer.

Horna

Справка и остальная часть ресурсов в этой программе находятся в запакованном виде, поэтому их не видят редакторы. Архивация выполнена с помощью библиотеки zlib.

Такая распаковка мне еще пока не по зубам... да и не стоит оно этого. (ИМХО)

Спасибо вам парни, что уделили этой проге внимание, а то уж начал думать, что это у меня руки не от туда растут.

А по самому переводу есть вопросы или пожелания? ;)
А то на Ru-Board́′е выложил свой перевод, скачало 56 человек, но молчат как партизаны )))

0

5

Попробую помочь с распаковкой, такое когда-то уже проделывал...

0

6

Nexus
Супер!
Значит в рунете появится еще один эксклюзивный перевод от BlackStar Localizations Studio! :cool:

0

7

Если даже и распакуют эти ресурсы, не факт, что программа их потом  подхватит. :dontknow:
Если перевода не много то можно наверно типа лоадера замутить, чтоб патчил уже в распакованной памяти.
Но Это гемор и извращение  :D

0

8

Tekton
хз, как говорится - попытка не пытка ;)
там текста около 5 страниц...
можно конечно отдельным файлом мануал сделать, но это "не гламурно"  :D

0

9

Хм... Есть решение перевода названия колонок. Во вкладке Snapshots можно переводить нормально, а вот в остальных используется кодировка 866 (OEM). Да и шрифт видно другой там. Проблема в том, что используется одно и то же слово. Умеешь пользоваться OgreGUI? Я могу тебе объяснить, а могу и сам все сделать. Просто переведи названия колонок, а я уже впихну все туда.

0

10

OgreGUI запускал пару раз, но не более того )) обычно все делаю в Radialix2...

да там и переводить то особо нечего....

Snapshots

Registry

Files

Applications

Remote scan

Help & Register

Снимки

Реестр

Файлы

Приложения

Remote scan

Справка

думаю, что "Remote scan" можно оставить и на инглиш, если только кто ни будь не предложит компактное слово взамен "Удаленное сканирование"

P.S. при переводе столкнулся еще с одним глюком:
во вкладке Snapshots, есть заголовки столбцов:

Name . Computer  .  OS  .  Date  . Size . Regs . Files . Apps, так вот там они нормально переводятся, в других вкладках становятся кракозябрами (((
так и не понял где грабли...

0

11

во вкладке Snapshots, есть заголовки столбцов
Так я за эти заголовки и говорю! А вот названия вкладок пока незнаю как найти.
Так вот эти Name . Computer  .  OS  .  Date  . Size . Regs . Files . Apps и другие названия столбцов в других вкладках нужно переводить через OgreGUI, только с небольшой хитростью. Можешь их перевести и я впихну, или же просто объясню как это сделать.
А вот со справкой геморой. Там упаковано ZIP-ом все-то полтора килобайта инфы, как это сделать автоматом пока незнаю... Может кто скажет, как извлекать беззаголовочные паки? А то вручную просто времени нет)))

0

12

Nexus
если не трудно, напиши как перевести их через OgreGUI, чтоб на будущее знать как решать такие проблемные места.

Horna
а можно чуть подробнее про извлечение этих упакованных ресурсов?
интересно глянуть, что туда, помимо *.html файлов справки, автор еще запихал.

0

13

Вот DLL-ка, которая находится внутри SysTracer. Скачать: rghost.ru

Как её извлечь из файла, я не знаю. Мне помог это сделать еще в том году NikolayD с eXeL@B. По его совету я не стал больше морочить голову с этой программой. Причину этого я описал в предыдущем своем сообщении.

В этой DLL находится все то, что вас интересует. В частности, справка прикреплена в виде оверлея (в архиве извлеченный из DLL-ки оверлей - файл overlay.htm).

Отредактировано Horna (2012-11-10 17:05:33)

0

14

dan8888, не морочь себе голову с этой программой, не стоит она таких усилий.

0

15

Horna
Спасибо за *.dll-ку! Ща поковыряюсь в ней :)

Solenij
Это скорее мое любопытство не дает мне покоя и будоражит ваш форум )))

Мне действительно интересно что там да как... и то, что в каждой новой версии придется повторять подобные "чудеса", я понимаю
и поэтому не буду в дальнейшем заниматься таким детальным переводом, т.к. автор перемудрил с расположением ресурсов и кодировками.
В общем-то, данную прогу можно было бы и не переводить, т.к она интуитивно понятна, но мне нравится, когда все на русском - это упрощает работу и понимание ;)

0

16

Поддерживаю dan8888. Мое любопытство помогло мне подкорректировать WinHex, что тот начал печатать на русском языке. Теперь им мне удобно пользоваться, и использую его чуть ли не чаще блокнота. Так что любопытство любопытством, а опыт от этого просто огромный. :question:

0

17

dan8888 написал(а):

Это скорее мое любопытство не дает мне покоя и будоражит ваш форум )))

Nexus написал(а):

Поддерживаю dan8888. Мое любопытство помогло мне подкорректировать WinHex, что тот начал печатать на русском языке. Теперь им мне удобно пользоваться, и использую его чуть ли не чаще блокнота. Так что любопытство любопытством, а опыт от этого просто огромный.

Так я против ничего не имею. Я сам самоучка и до всего, что знаю, допёр сам, за счет как раз своего любопытства.
P.S. По поводу проги, то я её глянул, но моих знаний недостаточно для распаковки всех ресов. Там, как сказал Nexus, идет сжатие zlib - никогда с ним не сталкивался и даже не знаю, как искать сигнатуру данного типа файлов. Если кто найдёт инфу по этой теме, то кидайте прямо сюда, думаю, автор темы не будет против?!

0

18

Horna
обращайтесь ко мне на ТЫ  :blush:

Nexus
полностью согласен!  :yep:

Solenij

Так я против ничего не имею.

вот это мне и нравится в вашем форуме, что это как небольшой клуб с общими интересами и без жесткого модерирования,
при этом участники конференции легко и непринужденно общаются без лишнего флуда и набивания постов.  :cool:

Если кто найдёт инфу по этой теме, то кидайте прямо сюда, думаю, автор темы не будет против?!

спорить с модератором - это все равно что ссать против ветра  :D
а если без шуток, то я обеими руками ЗА !
это же будет нужная и полезная для форума инфа...

P.S. 
Solenij, на Ru-Board′e попросили перевод для х64 ...
и я там отписался, про замудренность этой проги, со ссылкой на BlackStar Localizations Studio...
Собственно вопрос: оставить ссылку на твой форум или тут "подпольная организация" ?  :glasses:
т.е. стоит пиарить (в разумных пределах) BlackStar Localizations Studio или нет?

0

19

Раз пошла такая петрушка, то может сообща что-то у нас и получится. Я в одиночку с этим не справился. Вот что мне удалось выяснить.

Архиватор ZLIB - начало потока >> 78DAEC
В нормальном архиве ZLIB перед указанной сигнатурой идет указатель на размер файла. Например, 35 D8 05 00 78 DA EC..., где 35 D8 05 - это размер файла в распакованном виде. Запись в шестнадцатиричном формате (порядок байт обратный), т.е. перевернем байты и получим 05 D8 35, а в десятичном исчислении - 383 029 байт.

В файле SysTracer.exe указатель на размер файла отсутствует, есть только массив архива, т.е. поток. Но извлечь содержимое потока можно, если от балды задать размер по максимуму, например FF FF FF. При распаковке ZLIB сам определит окончание архива, и то, что не принадлежит запакованным данным отбросит. В итоге мы получим чистый файл.

Таким образом, экспериментальным путем (распаковкой потока и обратной запаковкой полученного файла) я выяснил, что архив находится по следующему адресу:

-----------------------
SysTracer v2.6.0.59

Начало потока: адрес - 000F0A28, конец потока: адрес - 0011DACE
-----------------------

Но вся беда состоит в том, как я писал выше, это обратная архивация изменённого файла. При изменении в файле хоть одного байта, после его сжатии в ZLIB, размер полученного архива получается на пару десятков байт больше, чем в оригинальном архиве и вставить обратно этот архив в файл SysTracer.exe не представляется возможным. Не говоря уже о том, что будет с размером после перевода.

Еще один момент, который мне не понятен, каким образом происходит обращение к оверлею и к его частям, как искать адреса, если они есть, потому что при смещении данных в оверлее (например после перевода), программа падает.

Еще один момент. Архив находится в секции .data файла SysTracer.exe. Может есть возможность как-то переадресовать его на конец файла, т.е. разместить его после секции с ресурсами, тогда думаю можно не париться с размером архива. Но моих знаний для этого недостаточно.

Приложение: В архиве либа из SysTracer v2.6.0.59.
Скачать: rghost.ru

0

20

dan8888 написал(а):

Собственно вопрос: оставить ссылку на твой форум или тут "подпольная организация" ?  т.е. стоит пиарить (в разумных пределах) BlackStar Localizations Studio или нет?

Организация у нас не секретная, поэтому пиар на ваше усмотрение.

Horna написал(а):

Архиватор ZLIB - начало потока >> 78DAEC

Сигнатура у разных файлов будет всегда такая?

Horna написал(а):

В файле SysTracer.exe указатель на размер файла отсутствует, есть только массив архива, т.е. поток. Но извлечь содержимое потока можно, если от балды задать размер по максимуму, например FF FF FF.

А не пробовали визуально в HEX-Редакторе найти окончание архива, может там идет какое-нибудь разделение в виде кучи нулей?

Horna написал(а):

Таким образом, экспериментальным путем (распаковкой потока и обратной запаковкой полученного файла)

А разве в zlib'е не надо знать ключ, по которому строится алгоритм сжатия? Разные ключи=Разный алгоритм сжатия.

Horna написал(а):

размер полученного архива получается на пару десятков байт больше

Вот как раз это я и имею в виду, что надо знать ключ.

Horna написал(а):

Еще один момент, который мне не понятен, каким образом происходит обращение к оверлею и к его частям, как искать адреса, если они есть, потому что при смещении данных в оверлее (например после перевода), программа падает.

В извлеченной DLL оверлей, вернее эта HTML-страничка видна хорошо, там как раз идет разделение нулями. А программа падает после перевода оверлея извлеченного или внутри DLL?

0

21

Сигнатура у разных файлов будет всегда такая?

Насколько мне удалось это проверить, используя разные архиваторы ZLIB, то сигнатура одна и та же, только в зависимости от реализации компоновки архива, заголовок файла с данными о архиве, может размещаться или в начале файла перед сигнатурой 78DAEC, или в конце, после потока данных архива. Каждый автор архиватора делает это по разному. Вот к примеру архиватор Simplyzip http://www.paehl.de/cms/simplyzip.

А не пробовали визуально в HEX-Редакторе найти окончание архива, может там идет какое-нибудь разделение в виде кучи нулей?

Да посмотрите сами в НЕХ-редакторе, адреса начала и конца я указал выше для SysTracer v2.6.0.59. Но это же частный случай. В другой программе будет все по-другому. Наработок в этом направлении у меня ещё нет.

А разве в zlib'е не надо знать ключ, по которому строится алгоритм сжатия?


Конечно же надо! Но какие ключи использовал автор, известно ему одному. Из спецификаций архиватора ZLIB известно, что он поддерживает сжатие по трем алгоритмам: No - без сжатия, Default - по умолчанию, Maximum - максимальное. Но там еще есть куча ньюансов по использованию таблиц Хаффмана для оптимизации. Изучать всю эту билитристику плюс программирование на С/С++ только для того, чтобы перевести одну программу - мне жизни не хватит. Я иду простым путем. Распаковал поток - получил файл. Потом запаковал его обратно по трем алгоритмам сжатия. Архив получился идентичным исходному при сжатии "Maximum". Потом от балды изменил в несжатом файле в НЕХ-редакторе один байт и снова запаковал - размер архива увеличился на 2 байта. Изменил два байта - увеличился на 4 байта. Изменил 3 байта - на 6 байт. И т.д.

Потом просто в НЕХ-редакторе нашел строку "How to use" и перевел так "Как исполь". Сохранил изменения и запаковал файл - его размер получился на 22 байта больше оригинального. Отбросил эти 22 байта и вставил в SyaTracer.exe на место исходного потока. Сохранил изменения и запустил файл.
http://savepic.su/2917855m.png

Делаю вывод: направление решения задачи правильное. Но переводить в НЕХ-редакторе мне не улыбается, тем более хотелось бы сделать это по человечески, без сокращений. Извлек оверлей. Открыл в текстовом редакторе и вместо фразы "How to use" написал "Краткое руководство". Сохранил изменения в файле. Прицепил к файлу библиотеки и запаковал её ZLIB. Размер файла стал еще больше. Но я отбросил лишнее в Нех-редакторе и вставил в SyaTracer.exe. Сохранил и запустил. Программа не запустилась и сообщила обшибке. Возможные причины ошибки: 1) отброшенная часть архива оказалась важной и 2) данные в файле оверлея поделены на блоки через разделитель 00. Фраза, которую я перевел "How to use", содержит 10 символов (10 байт), а на русском "Краткое руководство" содержит 19 символов. Делаю вывод, что последующие блоки из-за увеличения длины строки сместились на 9 байт. Делаю предположение, что программа обращается к оверлею не полностью, а только к его частям, поэтому размещение блоков в оверлее очень важно! Чтобы проверить это, в тексте (в первом предложении после строки "How to use") удаляю 9 символов (что равноценно 9 байтам). Сохраняю файл оверлея, цепляю его к файлу DLL, пакую его архиватором. Отбрасываю не помещающиеся байты и вставлю данные в SyaTracer.exe на место исходного потока. Сохранил изменения и запустил файл.
http://savepic.su/2885072m.png

Как видите из скриншота программа запустилась и надпись нормально отображается в окне программы. Отсюда я делаю вывод, что таки ДА, размещение блоков в файле оверлея очень важно. Программа как-то к ним обращается. Поэтому и спрашивал как можно узнать эти адреса и изменить их, чтобы не мучаться с подгонкой текста. Если это нереально, то тогда можно попробовать сделать перевод так, что размер блоков остался без изменений.

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

0

22

Короче, я в очередной раз убедился, что невозможного ничего нет. Сократить размер архива можно за счет удаления части информации с лицензией (текст забить нулями).

Оверлей читается по-блочно, как страницы в книжке. Каждый блок разделен символами 00. Окончание блока не важно, главное начало - его менять в файле оверлея нельзя. Я взял и перевел блок, в котором описывается как пользоваться программой. Кстати, в HTML-разметке блока оказалось много ошибок, пустых строк и комментариев. Все эти огрехи разработчика можно использовать для полноценного перевода на русский. После перевода полученный размер блока оказался даже меньше, чем оригинал. Оставшееся место я забил нолями до первоначального размера блока. Потом прицепил полученный файл оверлея к DLL-файлу и запаковал. Получился полный облом - размер запакованного файла получился на целый килобайт с лишним больше. Что делать? Тут я вспомнил про блок с лицензией. Она то в программе отображается только при установке, и её мало кто читает. Невелика будет потеря, если части текста с лицензией не будет хватать. Я открыл незапакованный файл DLL в НЕХ-редакторе, нашел конец блока с лицензией и начал забивать его ноликами. Правда обратите внимание, что в конце блока стоят теги, закрывающие HTML-документ. Так вот их надо подымать наверх, к тексту. Т.е. увеличиваем разрыв между блоком с лицензией и последующим блоком. Как вы помните, там первоначально был один байт [00], а теперь становится n-ое количество. Таким образом удалось подогнать размер модифицированного файла DLL, после его упаковки, к оригинальному - один к одному. А дальше уже дело техники: меняем массив архива в теле программы и вуаля

http://savepic.su/2922778m.gif

dan8888, я делал перевод этого раздела по твоей русифицированной программе (качал с ру-борда). Если ты понял суть, как и чего, то можешь перевести и остальные блоки. Конечно было бы неплохо перевести названия вкладок, колонок, пунктов контекстного меню, если это конечно возможно (думаю, что возможно). В итоге получится эксклюзивный перевод от тебя. :)

Приложение: в архиве пронумерованные папки с файлами - я сохранял все свои операции. Думаю, что вы должны разобраться. Сравните файлы, посмотрите чем они отличаются. Так вы поймете ход моих мыслей. Наконец, в переведенный dan8888-ом файл SysTracer.exe я внедрил модифицированную DLL-ку.

Скачать: rghost.ru

Спасибо всем за внимание!

+1

23

Horna, молодец! Я тоже всегда говорю, что невозможного ничего нет. Всё зависит от того насколько тебе это нужно.

+1

24

Horna
Сильно!
Пошел разбираться с архивом...

В итоге получится эксклюзивный перевод от тебя.

Да я то тут при чем? )) перевести и гугл может...., а вот разобраться во всем этом и объяснить доступно...
Тем более переводил прогу не ради славы... нельзя же только брать... надо ведь и отдавать...
Вот и стараюсь, быть полезным для интернет сообщества  :blush:

Честно скажу, я в восхищении от проделанной вами работы!

0

25

dan8888, я глянул твой проект (брал на ру-борде :) ), ты можешь перевести и заголовки колонок в таблицах. Для этого измени кодировку перевода для каждой строки, которая отвечает за колонку, на ср866 (как и говорил Nexus, только для этого не нужно использовать OgreGUI, все в Radialix'e):

http://savepic.su/2925916m.png

Только будь внимательным! Для таблицы на вкладке "Shapshots" и "Remote scan" кодировка заголовков windows-1251, а для всех остальных вкладок - ср866.

Также проверь свой проект на корректность спецификаторов формата (ресурс RT_STRING[6]). У тебя сплошные ошибки - это результат гугло-перевода - он портит формат спецификаторов.

Например, в английском варианте строка со спецификаторами:

Please enter an integer between %1 and %2.

А у тебя а переводе:

Введите целое число между %1 и % 2.

Видишь, знак процентов % отделен пробелом от цифры 2. Должно быть вместе.

Это может быть чревато серьезными глюками в работе программы.

Удачи!

0

26

Horna написал(а):

Только будь внимательным! Для таблицы на вкладке "Shapshots" и "Remote scan" кодировка заголовков windows-1251, а для всех остальных вкладок - ср866.

dan8888, если хочешь потренироваться в кодировках могу тебе посоветовать три RusMe. Первые два RusMe сделал я, а третий pp0312 с сайта wylek.ru.
Все три RusMe были сделаны специально для сайта wylek.ru (это чтоб авторское право было не нарушено).

P.S. Всех кто решил RusMe прошу не постить ответы, а только прикреплять скриншоты с переведенным интерфейсом RusMe. Если эта тема с RusMe разовьётся, то перенесу в отдельный раздел.

RusMe 1
RusMe 2
RusMe 3

0

27

Solenij
Это что, для школьников?
А у тебя новый сайт завелся? Кстати, с этими RusMe неплохая идея. Я поддерживаю.

Отредактировано Nexus (2012-11-12 20:05:29)

0

28

Horna,
Спасибо за подсказки!
Даже не думал, что на такой простой проге будет столько заковырок  %-)
Хотя в глубине души чувствовал, что если прога не покрыта навороченным протектором, то ее все же можно разобрать и собрать!
Отламывает же vnekrilov донгл у Passolo... и ASProtect разобрал по косточкам...
Мне до него как до луны, но есть к чему стремиться! )))
Буду дальше копать! ))

Solenij,
после SysTracer я ажжж боюсь их скачивать  :D  :D  :D
классный вызов! я поднимаю эту перчатку )))
p/s/ пошел качать :)

0

29

Второй RusMe оригинальная задумка, хотя и слишком легкая. А вот перевый немного вогнал в ступор по кодировке, но ниче - просмотрев в OllyDebagger, поменял во всех трех RusMe в коде кодировку на 1251. :D

0

30

Horna собери все свои посты из этой темы в один  :)
Оформим как отдельную статью-мануал  :D

0


Вы здесь » BlackStar Localizations Studio » Проблемы с переводом » HEX редактор и Radialix не видят часть ресурсов