Chemax, База данных |
Добро пожаловать, гость ( Вход | Регистрация )
Chemax, База данных |
Кантемир |
Mar 18 2007, 18:00
Сообщение
#1
|
Незарегистрирован |
Просто хочу оболочку и возможности сохранить, а база кодов с нула хочу написать
и добавить секреты. Блин как редактировать база данных? А может ктонибудь создать прогу на подобия это? Просто там в chemaxе нельзя ни редактировать ни с нула. |
-=CHE@TER=- |
Feb 12 2024, 18:07
Сообщение
#2
|
Walter Sullivan Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) |
В 2022 году домен CheMax.ru был разделегирован, так что история данной программы на этом закончилась, поэтому можно подвести уже окончательный итог.
Для начала отвечу на самое первое сообщение этой темы (понимаю, что уже не актуально, ну да ладно): Просто хочу оболочку и возможности сохранить, а база кодов с нула хочу написать Нет, это невозможно. Дело в том, что описания кодов хранятся зашифрованные в текстовом файле "Cheats.dat", в то время как соответствующие этим текстам имена игр и смещения до них в этом файле, намертво прошиты в "Chemax.exe", который ещё и ASPack'ом упакован (защищён от изменений). Поэтому, максимум, что можно сделать, это изменить коды к существующим играм так, чтобы они не выходили за отведённое им место (меньше текста можно - лишнее пробелами заменить, больше - нельзя).и добавить секреты. Блин как редактировать база данных? А может ктонибудь создать прогу на подобия это? Просто там в chemaxе нельзя ни редактировать ни с нула. Сама программа и некоторые её старые и новые версии, помимо веб-архива, доступны ещё здесь: CheMax. И тут, поковыряв старые и новые версии этой программы, я выяснил интересную штуку про ключи шифрования. Оказывается, ключ "a@g5eDu(*5" использовался только для русской версии. В английской версии ещё с 2004 года использовался ключ "qZ8&5N3eS0" на который перевели и русскую между 2013 и 2018 годом - видимо, автору надоело пересобирать исполняемый файл с разными ключами при выпуске новых версий. Так что, признаю, моё предположение о том что ключ поменяли, потому что я его в этой теме публично засветил, было неверное. Попробую при следующем обновлении сайта добавить программу для расшифровки любой базы данных (с автоматическим определением ключа расшифровки), а также два текстовых файла со смещениями и именами игр в последних версиях "Cheats.dat" (RUS 21.4 и ENG 19.2) для тех, кто захочет распотрошить базу данных (распаковал и распарсил исполняемые файлы "CheMax.exe"). Увы, это, конечно, не вернёт потерянных трейнеров и других полезных утилит, которые накрылись вместе с сайтом программы. Функция для расшифровки любой базы данных выглядит так (возвращает не нулевое значение, если буфер удалось расшифровать): CODE uint32_t CheMaxDecrypt(uint8_t *p, uint32_t size) { uint8_t key[10]; uint32_t i, k; i = 0; /* sanity check */ if (p && size && ((*p == 0x81) || (*p == 0x91))) { /* detect key */ if (*p == 0x81) { memcpy(key, "a@g5eDu(*5", sizeof(key)); } else { memcpy(key, "qZ8&5N3eS0", sizeof(key)); } /* decrypt database with key */ for (i = 0; i < size; i++) { k = i % sizeof(key); p[i] += ((p[i] > key[k]) ? 0 : 255) - key[k]; } i = 1; } return(i); } На этом, вероятно, уже точно всё - тему можно считать закрытой. Спасибо сказали:
|
Упрощённая версия | Сейчас: 23rd September 2024 - 07:35 |