IPB

Здравствуйте, гость ( Вход | Регистрация )

Monster Hunter Freedom Unite, нужен перевод
SGun
сообщение 17.11.2009, 16:07
Сообщение #1


Участник
**

Группа: Пользователи
Сообщений: 12
Регистрация: 3.2.2009
Пользователь №: 429



Есть несколько единомышленников, которые хотели-бы увидеть в свете русскую версию Monster Hunter Freedom Unite. Вопрос в следующем: возможно ли это? Ну и понятное дело, что мы согласны сложиться некоторой суммой вам в поддержку. Спасибо за ответ )
Перейти в начало страницы
 
+Цитировать сообщение
 
Начать новую тему
Ответов
HoRRoR
сообщение 22.11.2009, 18:04
Сообщение #2


Администратор
***

Группа: Администраторы
Сообщений: 948
Регистрация: 28.12.2007
Из: Ростов-на-Дону
Пользователь №: 1



Нет, ребятки, скорей всего без PSP мне вряд ли удастся что-нибудь сделать. Либо я напал на ложный след, либо там всё гораздо сложнее, чем я думаю. Даже была бы у меня PSP - совсем не факт, что я бы разобрался, без дебаггера (которого для PSP нет в природе, разве что у разработчиков) довольно сложно выходит: я не знаю даже, какими именно данными оперирует процедура, адреса чего хранятся в регистрах, какие исходные данные берутся при генерации ключей для шифрования, и т.д. и т.п. В принципе, это можно было бы узнать, но заняло бы довольно много времени и сил, да и то только при наличии PSP.
Я, конечно, постараюсь ещё что-нибудь сделать, но я действую вслепую, я не могу свои догадки даже проверить. Так что в случае чего - не расстраивайтесь.

А пока выпишу всё, что мне удалось узнать, на всякий случай.

Если судить по той процедуре, что я нашёл (она, кстати, двусторонняя - как для шифрования, так и для дешифрования, разве что для каждого случая нужны разные матрицы, о них ниже), данные криптуются следующим образом:
Имеется 32-х битный ключ, состоящий по сути из двух независимых 16-битных ключей. О нём чуть позже.
Также имеются две 256-ти элементные матрицы кодов - байты от 0 до 255, разбросанные в хаотичном порядке, при этом присутствует только по одному экземпляру каждого байта. Нужны они, чтобы заменять кодами из матрицы исходные данные методом взятия кода из матрицы по индексу, которым является исходный байт. Т.е. было у нас что-либо вроде 11 00 00 00, стало 5F 56 56 56 - уже не похоже на исходные данные. По сути это можно описать как byte = matrix[byte]. Первая матрица - в одну сторону, вторая - в обратную, для декодирования. Т.е. последовательность byte = matrix[byte]; byte = matrix2[byte]; вернёт нам исходный байт.
Код
unsigned char changeByte(unsigned char b){
    return matrix[b];
}


Ключи генерируются следующим образом: если верить коду, то туда передаётся некий параметр (вообще я уверен, что на создание ключа влияет номер сектора, в котором хранятся данные, однако в коде я такого не углядел), расположенный по адресу [data_addr + size - 4] (я в этом не уверен, но код говорит именно это), при этом эти 4 байта дважды прогоняются через преобразование по матрице (matrix[matrix[byte]]), затем делятся на два ключа по 2 байта. Если первый "полуключ" получается нулевым, ему присваевается 0x215F. Если второй - 0xDFA3.
Код
void createKey(unsigned int value){
    key1 = value & 0xFFFF;
    key2 = (value >> 16) & 0xFFFF;
    if(!key1) key1 = 0x215F;
    if(!key2) key2 = 0xDFA3;
}

Далее данные обрабатываются по 4 байта следующим образом: все 4 байта преобразуются через матрицу, затем вызывается процедура смены ключей (о ней ниже), 4 байта представляются как одно значение и xor'ятся с ключом, который возвращает процедура смены ключей. Затем 4 байта снова преобразуются.
Смена ключей происходит примерно так:
Код
unsigned int getKey(){
    key1 = (key1 * 0x215F) % 0xFF8F;
    key2 = (key2 * 0xDFA3) % 0xFFEF;
    return key1 + (key2 << 16);
}


