| 
		
	
	
	
		
	Сообщений: 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
 
Пока столько. Для работы хватит.
 
			http://rghost.net/51307831Инструкция README 
Небольшая инструкция.
 Программа делает многое сама на автомате.
 
 Чтобы начать работу, обязательно поместите xml.dat в корень с программой.
 
 Запустите программу и нажмите "СТАРТ". Дождитесь окончания операции.
 
 В корне программа создат файл DFE.exedatafile.xml.
 
 Этот файл является расшифрованной версией datafile.bin.
 
 Чтобы внести в него какие-то изменения, например перевод, используйте файл translate.xml
 
 В строке <Original> следует писать текст, которые вы хотите изменить.
 
 А в строке <Replacement> текст на который вы хотите поменять или перевести.
 
 После этого, запустите программу еще раз. Она внесет все ваши изменения в xml.dat
 
 
 Для корейской версии, обязательно используйте корейскую DFE.
 Для китайской версии - китайскую chDFE.
 
 В противном случае, программа не будет различать datafile.bin из-за особенности крипта
 
 в корейской и китайской версии.
 
 ps. Работает с последними версиями китайского и корейского клиента. Со старыми может не работать.
 
pps. Программу писал с русским интерфейсом, чтобы зарубежные ребята не слишком сильно растаскивали бы...    
	
	
	
		
	Сообщений: 1,912 
	Тем: 56 
	Зарегистрирован: Jan 2009
	
 Репутация: 
12,921 
	
	
		Такс  - хотел сказать. Если Вы пишете - она не юзает инет. Знач тогда что это за код? Код: // ___codefort.Qprivate 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.Qprivate 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.)
		
	 
		почему?? =.= ![[Изображение: 25k5rp2.png]](http://i43.tinypic.com/25k5rp2.png)  
	
	
	
		
	Сообщений: 109Тем: 0
 Зарегистрирован: May 2011
 
	
	
		Правильный вопрос зачем? Разбирать чужую софтину, потом вешать на нее говно защиту и выкладывать под своим именем, это отвратительно.
	 |