BlackStar Localizations Studio

Объявление

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

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

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


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


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

Сообщений 31 страница 60 из 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

31

Подожди, пускай все с прогой получится. Может че и добавить придется :O

0

32

Solenij,
крепко спалось сегодня? Не икалось?  :D
RusMe 1 - это какой то вынос мозга!
http://s2.uploads.ru/ayHTB.gif

прям брутфорс кодировок какой то  :D

а вот слово New так и не показалось ((( оно у меня даже в оригинальном файле не отображается на форме...

добавлено:
Может имеет смысл эти RusMe 1, ответы на них и вообще все обсуждения КОДИРОВОК перенести в отдельную ветку?
А в шапке, в спойлерах, сделать что-то вроде мануала или советов как с таким безобразием бороться.
Когда наберется достаточно мануалов, советов и подсказок из разных веток и топиков - сделать что-то вроде мануала в формате *.chm и назвать его, например, Библия Локализатора  :blush:
это мое скромное ИМХО

И назрел вопрос:
- при переводе RusMe 1, Radialix автоматом определил все исходные кодировки как 1252, и из-за этого потом проблемы с кракозябрами (((
Есть ли способ правильно определить все кодировки, которые есть в теле программы?

Отредактировано dan8888 (2012-11-13 09:16:28)

0

33

dan8888
Так и быть дам подсказку - оставшаяся кодировка поддерживает даже нелатинские символы. Короче, редкостная кодировка. Но мне пох, я все через дизассемблер поменял на 1251 и не парился :D . Когда доберешся до третьего, то там ждет тебя леший бабай :rofl:

0

34

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

Это что, для школьников?

В смысле? По простоте решения имешь в виду?

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

А у тебя новый сайт завелся?

Нет. Просто я вездесущий.  :D А если серьёзно, то на многих сайтах по русификации я участвую в конференциях, где-то администратором, где-то модератором. Поэтому и делаю для каждого сайта свой вклад. Например, так для сайта MSILab я делал видеоуроки по обходу проверки CRC. А здесь они были размещены только спустя год и то не в отдельной теме, а в какой-то из тем на форуме (не помню). Поэтому я указываю ссылку на первоисточник.

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

Кстати, с этими RusMe неплохая идея. Я поддерживаю.

Идея то хорошая, только вот идей для RusMe мало, да и сделать абсолютно любое RusMe я не смогу, тут нужны нормальные программисты.

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

Второй RusMe оригинальная задумка, хотя и слишком легкая.

Задумка мне самому понравилась, а вот по поводу легкости не соглашусь. Судя по его решаемости на других сайтах, он вызывает сложности, как у начинающих пользователей, так и у опытных.

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

а вот слово New так и не показалось ((( оно у меня даже в оригинальном файле не отображается на форме...

Странно, первый раз мне об этом говорят, а скачиваний за всё время было уже около 400. А во втором RusMe тоже самое?
А у кого-нибудь еще такое наблюдается?

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

Может имеет смысл эти RusMe 1, ответы на них и вообще все обсуждения КОДИРОВОК перенести в отдельную ветку?

Возможно в дальнейшем так и будет.

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

И назрел вопрос: - при переводе RusMe 1, Radialix автоматом определил все исходные кодировки как 1252, и из-за этого потом проблемы с кракозябрами (((Есть ли способ правильно определить все кодировки, которые есть в теле программы?

Radialix определил кодировки, как 1252, так как это что-то типа международной кодировки, ведь слово написано на английском языке, который тоже является международным.
Посмотри на скриншоте ниже, что слово File во всех кодировках, кроме уникода в hex'е пишется одинаково, поэтому Radialix так и определил.
http://solenij.narod.ru/1251_file.png

0

35

Nexus
наверное я не вижу строк из за того, что сижу под обрезаной виндой...

Solenij
вот пара скринов:
http://s3.uploads.ru/smMqI.gif   а вот второй:   тут была картинка она невольно стала подсказкой...

так и должно быть, как на втором скриншоте или у меня винда выпендривается?

Отредактировано dan8888 (2012-11-13 17:07:05)

0

36

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

так и должно быть, как на втором скриншоте или у меня винда выпендривается?

Я когда делал эти RusMe, то проверял их на оригинальных Windows XP SP3 и Windows 7 x86/x64 с настройками по умолчанию. Либо у тебя винда не оригинальная (сборка), либо ты при установке windows отключил поддержку данной кодировки, другой причины я не вижу.

0

37

Solenij
ОК, тогда в виртуалке сделаю.

0

38

Возвращаясь к программе SysTracer. Nexus, подскажи пожалуйста, как изменить кодировку в заголовках вкладок:

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

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

Код:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"

Но на других системах (Windows Vista, Windows 7 - проверял на виртуалке) это не прокатывает. Может есть возможность прямо в программе исправить это недоразумение? По твоим описаниям у тебя лихо получается поменять кодировку в программах при использовании дизассемблера. Я например не знаю как это делается. Если тебе не тяжело, поделись знаниями.

dan8888, надпись "Remote scan" можно перевести как "Сетевые ПК". Смысл то какой, удаленное сканирование компьютеров в локальной сети. К тому же, если ты копался в файле оверлея, то наверное заметил, что заголовки вкладок "Snapshots", "Registry", "Files", "Applications", "Remote scan" и "Help & Register" находятся именно там и разделены байтом 00, поэтому удлинить их не получится. В результате, как вариант, перевод "Remote scan" на русский "Сетевые ПК" более-менее приемлемо. Может будут другие предложения.

0

39

Horna
на сколько мне известно, это обычная практика, по замене кодовой страницы... Ссылка

"Remote scan" можно перевести как "Сетевые ПК"

О! Отличная идея!
Оверлеем еще не занимался, пока только ошибки с пробелами в  %1 исправил, да паркет дома стелил ))))
ремонт доделываю  :blush:

0

40

dan8888
"это обычная практика" - терпеть не могу такую практику...

Horna
Завтра доберусь домой, тогда и гляну. Я только нашел решение для названия столбцов, а для запакованных названий вкладок пока не искал...

0

41

Horna
Это не тот случай, где я могу помочь - у самого такая проблема недавно нарисовалась, хотелось чтобы мне в этом тоже помогли :D . В обычных прогах через дизассемблер ищешь константу кодовой страницы и вставляешь свою. Например, текст использует кодовую страницу 1255 - это в HEX 4E7. Ищем в проге эту константу и меняем на нужную - конечно на 1251 (это в HEX 4E3). В RusMe1 и RusMe2 можете потренироваться. Но с этой прогой такой номер не прокатывает. Правда есть одна мыслишка...
А точно кодировка названий закладок в 1250? Можешь дать распакованный файл ZLIB, в котором ты уже сместил справку и непереводимые слова (Кстати, это не Dll, а обычный EXE файл).

Solenij
Ты не знаешь где достать перечень таких кодировок как 409 или 419 (English) и иже с ними? Где-то на MSILab на форуме описывалось такое.

0

42

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

В обычных прогах через дизассемблер

А можно спросить, какой используете дизассемблер? Вы наверное будете громко и долго смеяться, но у меня пока ничего не получается. Открыл RusMe1 в OllyDbg, кликнул правой кнопкой в листинге и выбрал в контекстном меню команду "Search for -> Constant". Открылось окошко, ввел 4Е4 (если я правильно вас понял, то это кодировка windows-1252) и нажал ОК. Отладчик ничего не нашел. Тогда я ввел 4Е5 (windows-1253) - пусто. Потом я ввел 4Е6 (windows-1254) - снова пусто. Потом ввел 4Е7 (windows-1255) - пусто. Потом ввел 4Е2 (windows-1250) - опять пусто. Наверное я что-то неправильно делаю?! Можно подробнее с картинками (как для чайника). А то этот вопрос для меня очень смутный.  :dontknow:

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

А точно кодировка названий закладок в 1250?

Да проверял по порядку. Сначала изменил в реестре 1252 на 1251. Сохранил, перегрузил ПК и запустил программу - кракозябры остались. Потом вернул 1252 как было и поменял 1253 на 1251. Сохранил, перегрузил ПК и запустил программу - кракозябры. Короче осталось только 1250. Поменял её на 1251, сохранил, перегрузил ПК - все стало отображаться правильно.
http://imgs.su/tmp/2012-11-15/1352942666-376.jpg

Вернул в реестре как было по умолчанию 1250, перегрузил ПК - снова кракозябры. Поэтому однозначно получается кодировка windows-1250.

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

Кстати, это не Dll, а обычный EXE файл

А я думал, что это DLL-ка. Ну вот, ввел всех вас в заблуждение.

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

Ты не знаешь где достать перечень таких кодировок как 409 или 419 (English) и иже с ними?

Это не оно случайно: Locale-Codes или Locale IDs?
А как их можно использовать в нашем хозяйстве?   :question:

0

43

Horna
Насчет RusMe - ммм...Это же будет подсказка! Ну да ладно  - ищи кодировки UTF-8 (65001), 866, ISO 8859-9, 949 и 20866 (КОИ8) кодировки. Но иногда такое с прогами не прокатывает, как в этом случае. Поэтому спасибо за таблицы - буду эксперементировать.

0

44

Нихрена с румынской кодировкой не выходит... Прошерстил уже весь код на наличие значений 4E2 (1250) и 418 (идентификатор центральноевропейского языка). Но не с будуна же прога берет значение кодовой страницы 1250! Где-то же прописано это значение.

dan8888
Ты писал, что какие-то слова записаны в румынской кодировке - назви их и скажи как ты узнал, что это румынский язык.

0

45

Nexus, спасибо за подсказку по RusMe, оказывается пытался найти то, чего там и не было (кодовые страницы 1250, 1252, 1253, 1254, 1255). Но все равно в отладчике OllyDbg у меня и указанные тобой кодировки не получается найти. В НЕХ-редакторе сразу, правда только методом последовательного перебора нужной цепочки байт удалось найти то место, которое отвечает за кодировку.

А по поводу румынского, если открыть оригинальный файл SysTracer.exe например в редакторе ResHacker, то увидим что часть ресурсов на английском (1033), а часть на румынском (1048):

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

А если глянуть в таблицу локалей, то увидим, что румынская локаль соответствует кодировке 1250:

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

Я склоняюсь к тому, что наверное кодовая страница для заголовков берется из этого запакованного модуля. Хотя может и ошибаюсь. Я тупо в НЕХ-редакторе для файла SysTracer.exe искал два байта 1804 и менял их 1904. Поменяю одно, сохраню, запускаю программу- ничего. Нахожу следующее, меняю, сохраняю, запускаю - ничего. Короче прошерстил таким макаром всю прогу - пусто. Теперь осталось также сделать для запакованного файла, но пока терпение иссякло, т.к. работы много - запаковать, потом вставить файл - в общем перерыв. Может у кого еще какие идею возникнут.

0

46

в отладчике OllyDbg у меня и указанные тобой кодировки не получается найти

Да все там находится! Открываешь RusMe 1 в дебагере, открываешь Search for -> Constant, вбиваешь HEX значение 65001 (UTF-8) - это 0FDE9, главное чтоб была галочка Entire block. Сразу после него там идет значение 4E3 - это кодовая страница по умолчанию для MS San Serif. Также находишь кодировки 866 (hex 362), 28595 ISO 8859-5 (hex 6FB3), 949 Корейская (hex 3B5), 20866 русская КОИ8 (hex 5182).

Я склоняюсь к тому, что наверное кодовая страница для заголовков берется из этого запакованного модуля

Прошерстил вдоль и поперек. Менял, паковал в ZLIB, вставлял - результат нулевой. Что для 4E2, что для 418. Единственное, что пока не делал, так это в основном SysTracer.exe через WinHex не перебирал значения 418 меняя на 419 - их там аж 72 штуки :no: Так что проблема пока неразрешима...
Можно попробовать их через Юникод зафигачить :D

Отредактировано Nexus (2012-11-17 20:54:00)

0

47

Я, конечно, дико извиняюсь, но как в SysTracer поменять язык в ресурсах!? Через Ресторатор и Ресхак файл просто портится. Я никогда этого не делал.

0

48

Nexus, я например работал с этой программой в Radialix'e. На выходе он создает готовый файл, где у ресурсов уже стоит русская локаль. Вот как это показывает тот же ResHacker, если в нем открыть локализованный файл:

http://savepic.org/2473171m.png

Отредактировано Horna (2012-11-19 02:12:59)

0

49

Nexus
я это делаю через Radialix
http://s2.uploads.ru/t/Nxkpu.gif
картинка на 61,3 Кб

Можно попробовать их через Юникод зафигачить

мне кажется, что это упростит перевод ;)

Horna
а где вы нашли имена вкладок?!

Отредактировано dan8888 (2012-11-19 13:09:56)

0

50

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

Можно попробовать их через Юникод зафигачить

А смысл этого, если мы не знаем откуда программа берет кодовую страницу 1250 для заголовков? Если набрать текст в юникоде, то считывание все равно выполняется согласно странице 1250.  :dontknow:

Насколько я понял, элемент вкладок (Tab) в программе создается средствами API с использованием стандартной библиотеки Windows  comctl32.dll, имя класса - SysTabControl32. Но что-то я пока не могу найти, как же задается локаль для текстовой строки элемента вкладки. Тут без помощи не обойтись. Для меня отладчик, что автомобиль для первобытного человека.

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

а где вы нашли имена вкладок?!

В файле оверлея! Смотри в самом конце.
http://savepic.org/2450444m.png

Редактировать лучше в НЕХ-редакторе, чтобы не сместить позиции разделителей 00.

0

51

Horna

В файле оверлея! Смотри в самом конце.

до него так и не добрался еще...
P.S. а чем это вы такие замечательные скриншоты делаете? :offtop:

0

52

SysTabControl32
Такой функции ненаблюдается нигде. Она попросту не используется.
Radialix я никогда еще не пользовался... Надо будет скачать.
Horna
А почему через Radialix когда меняешь язык 1048 на русский в ресурсах, то появляется число не 1049, а 25? (на твоем скрине выше)

Мляяя! Так и знал! Вот почему изменение через Winhex в коде значения 418 на 419 ничего не дает! Я меняю в коде число 1804 на 1904, а оно оказывается хранится упрощенно - просто 18. Нужно его найти и переправить на 19. 19 - это hex значение числа 25, которое выставляет Radialix в ресурсах после изменения там языка.
Нет, полюбому надо добить эту прогу...

И еще один "сюрприз"! В файле SysTracerSrv.dll (там где оверлей) через HEX редактор можно обнулить содержимое вплоть до участка со словами "EULA", "SOFTWARE PRODUCT" и иже сними. Короче, оставить по сути один оверлей. Но нули удалять ни в коем случае нельзя - то есть сокращать размер! По сути теперь можно наращивать размер файла и после сжатия размер будет в пределах 20-50 кб. Теперь можно не париться о размере переведенной справки! Но осторожно - я не знаю для чего нужен в этом файле лишний код, нужно протестить, может он где-то используется, а так после сокращения вроде все работает. Поэтому нечего ковыряться в этом коде на наличие румынской кодовой страницы. Хотя может она прописана и в самом HTML оверлее, кто знает...

Отредактировано Nexus (2012-11-20 01:27:24)

0

53

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

а чем это вы такие замечательные скриншоты делаете?

А чем эти скриншоты такие замечательные?
Мне понравилась программа Greenshot, в ней и делаю.  :cool:  (не сочтите за рекламу). Ну, а по-большому счету вид скриншота не зависит от того в какой программе он сделан.

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

Мляяя! Так и знал!... оказывается хранится упрощенно - просто 18 нужно найти и переправить на 19.

И как же найти это одно единственное 18? Да и не факт, что это именно так. Ух-х, у меня уже голова кругом от этих цифирек.  %-)

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

Нет, полюбому надо добить эту прогу...

Вроде бы немного осталось, исправить кодировку для заголовков и в принципе программ готова. Хотя можно было бы пойти еще дальше: чтоб программа генерировала HTML-отчеты на русском. Но там тоже с кодировками чехарда: шаблоны для таблиц в программе зашиты в кодировке 1252 или 1250, а при создании отчета они конвертируются в Unicode. Естественно при конвертации символы берутся из кодовой страницы 1252 (1250) и после перевода на русский на выходе получается полный бред :tired: 
Ладно с этими отчетами, можно пережить, а вот бы добить заголовки...

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

Поэтому нечего ковыряться в этом коде на наличие румынской кодовой страницы. Хотя может она прописана и в самом HTML оверлее, кто знает...

Я уже искал. Там кроме строки HTTP/1.1 418 больше нигде не упоминается никаких кодировок. Я пробовал менять эти 418 на 419 - результата нет.

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

Но осторожно - я не знаю для чего нужен в этом файле лишний код, нужно протестить, может он где-то используется

Удалять нельзя. Программа может быть установлена в качестве службы Windows (для удаленного доступа через сетевое окружение и создания снимков). Так вот, в качестве службы и устанавливается этот файл SysTracerSrv. Конечно вряд ли кто-то из наших юзеров устанавливает её в таком режиме, тогда пожалуй и можно, но я думаю, что лучше этого не делать. Я в оверлее уже все основные тексты перевел, и конечный файл нормально пакуется и размер получается меньше оригинального (выигрыш места получился за счет удаления текста лицензии - она там о-очень объемная).

Поэтому остается только долбать основной файл SysTracer.exe.  :smoke:

Отредактировано Horna (2012-11-20 02:24:41)

0

54

Доделал перевод Ссылка, гляньте, если не трудно, на предмет ошибок...
Там только интерфейс, справку в оверлее не трогал  :blush:
еще споткнулся на вкладке Remote scan, там есть две колонки: Last scan и  Scan targets
эти две строки не имеют ссылок (т.е. не получится удлинить строку) и я их пока оставил не переведенными...
Может есть у кого идеи - как их облагородить?

0

55

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

еще споткнулся на вкладке Remote scan, там есть две колонки: Last scan и  Scan targets

У меня в проекте для этих строк ссылки есть:

http://savepic.org/2433797m.png

Попробуй в IDA использовать команду меню "Найти все ссылки", сохрани изменения в файле *.rdmap, а затем обнови проект Radialix:

http://savepic.org/2434821m.png

Да, версию Radialix лучше использовать последнюю на текущий момент.

А IDA какую версию используешь? У меня 5.5.

Еще как вариант, так это создать файл ссылок *.rdmap заново.

0

56

да, стояла версия 5,2... поставил 5,5 - все правильно показала ))

0

57

Короче, после многих часов задротства, удалось найти и поменять значение румынской кодировки для вкладок (точнее, центральноевропейской). Все оказалось намного сложнее, чем я думал. Это для меня что-то новое. Но тем не менее...
Итак, вот ее история...
Как известно, в основном файле и оверлее при изменении HEX значений 0418 (1048) на 0419 (1049), 04E2 (1250) на 04E3 (1251) и такого редкого значения 0018 (24 - румынский по умолчанию) на 0019 (25 - русский по умолчанию) ничего не дает. Тогда я начал искать шрифт используемый вкладками - через Winhex нашел в основном файле Arial CE - это Arial Central European, то бишь Центрально-Европейский, то что нам нужно. Изминение его на какой-нибудь другой дает только визуальный эффект, но не меняет крякозябли. Тогда заглянул в ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes, там как раз есть этот шрифт "Arial CE,238"="Arial,238". Взял в соседнего кириллического шрифта Arial CYR,204 значение 204 и поменял им значение 238 - получилось "Arial CE,238"="Arial,204", перезагрузился - крякозябли пропали! Но нам же не нужно менять что-то в системе! Значит нужно искать число 238 в основном файле. 238 - это Hex EE. Открываем через OllyDebugger (я использую версию 2.01, у нее лучше анализатор) файл SysTracer.exe, ищем константу EE (Search for->Constant...), там на наше счастье оказалась только одна - у меня это по адресу 0046A039, меняем ее на CC (Hex значение числа 204), впихиваем в файл, запускаем - вуаля, все работает! Кстати, недалеко после изменяемого значения торчит и название шрифта - Arial CE. Почему кириллица значение CC? Вот страница откуда я это узнал: http://www.fonta.ru/index.php?option=co … tstart=102
P.S. Ну вот и более-менее справились с переводом, а то на Exelab тебе говорили что все спрятано как игла кащея в яйце...

dan8888
Шарился по коду проги и наткнулся на такое
.?AVCXListCtrlСнимки@@
В Winhex смещение 11EDCC. Это что, так и должно быть?! По моему ты зацепил какую-то функцию, или я не прав?

+1

58

Nexus, молодчина!!! Вот это да!!!  :cool:

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

По поводу Font Charset, вот информация с MSDN. Нам это в хозяйстве пригодится. Обратите внимание на нех-значение набора символов ANSI - 00 (десятичное - 0). Мне кажется его будет наиболее сложно найти.

Отредактировано Horna (2012-11-25 02:19:09)

0

59

Nexus, Сильно!  :cool:

to All

Код:
.?AVCXListCtrlСнимки@@

это я искал заголовки вкладок  :blush:
в последнем файле, который вчера выкладывал, этого уже нет.

в проге еще нашел строки:
http://s2.uploads.ru/t/QuBfA.gif

только слово Name не могу найти (( и такое ощущение, что в теле проги есть еще один *.html файл, в виде таблицы,
т.к строки имеют вид: tr><td id=x>Install date<td>, а при переводе атрибутов файла (Archive, Hidden, Read Only, Directory) опять лезут крокозябры ((( кодировка срр866 не подходит.

Офтоп: афтар проги уже, наверное, три недели икает круглосуточно  :D

Отредактировано dan8888 (2012-11-25 09:20:31)

0

60

Nexus, молодец. Век живи, век учись. Некоторые новые моменты для себя извлек из твоих исследований.  :cool:

0


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