Сама же процедура обработки - примерно так:
Код
void processData(unsigned int offset){
  int i;
  for(i = 0; i < 4; i++) data[offset + i] = matrix[data[offset + i]];
  *(unsigned int*)(&data[offset]) ^= getKey();
  for(i = 0; i < 4; i++) data[offset + i] = matrix[data[offset + i]];
}


А вот, собственно, сами матрицы (я не знаю, какая из них служит для кодирования, а какая для раскодирования):
Код
unsigned char matrix[256] = {
    0x3A, 0x11, 0x72, 0x6E, 0x2F, 0x7A, 0x23, 0xF0, 0x6B, 0x5C, 0xCA, 0x41, 0x57, 0x5D, 0xB2, 0xA8,
    0x06, 0x5F, 0xC9, 0xD8, 0x17, 0x82, 0xBB, 0xD2, 0x88, 0x86, 0x27, 0x47, 0xC7, 0x29, 0x5B, 0x04,
    0x8E, 0xAE, 0x5E, 0x33, 0x49, 0xDB, 0xA5, 0x7B, 0x31, 0xB7, 0xB5, 0x84, 0xF6, 0x76, 0x81, 0xAD,
    0x6F, 0xE0, 0x39, 0x87, 0xC0, 0xAB, 0x68, 0x4D, 0x05, 0x92, 0x77, 0xFF, 0x99, 0x36, 0x2C, 0x07,
    0x0A, 0x59, 0xFA, 0xBC, 0x54, 0xE1, 0x94, 0x3D, 0x1F, 0x58, 0xA6, 0xAA, 0x53, 0x2E, 0x89, 0xEB,
    0x9C, 0x98, 0x1B, 0xD6, 0xC1, 0x30, 0x00, 0xF4, 0xEF, 0x7D, 0xBF, 0xE8, 0x0C, 0xC4, 0xAC, 0xF3,
    0xEA, 0x78, 0xBE, 0xAF, 0xB0, 0x08, 0xA1, 0x90, 0x60, 0x2A, 0xD4, 0x62, 0x3B, 0xA7, 0xD9, 0xED,
    0x7C, 0xF5, 0xEC, 0xBA, 0x9B, 0x4A, 0x0F, 0x3C, 0x7F, 0xC6, 0x24, 0x55, 0x01, 0x43, 0x22, 0x8A,
    0xA0, 0x70, 0x65, 0x67, 0x50, 0x1D, 0x96, 0x42, 0xCE, 0x20, 0x03, 0x12, 0xE3, 0x4E, 0x95, 0x26,
    0xE4, 0xB8, 0xD7, 0x48, 0xD0, 0xC3, 0xB9, 0x80, 0x18, 0xD5, 0x02, 0x34, 0x21, 0x8B, 0xDF, 0xE9,
    0x61, 0x79, 0x0E, 0x93, 0xA3, 0x63, 0x1A, 0x9D, 0xB3, 0xCD, 0xE6, 0x14, 0x2D, 0xDC, 0xA4, 0x9E,
    0x28, 0x75, 0xA9, 0x66, 0x91, 0xBD, 0xD3, 0x6A, 0x6D, 0xFB, 0x5A, 0x8C, 0xE7, 0x64, 0x97, 0x19,
    0x46, 0xFE, 0x32, 0xF2, 0x9F, 0x38, 0x9A, 0x10, 0x3F, 0x6C, 0xE2, 0xD1, 0x45, 0x15, 0xB4, 0xDE,
    0x40, 0x56, 0xE5, 0x3E, 0xF9, 0xC8, 0x35, 0x16, 0x69, 0xFC, 0x85, 0x8F, 0x51, 0xA2, 0xC5, 0xEE,
    0xB6, 0x8D, 0x74, 0xCC, 0xB1, 0x4F, 0x25, 0xFD, 0x7E, 0x1C, 0x09, 0x13, 0x4B, 0x37, 0xCF, 0xDA,
    0x4C, 0xF7, 0xC2, 0x52, 0x2B, 0xF1, 0x1E, 0xF8, 0x0B, 0x83, 0xCB, 0x44, 0x0D, 0x73, 0x71, 0xDD
};

