3D Via Virtools
Здравствуйте!Я в первые на форуме,но с zlibом знаком.В не безизвестной серии консольных игр(а именно в
-
Поправка-начинающему переводчику,я хоть и переводил,но своего проэкта по переводу у меня не было,так по мелочи,там по переводил,там попробывал,там порылся.Вот где серьёзно углублялся в ньюансы перевода-так это в gta psp версий.На счёт русской справки по этому движку-вряд ли,т.к. двиг давно забыт,но на нем конструировались поистине шедевры,да не то что справку-рускоязычные форумы по этому двигу почти все закрылись.Потом так потом перенесём.Выкладываю архив ~30 мегов.В одной папке-все причастные к переводу файлы,в другой папке шифрованный файл в запакованном и распакованном виде + ключ.Ссылка на архив https://yadi.sk/d/hirE3ByAZySM5.
P.S.Я имел ввиду диалоговые окна плагинов)Сообщение отредактировал DenielX 19 августа 2014 - 11:2318 августа 2014 - 19:38 / #11 -
DenielX, а почему вы не можете сразу перевести ресурсы в самом исполняемом файле? Зачем лезть в языковый файл, если все барахло зашито в экзешнике?19 августа 2014 - 23:57 / #12
-
Откуда такая уверенность что exe файл содержит весь диалоговый интерфейс?И шрифты же он не из винды берёт=>русских шрифтов нет,вот хотя бы первая причина того,почему нельзя просто так взять и перевести-соответствия символ<->пикча в шрифтах нету.А впрочем ща языковой удалю и проверим.Я думаю,что это не языковой файл,а инглиш шрифты зашифрованные.
Проверил-все таки грузит он,что то из него(english.nlp).При удалении и последующем запуске пишет,что нет языкового пакета,потом если нажать ок в этом предупреждении,приложение вылетает.Надо расшифровать его или провести анализ екзешника.Сообщение отредактировал DenielX 20 августа 2014 - 00:3920 августа 2014 - 00:31 / #13 -
DenielX, на раскриптовку файла у меня может уйти неделя или больше. Я не слишком большой профи в этих делах, поэтому и искал более легких путей. Но вероятность успеха в его расшифровке все же имеется, так как уже найден участок кода в экзешнике, который отвечает за расшифровку и загрузку в память языкового файла.
Также можете создать параллельные ветки на вышеуказанных хакерских сайтах для ускорения процесса расшифровки файла, так как мы щдесь не ахти какие спецы по этому делу и всего лишь учимся всем этим премудростям20 августа 2014 - 00:44 / #14 -
Это хорошо)Забил на декриптовку со вчерашнего дня-занялся практической частью(переводом) по тематике проги.Сейчас в листинге перевода ~6500 символов написано,из них половину-это перевод.А что там 64 битным ключом,который я нашёл?пригодился или ещё нет?
P.S.Можно по хардкору перевести-транслитом .
И кстати раз кусок кода найден,уже известно какие алгоритмы криптовки он использует?Я первым делом попробывал XOR.А именно посмотрел ключ в десятичной системе и ввёл его в качестве ключа к файлу,на выходе получилась лажа,ключ пробовал в различных вариациях(ну типо старшие байты младшими менял,дешифровка в два прохода с делением ключа пополам на 4 байтовые куски для каждого прохода и т.д.). Ни чё из этого не вышло.Сообщение отредактировал DenielX 20 августа 2014 - 01:2220 августа 2014 - 01:13 / #15 -
А что там 64 битным ключом,который я нашёл?пригодился или ещё нет?
Я еще не определил что это за мусор, еще посмотрю.
Оооо! При переводе программы вылазят крякозябли Это еще дополнительный геморр с переводом.
И кстати раз кусок кода найден,уже известно какие алгоритмы криптовки он использует?
Хз, сомтреть нужно, в папке есть CKZlib.dll, который что-то делает, вот от него и отталкиваюсь.20 августа 2014 - 01:51 / #16 -
Оооо! При переводе программы вылазят крякозябли Это еще дополнительный геморр с переводом.Это значит,что в проге нет русских шрифтов.Тут система везде такая:есть символ,и есть соответствующее этому символу изображение,к каждому символу присваивается ID,по этому ID'у прога ищет изображение,т.е. символ->ID->изображение символа.Тут загвоздка в последних двух.По тем ID'ам,где должны быть русские символы в файле шрифтов обычно те самые "кракозяблики",что бы "кракозяблики" исчезли нужно заместо них нарисовать(или взять аналогичные готовые)шрифты,что бы ID соответствовал русскому шрифту,а не "кракозяблику".Прикрепляю тебе файл осмысленного перевода,подобранного под эту прогу лично мной.https://yadi.sk/i/5112yWG4a7tp820 августа 2014 - 19:31 / #17
-
В общем, все встало на свои места:
Якобы 8-байтовый ключ - оказался обычной контрольной суммой уже сжатого ZLIB архива и прикрепленного к этому же архиву. Наверное для проверки целостности ZLIB архива от шаловливых переводчиков типа нас
После распаковки языкового файла (ZLIB архива) с помощью библиотеки CKZlib.dll (внутренняя процедура uncompress) идет собственно сама дешифровка уже распакованного языкового файла. Алгоритм там собственно не мудреный - обычный XOR байта на следующий байт с прибавлением к нему 7F и еще какой-то математической операцией, я сильно не вникал. Уже дешифрованный файл прикрепил к этому сообщению.
Ну а теперь самое главное - это обратная операция шифровки и упаковки файла. Как поступить?
1. Написать собственную утилиту шифрования файла. На это у меня может уйти время, так как я очень хреновый программист
2. Подправить сам исполняемый файл так, чтобы программа не пыталась дешифровать файл, а тупо просто считывала данные из языкового файла и использовала их для своих нужд. Это у меня получится намного быстрее, потому как там нужно всего лишь обнулить небольшшой фрагмент кода и все. Останется только запаковать языковый файл каким-нибудь ZLIB архиватором и присобачить к нему в конце CRC-сумму.20 августа 2014 - 20:23 / #18 -
Молодец!А мне собственно кроме XOR'а ничего дельного в голову не приходило.А контролка....Я должен был догадаться(нечто подобное уже встречал) Править код экзешника или делать криптовщик языкового файла ?Думаю,что надо править екзешник,т.к. и быстро,и удобней перевод в дальнейшем править+нету кряков затрагивающих экзешник.Я бегло прошёлся по декриптованному языковому паку-это не вся писанина,видимо части в экзешнике и дллках,но это особо ничего не меняет.Я вот думаю-шрифты может стандартные юзаются или же в дллки пихнули?Надо подумать над тем как подцепить русские шрифты...В экзешнике случаем на эту операцию не натыкался?Надо найти библиотеку шрифтов,но т.к. я с анализом исполняемых файлов не очень-лучше не буду под ногами мешаться,а вернусь к переводу.У тебя +1 за декриптовку).20 августа 2014 - 21:20 / #19
-
Не могу найти чем бы вычислить контрольную сумму в 8 байт уже запакованного ZLIB архива. Получается, что после запаковки Zlib нужно еще к нему в конце добавить 8-байтный CRC, но сколько не вычислял так неичего и не смог подобрать - ни один результат не совпадает со старым "ключем". Может вырезать с программы эту проверку целостности архивов и не париться?21 августа 2014 - 22:40 / #20