Chemax, База данных |
Добро пожаловать, гость ( Вход | Регистрация )
Chemax, База данных |
Кантемир |
Mar 18 2007, 18:00
Сообщение
#1
|
Незарегистрирован |
Просто хочу оболочку и возможности сохранить, а база кодов с нула хочу написать
и добавить секреты. Блин как редактировать база данных? А может ктонибудь создать прогу на подобия это? Просто там в chemaxе нельзя ни редактировать ни с нула. |
-=CHE@TER=- |
Jul 21 2013, 12:43
Сообщение
#2
|
Walter Sullivan Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) |
Вот уже 10 лет код шифрования БД у Chemax не меняется (проверил на только что скачанной версии):
CODE #define KEY_LEN 10 static const char key[KEY_LEN] = "a@g5eDu(*5"; void cm_decrypt(unsigned char *p, unsigned int size) { unsigned int i, k; for (i = 0; i < size; i++) { k = i % KEY_LEN; if (p[i] > key[k]) { p[i] = p[i] - key[k]; } else { p[i] = p[i] - key[k] + 255; } } } Читаем в память весь "cheats.dat", скармливаем этой функции и получаем на выходе расшифрованный буфер. Но БД представляет из себя один сплошной текстовый файл. Список игр завален на форму программы, а смещения до начала каждой игры внутри БД лежат как массив DWORD в исполняемом файле. Т.е. чтобы разбить БД по играм, нужно распаковывать (ASPack) исполняемый файл Chemax, искать там таблицу смещений и через неё выдёргивать игры. В Chemax v2.7 (2004 год) таблица смещений начиналась в 000DA604h у распакованного файла, с какого-то DWORD (то ли размер таблицы, то ли количество игр - фиг знает). Первое смещение, пожоже, всегда 1. В общем, организация этой БД - это долбанный стыд. К слову сказать, к тем играм, которые я знаю, некоторые коды написаны неверно или, вообще, дублируются в одном месте не полные и в другом также (у игры два названия) - короче, в поисках кодов к игре, я бы на эту базу полагаться не стал. |
Упрощённая версия | Сейчас: 27th September 2024 - 09:14 |