unsigned char matrix2[256] = {
    0x56, 0x7C, 0x9A, 0x8A, 0x1F, 0x38, 0x10, 0x3F, 0x65, 0xEA, 0x40, 0xF8, 0x5C, 0xFC, 0xA2, 0x76,
    0xC7, 0x01, 0x8B, 0xEB, 0xAB, 0xCD, 0xD7, 0x14, 0x98, 0xBF, 0xA6, 0x52, 0xE9, 0x85, 0xF6, 0x48,
    0x89, 0x9C, 0x7E, 0x06, 0x7A, 0xE6, 0x8F, 0x1A, 0xB0, 0x1D, 0x69, 0xF4, 0x3E, 0xAC, 0x4D, 0x04,
    0x55, 0x28, 0xC2, 0x23, 0x9B, 0xD6, 0x3D, 0xED, 0xC5, 0x32, 0x00, 0x6C, 0x77, 0x47, 0xD3, 0xC8,
    0xD0, 0x0B, 0x87, 0x7D, 0xFB, 0xCC, 0xC0, 0x1B, 0x93, 0x24, 0x75, 0xEC, 0xF0, 0x37, 0x8D, 0xE5,
    0x84, 0xDC, 0xF3, 0x4C, 0x44, 0x7B, 0xD1, 0x0C, 0x49, 0x41, 0xBA, 0x1E, 0x09, 0x0D, 0x22, 0x11,
    0x68, 0xA0, 0x6B, 0xA5, 0xBD, 0x82, 0xB3, 0x83, 0x36, 0xD8, 0xB7, 0x08, 0xC9, 0xB8, 0x03, 0x30,
    0x81, 0xFE, 0x02, 0xFD, 0xE2, 0xB1, 0x2D, 0x3A, 0x61, 0xA1, 0x05, 0x27, 0x70, 0x59, 0xE8, 0x78,
    0x97, 0x2E, 0x15, 0xF9, 0x2B, 0xDA, 0x19, 0x33, 0x18, 0x4E, 0x7F, 0x9D, 0xBB, 0xE1, 0x20, 0xDB,
    0x67, 0xB4, 0x39, 0xA3, 0x46, 0x8E, 0x86, 0xBE, 0x51, 0x3C, 0xC6, 0x74, 0x50, 0xA7, 0xAF, 0xC4,
    0x80, 0x66, 0xDD, 0xA4, 0xAE, 0x26, 0x4A, 0x6D, 0x0F, 0xB2, 0x4B, 0x35, 0x5E, 0x2F, 0x21, 0x63,
    0x64, 0xE4, 0x0E, 0xA8, 0xCE, 0x2A, 0xE0, 0x29, 0x91, 0x96, 0x73, 0x16, 0x43, 0xB5, 0x62, 0x5A,
    0x34, 0x54, 0xF2, 0x95, 0x5D, 0xDE, 0x79, 0x1C, 0xD5, 0x12, 0x0A, 0xFA, 0xE3, 0xA9, 0x88, 0xEE,
    0x94, 0xCB, 0x17, 0xB6, 0x6A, 0x99, 0x53, 0x92, 0x13, 0x6E, 0xEF, 0x25, 0xAD, 0xFF, 0xCF, 0x9E,
    0x31, 0x45, 0xCA, 0x8C, 0x90, 0xD2, 0xAA, 0xBC, 0x5B, 0x9F, 0x60, 0x4F, 0x72, 0x6F, 0xDF, 0x58,
    0x07, 0xF5, 0xC3, 0x5F, 0x57, 0x71, 0x2C, 0xF1, 0xF7, 0xD4, 0x42, 0xB9, 0xD9, 0xE7, 0xC1, 0x3B
};



