Сообщений: 309
Тем: 7
Зарегистрирован: Jul 2013
Репутация:
1,233
Итак, сломал я вашего ЛокиРеборна, а точне его патчер для китайской версии. Теперь его программа работает на меня. :redlol: А также у есть полный сурс его патчера и "мифический" криптор для DataFile.bin
Ниже смотрим скрины:
Первые попытки русификации
Как вы можете видеть из скрина, русификация будет требовать шрифтов приятных для глаз...
Что касается сурса и криптора. Возможно я переделаю патчер под свои нужды (анпакера/пакера). Если будет время.
С наступающим всех!
Сообщений: 103
Тем: 2
Зарегистрирован: Dec 2013
Репутация:
213
12-25-2013, 02:11 PM
(Сообщение последний раз редактировалось: 12-25-2013, 04:37 PM trixiejack.)
Наверно долго старались, да?
Если у вас есть желание разрабатывать совместно, разрабатывая алгоритмы и анализируя пакеты, напишите в ЛС свой скайп. Про эмулятор я не упоминаю по одной причине - пишу на Go.
Сообщений: 309
Тем: 7
Зарегистрирован: Jul 2013
Репутация:
1,233
trixiejack Написал:Наверно долго старались, да?
Если у вас есть желание разрабатывать совместно, разрабатывая алгоритмы и анализируя пакеты, напишите в ЛС свой скайп. Про эмулятор я не упоминаю по одной причине - пишу на Go.
Заняло минут 30 на ночь. Как-то уж очень хвалили этого Локи, а на деле оказалось, то что оказалось. Разобрать не составляет труда, а вот заставить программу работать на себя и выполнять вам нужные задачи, чуток сложнее.
По поводу разработок, отпишу с января месяца, после всех праздников.
Сообщений: 103
Тем: 2
Зарегистрирован: Dec 2013
Репутация:
213
Ничего там сложного нету, декомпилированные исходники правятся минут 5-10 и поменять линк на свой архив с переводом. Это без учета Offset'ов, которые предоставляет Локи .php скриптом, но на данный момент не работает. Переписать программу на легковесный вариант тоже можно, крипт достаточно легкий.
Сообщений: 309
Тем: 7
Зарегистрирован: Jul 2013
Репутация:
1,233
12-27-2013, 08:36 PM
(Сообщение последний раз редактировалось: 12-27-2013, 09:04 PM luna9966.)
Небольшие новости...
Таки, я доломал окончательно программку Реборна. Из того что она может:
1. Полностью совместима с корейским клиентом последней версии.
2. Парсит и экспортит весь XML контент из datafile.bin в отдельный файл.
3. Позволяет редактировать поля как в переведенной английской версии, так и в чисто корейской.
Информация, думаю интересная для будущих переводчиков.
Русский перевод корейского лобби
Вот так выглядит корейский клиент в русском переводе. Да, нужно подобрать шрифт. Как это сделать я не в курсе, поскольку в эту сторону пока еще даже не смотрел. А так гораздо приятнее и лучше, чем в китайской версии.
Теперь о том, что такое datafile.bin. Кто пологал, что это закриптованный архив, тот ошибался. Этот файл из себя представляет обширную таблицу на подобии как в АА sqllite. Она содержит в себе описание предметов, квестов, интерфейса и системных сообщений. К слову, Реборн сам не до конца разрбрал datafile.bin. Таблицы он обозвал ввиде "unknown 1,2,3,4, ...". На самом деле, можно не парсить весь контент на 70+ мб, а выбирать лишь вам нужные таблицы. Например описание предметов или только интерфейс. Думаю идея понятна.
Теперь о программе. Есть желание поделиться ею, но пока что она сырая в плане интерфейса и адаптирована под мои требования. А так, да, для переводчиков хорошая утила, если таковые появились бы. С другой стороны, не хочу видить отвратительного перевода как в ява серверах линейки, где текст просто кишит миксами из английских и русских слов в перемешку.
Сообщений: 309
Тем: 7
Зарегистрирован: Jul 2013
Репутация:
1,233
DFE v0.10 Программа для расшифровки datafile.bin
Выкладываю в шару, поскольку наработки были получены путем реверсинга :redlol:
DFE v0.10
- Программа работает из корневого каталога без интернета.
- Расшифровывает datafile.bin как корейский, так и китайский.
- С помощью программы можно изменить любой текст в игре.
- Программа полностью автоматизирована. Алгоритм действия:
1. Распаковка xml.dat.
2. Расшифровка datafile.bin
3. Замена нужных строк.
4. Запаковка xml.dat
Пока столько. Для работы хватит.
Инструкция README
Небольшая инструкция.
Программа делает многое сама на автомате.
Чтобы начать работу, обязательно поместите xml.dat в корень с программой.
Запустите программу и нажмите "СТАРТ". Дождитесь окончания операции.
В корне программа создат файл DFE.exedatafile.xml.
Этот файл является расшифрованной версией datafile.bin.
Чтобы внести в него какие-то изменения, например перевод, используйте файл translate.xml
В строке <Original> следует писать текст, которые вы хотите изменить.
А в строке <Replacement> текст на который вы хотите поменять или перевести.
После этого, запустите программу еще раз. Она внесет все ваши изменения в xml.dat
Для корейской версии, обязательно используйте корейскую DFE.
Для китайской версии - китайскую chDFE.
В противном случае, программа не будет различать datafile.bin из-за особенности крипта
в корейской и китайской версии.
http://rghost.net/51307831
ps. Работает с последними версиями китайского и корейского клиента. Со старыми может не работать.
pps. Программу писал с русским интерфейсом, чтобы зарубежные ребята не слишком сильно растаскивали бы...
Сообщений: 1,912
Тем: 56
Зарегистрирован: Jan 2009
Репутация:
12,921
Такс - хотел сказать. Если Вы пишете - она не юзает инет. Знач тогда что это за код?
Код: // ___codefort.Q
private void (object obj, EventArgs eventArgs)
{
this.eD.Add( .("KZGK"), new
{
bT = .("KZGK"),
dm = .("kzgk"),
dp =
{
{
.("^JKPv["),
new ( .("^JKPv["), .bK, 0, .bY, 0, false)
},
{
.("^JKPv[\r"),
new ( .("^JKPv[\r"), .bK, 0, .bY, 0, false)
},
{
.("^SV^L"),
new ( .("^SV^L"), .bM, 0, .bY, 0, true)
},
{
.("KZGK"),
new ( .("KZGK"), .bD, 0, .bY, 0, true)
}
}
});
string value = ((AssemblyFileVersionAttribute)Assembly.GetEntryAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false)[0]).Version.ToString();
string text;
try
{
text = new WebClient().DownloadString( .("WKKO\u0005\u0010\u0010]QLO^K\\W\u0011^KPRVGMP\u0011\\PR\u0010pYYV\\V^S|WVQ^\u0010|JMMZQKiZMLVPQ\u0011OWO")).Replace( .("2"), .("")).Replace( .("5"), .(""));
}
catch
{
text = null;
}
if (text == null || text.Equals(value))
{
return;
}
Y y = new Y( .("wKKO\u0005\u0010\u0010]QLO^K\\W\u0011^KPRVGMP\u0011\\PR\u0010pYYV\\V^S|WVQ^\u0010LZKJO\u0011ZGZ"));
try
{
int num = (int)y.ShowDialog();
}
catch (TargetInvocationException var_4_19D)
{
}
}
проверка версии судя по коду. Но всеже. Предупреждайте
Сообщений: 309
Тем: 7
Зарегистрирован: Jul 2013
Репутация:
1,233
VISTALL Написал:Такс - хотел сказать. Если Вы пишете - она не юзает инет. Знач тогда что это за код?
code
Код: // ___codefort.Q
private void (object obj, EventArgs eventArgs)
{
this.eD.Add( .("KZGK"), new
{
bT = .("KZGK"),
dm = .("kzgk"),
dp =
{
{
.("^JKPv["),
new ( .("^JKPv["), .bK, 0, .bY, 0, false)
},
{
.("^JKPv[\r"),
new ( .("^JKPv[\r"), .bK, 0, .bY, 0, false)
},
{
.("^SV^L"),
new ( .("^SV^L"), .bM, 0, .bY, 0, true)
},
{
.("KZGK"),
new ( .("KZGK"), .bD, 0, .bY, 0, true)
}
}
});
string value = ((AssemblyFileVersionAttribute)Assembly.GetEntryAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false)[0]).Version.ToString();
string text;
try
{
text = new WebClient().DownloadString( .("WKKO\u0005\u0010\u0010]QLO^K\\W\u0011^KPRVGMP\u0011\\PR\u0010pYYV\\V^S|WVQ^\u0010|JMMZQKiZMLVPQ\u0011OWO")).Replace( .("2"), .("")).Replace( .("5"), .(""));
}
catch
{
text = null;
}
if (text == null || text.Equals(value))
{
return;
}
Y y = new Y( .("wKKO\u0005\u0010\u0010]QLO^K\\W\u0011^KPRVGMP\u0011\\PR\u0010pYYV\\V^S|WVQ^\u0010LZKJO\u0011ZGZ"));
try
{
int num = (int)y.ShowDialog();
}
catch (TargetInvocationException var_4_19D)
{
}
}
проверка версии судя по коду. Но всеже. Предупреждайте
Она не должна выполняться. Видимо забыл эти строки закомментить. Есть такое.
ps. Проверил без инета. Этот метод не выполняется, немного мусора в коде от переделки. В следующих версиях уже убран будет.
Сообщений: 1
Тем: 0
Зарегистрирован: Dec 2013
Репутация:
0
12-31-2013, 09:30 AM
(Сообщение последний раз редактировалось: 12-31-2013, 11:08 AM loveandpeace.)
почему?? =.=
Сообщений: 109
Тем: 0
Зарегистрирован: May 2011
Правильный вопрос зачем? Разбирать чужую софтину, потом вешать на нее говно защиту и выкладывать под своим именем, это отвратительно.
|