Однако, на деле это ничего не дало, что говорит о том, что я либо чего-то не учёл, либо с данным происходят ещё какие-то преобразования, либо я вообще копаю не в ту сторону.


--------------------
Перейти в начало страницы
 
+Цитировать сообщение

Сообщений в этой теме
- SGun   Monster Hunter Freedom Unite   17.11.2009, 16:07
- - HoRRoR   Теоретически - возможно, но в качестве коммерческо...   17.11.2009, 16:25
- - SGun   HoRRoR Назови размер "халтурки" в личку....   17.11.2009, 17:19
- - HoRRoR   Я не знаю, каковы ваши возможности, так что уж луч...   17.11.2009, 18:15
- - SGun   Возможности довольно неопределенные. Могу предложи...   18.11.2009, 12:05
- - HoRRoR   В таком случае лучше собрать людей, которые будут ...   18.11.2009, 14:20
- - UchihaEliot   Уважаемый HoRRoR если все таки возьметесь за данну...   19.11.2009, 22:10
- - HoRRoR   Цитатаесли все таки возьметесь за данную игру Дава...   19.11.2009, 22:29
- - SGun   ОК, от меня 1000 - 1500 руб. Приведу еще людей. Uc...   19.11.2009, 22:49
- - UchihaEliot   SGun На Фан сайтах не сижу... думаю данное занятие...   19.11.2009, 23:10
- - HoRRoR   Возможно ничего не выйдет. Игровой архив явно крип...   19.11.2009, 23:50
|- - UchihaEliot   Напишы мне завтро в ICQ я обладаю PSP и хорошим ин...   20.11.2009, 0:02
- - SGun   HoRRoR Я так понимаю, нужен дамп памяти при запуще...   20.11.2009, 0:15
- - HoRRoR   Да, верно. Помню такую штуку, как SWCheat. В ней в...   20.11.2009, 0:30
- - SGun   Поставил CWCheat, догнать не могу как снять дамп. ...   20.11.2009, 2:28
- - HoRRoR   Там по идее на какую-то кнопку стоит, или назначит...   20.11.2009, 8:05
- - SGun   От русских никогда ничего не добьешься. где только...   20.11.2009, 13:39
- - HoRRoR   Спасибо, но ррррр, указать на очевидную уловку мож...   20.11.2009, 14:19
- - SGun   Пакованный дамп   20.11.2009, 14:26
- - HoRRoR   Да поздно, почти выкачал.   20.11.2009, 14:32
- - UchihaEliot   Я тут... окажу любую помощь   20.11.2009, 14:43
- - HoRRoR   Сможете декриптовать EBOOT.BIN?   20.11.2009, 18:32
- - SGun   Скажи чем, декриптуем. Хотя, раз ты задал вопрос, ...   20.11.2009, 18:34
- - HoRRoR   http://pspfaqs.ru/news/636-umd-decrypter-d...-555-...   20.11.2009, 18:41
- - HoRRoR   Всё-таки сделай ты, у UchihaEliot'а не получае...   20.11.2009, 18:58
- - UchihaEliot   Мда... у меня Декриптованный EBOOT не появляется.....   20.11.2009, 19:01
- - SGun   Вот UchihaEliot Ну, в инструкции сказано, что не п...   20.11.2009, 19:09
|- - UchihaEliot   Цитата(SGun @ 20.11.2009, 18:09) Вот У т...   20.11.2009, 19:10
- - HoRRoR   ЦитатаТ.е. заменяются по-сути несколько байт данны...   20.11.2009, 19:15
- - SGun   Выдает вот что HoRRoR Дай тот, что у тебя eboot....   20.11.2009, 19:21
- - HoRRoR   У меня такой же, как у тебя...   20.11.2009, 19:28
- - UchihaEliot   Ну что есть какой то прогресс или все уперлось в Д...   20.11.2009, 20:29
- - HoRRoR   Можете скачать демку и на ней тоже сдампить память...   20.11.2009, 20:53
- - UchihaEliot   Сейчас попробую...   20.11.2009, 21:30
- - HoRRoR   Всё-таки это ужасно - ломать игру на PSP без PSP.....   20.11.2009, 21:31
- - UchihaEliot   Чесно говоря жил бы ты поближе можно было бы тебе ...   20.11.2009, 21:44
- - Dangaard   *скучным голосом* Текст еще переводить надо и граф...   20.11.2009, 21:52
- - UchihaEliot   Ну ни кто же ничего и не говорит))   20.11.2009, 22:09
- - UchihaEliot   SGun блин подскажи как Дамп снять... ато Рашен инс...   20.11.2009, 22:24
- - HoRRoR   Есть две новости, хорошая и плохая. Хорошая - я по...   21.11.2009, 21:47
- - UchihaEliot   привет тебе от Варяга)) P.S.   21.11.2009, 23:12
- - HoRRoR   Нет, ребятки, скорей всего без PSP мне вряд ли уда...   22.11.2009, 18:04
- - UchihaEliot   Вот коментарий Админа с форума monsterhunter.forum...   22.11.2009, 18:42
- - HoRRoR   ЦитатаИ его выполнить не возможно без знаний прогр...   22.11.2009, 18:54
- - UchihaEliot   Я отписал твои результаты у них на форуме ждем рез...   22.11.2009, 18:57
- - HoRRoR   Замените кто-нибудь этим BOOT.BIN оригинальный, за...   23.11.2009, 18:07
- - UchihaEliot   Сейчас попробую... Игра не повисла а запустилась ...   23.11.2009, 18:17
- - lupus   то, что используется шрифт из flash0 вы наверное у...   29.11.2009, 22:59
- - HoRRoR   ЦитатаПробуйте сделать так: бэкапите eboot.bin, де...   29.11.2009, 23:18
- - UchihaEliot   Ну так что там? нам что то делать нужно?)   30.11.2009, 14:45
- - HoRRoR   А для кого я предыдущее сообщение писал?   30.11.2009, 15:23
- - UchihaEliot   Простоя не пойму что именно нужно сделать... Что н...   30.11.2009, 15:58
- - HoRRoR   Господи, написал всё простым русским языком. Цита...   30.11.2009, 17:28
- - UchihaEliot   Извеняюсь за задержку проблема с инетом... Как я п...   30.11.2009, 20:36
- - HoRRoR   Слушай, ты просто гениальная личность. Прокрути ст...   30.11.2009, 20:46
- - lupus   блин, я порой просто поражаюсь с некоторых воинов ...   1.12.2009, 1:02
- - UchihaEliot   Я и забыл что ты выкладывал думал ты по Асе скидыв...   1.12.2009, 14:31
- - UchihaEliot   Готовый Дамп Дамп снят с образа с замененным EBOOT...   1.12.2009, 15:21
- - lupus   оказывается jpcsp (http://jpcsp.org/index.php?p=Do...   9.12.2009, 18:56
- - HoRRoR   Прям уж открытие Америки. Только понту от дебаггер...   9.12.2009, 19:11
- - JurasskPark   Читаю тему и вижу что-то знакомое. Здесь же рамоч...   9.12.2009, 22:28
- - HoRRoR   Кстати, если кому интересно - я копал алгоритм кри...   9.12.2009, 22:46
- - lupus   дык, есть плагин, который принудительно сохраняет ...   10.12.2009, 19:02
- - HoRRoR   Перечитай тему и переосмысли мой пост.   10.12.2009, 21:25
- - lupus   тему читал. твой пост попробовл переосмыслить, но ...   10.12.2009, 22:36
- - HoRRoR   Цитатаесли да, то алгориты отличается от того, кот...   10.12.2009, 23:12
- - lupus   да всегда вэлкам. мы ведь тоже не телепаты тут соб...   10.12.2009, 23:25


Быстрый ответОтветить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 11.5.2024, 0:56