![]() |
Добро пожаловать, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Кантемир |
![]() ![]()
Сообщение
#1
|
Незарегистрирован ![]() |
Просто хочу оболочку и возможности сохранить, а база кодов с нула хочу написать
и добавить секреты. Блин как редактировать база данных? А может ктонибудь создать прогу на подобия это? Просто там в chemaxе нельзя ни редактировать ни с нула. |
Кантемир |
![]()
Сообщение
#2
|
Незарегистрирован ![]() |
Че молчите?
![]() ![]() ![]() |
jTommy |
![]()
Сообщение
#3
|
Наблюдающий ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 197 Регистрация: 4-February 08 Из: деревня Москва Пользователь №: 6 Спасибо сказали: 19 раз(а) ![]() |
Просто хочу оболочку и возможности сохранить, а база кодов с нула хочу написать Никто не будет делать такой объем работы за тебя (это я про написание новой оболочки)...и добавить секреты. Блин как редактировать база данных? А может ктонибудь создать прогу на подобия это? Просто там в chemaxе нельзя ни редактировать ни с нула. К тому же идея сомнительная... зачем изобретать велосипед? Может лучше связаться с авторами и они добавят твои секреты. |
Кантемир |
![]() ![]()
Сообщение
#4
|
Незарегистрирован ![]() |
Знаешь, что я тебе сказу Вы правы
![]() ![]() ![]() ![]() P.S. Авторам распект за carbon extractor ![]() ![]() ![]() |
-=CHE@TER=- |
![]()
Сообщение
#5
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
Кантемир!
Простите, пожалуйста, но... у вас сообщения... как бы это сказать. Ошибок много, спецефических - так пишут дети (очень маленькие), либо люди слабо знакомые с русским языком. Мне сложно вникнуть в суть ваших сообщений. Может для вас родной язык английский? Если да - то пишите на нём - всем будет проще. Базу кодов, действительно, можно набирать в текстовом файле. Но тут сразу возникает две проблемы: 1) Как её разбирать, чтобы выводить на экран? (с текстовым файлом хлопот много) 2) Как проверять её целостность? (если вдруг кто-то внёс туда свои коды и при этом нарушил структуру базы) |
Кантемир |
![]() ![]()
Сообщение
#6
|
Незарегистрирован ![]() |
Я хотел сказать велик это велосипед, что не понятно?
![]() ![]() ![]() ![]() Я знаком близе к русскому языку. ![]() Блин, а как у Chemax`а получаеться? ![]() А может быть другим каким нибудь прогой создавать вместе этого блокнота, чтобы меньше было хлопот. 1) Файлы по отдельносты или как у файлы формата субтитров 2) Не знаю нужно, что нибудь придумать, скажем создадим прогу которое определаеть по базу кодов или вот допустим определает по оглавление базы кодов Вот хотел бы создать конкурента Chemax`а. ![]() ![]() |
-=CHE@TER=- |
![]()
Сообщение
#7
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
Я хотел сказать велик это велосипед, что не понятно? Нет, не это. (*улыбается*) Общий стиль ваших сообщений. Ладно, не берите в голову.![]() ![]() ![]() ![]() Я знаком близе к русскому языку. Это хорошо. Как вам будет удобно.![]() Блин, а как у Chemax`а получаеться? Какой формат у CheMax - не знаю. Для вашей программы могу предложить такой:![]() А может быть другим каким нибудь прогой создавать вместе этого блокнота, чтобы меньше было хлопот. 1) Файлы по отдельносты или как у файлы формата субтитров 2) Не знаю нужно, что нибудь придумать, скажем создадим прогу которое определаеть по базу кодов или вот допустим определает по оглавление базы кодов Вот хотел бы создать конкурента Chemax`а. ![]() ![]() а) коды для каждой игры хранятся каждый в своём текстовом файле (самом обыкновенном, без управляющих структур) б) чтобы файлов этих не было очень много - они все помещены внутрь одного контейнера (т.е. файла без архивации); для этих целей очень, ИМХО, подойдёт формат типа PACK (.PAK) из Quake II - т.к. там очень удобно добавлять новые файлы (просто в конец, сместив заголовок). Хотя с редактированием старых, будет немного проблем. |
Кантемир |
![]() ![]()
Сообщение
#8
|
Незарегистрирован ![]() |
-=CHE@TER=-!
![]() ![]() ![]() Огромное тебе спасибо! ![]() ![]() ![]() Не плохо придумана, а какой прогой можно создать PACK? А еще не подскажеть каким прогой можно создать оболочки прогу? Я пробивал что нибудь сделать в Chemax`е у неге защита стоит ASPack 2.12 -> Alexey Solodovnikov Проверял с помощью Peid. А Дальше eXeScope и Restorator 2007 Ну вот там нашел украшения оболочки. P.S. еще раз распект авторам carbon extractor ![]() ![]() ![]() |
-=CHE@TER=- |
![]()
Сообщение
#9
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
Не плохо придумана, а какой прогой можно создать PACK? Есть специальные утилиты для этого... А вообще, мой ответ подразумевал, что ты сам напишешь программу для работы с такими псевдо-архивами. Потому что даже упаковав туда файлы, ты всё-равно не сможешь с ними работать, т.к. тебе в твоей программе нужно будет как-то их оттуда доставать.А еще не подскажеть каким прогой можно создать оболочки прогу? Выучить какой-нибудь язык программирования. (*улыбается*) Например, Delphi (весьма простой).Я пробивал что нибудь сделать в Chemax`е у неге защита стоит ASPack 2.12 -> Alexey Solodovnikov Ну-да, программа защищена хорошо. Их БД с кодами, кстати, зашифрована (недавно посмотрел).Проверял с помощью Peid. А Дальше eXeScope и Restorator 2007 Ну вот там нашел украшения оболочки. P.S. еще раз распект авторам carbon extractor Ну, вообще-то мы авторы не только этой программы. (*улыбается*)![]() ![]() ![]() |
Siberian GRemlin |
![]()
Сообщение
#10
|
![]() Advanced Member ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 537 Регистрация: 4-February 08 Пользователь №: 2 Спасибо сказали: 221 раз(а) ![]() |
А не проще на M$ Access взять документацию и на нём БД сделать?!
|
jTommy |
![]()
Сообщение
#11
|
Наблюдающий ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 197 Регистрация: 4-February 08 Из: деревня Москва Пользователь №: 6 Спасибо сказали: 19 раз(а) ![]() |
А не проще на M$ Access взять документацию и на нём БД сделать?! Совсем не проще. Это-ж придется Access ставить. Например, я ее редко пользую и поэтому не ставлю... Хотя догадываюсь, что большинство народу Office ставит вместе со всем барахлом, которое предлагается по умолчанию.В данном случае легче всего забить на эту идею, но если очень хочется, то сначала придется изучить Дельфи. Узнать что такое форма, интерфейс программы и как его лучше спроектировать, как работать с типизированными файлами и т.д. и пр. P.S.: ИМХО, читы - плехо! Даже если они применяются, когда игра уже пройдена. |
Кантемир |
![]() ![]()
Сообщение
#12
|
Незарегистрирован ![]() |
jTommy!
![]() Ну блин дельфи без него не вариант ну и ладно. ![]() Спасибо за подробно про, что надо учить ![]() ![]() А насчет читов вот например игру прошел по честному и с читами это получаешься две разние игры И еще хочу добавить секреты и т.д. Я эту прогу хотел создать прошлом году летом, а время летить. -=CHE@TER=-! ![]() А не проще без архива? P.S. Всех поздравляю с 1 апреля. ![]() ![]() ![]() |
-=CHE@TER=- |
![]()
Сообщение
#13
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
-=CHE@TER=-! Проще. Можно вообще файлы в отдельный каталог валить. Но неудобно - когда ты добавишь более пары тысяч таких текстовых файлов, то станет неудобно в такой каталог заходить, т.к. будет долго список с файлами создаваться.![]() А не проще без архива? P.S. Всех поздравляю с 1 апреля. Спасибо большое! Тебя тоже.![]() ![]() ![]() |
9k1d |
![]()
Сообщение
#14
|
Незарегистрирован ![]() |
|
-=CHE@TER=- |
![]()
Сообщение
#15
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
Я вижу, что в этой теме часто зависают гости.
Если кого-то интересует как вытащить из БД Chemax всё содержимое наружу, то прочитайте статью Оконный доступ к БД. Как отправная точка для начала работы - самое то. |
-=CHE@TER=- |
![]()
Сообщение
#16
|
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. В общем, организация этой БД - это долбанный стыд. К слову сказать, к тем играм, которые я знаю, некоторые коды написаны неверно или, вообще, дублируются в одном месте не полные и в другом также (у игры два названия) - короче, в поисках кодов к игре, я бы на эту базу полагаться не стал. |
-=CHE@TER=- |
![]()
Сообщение
#17
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
Не прошло и 15 лет, как ключик таки поменяли - меня сегодня по e-mail спрашивали почему мой алгоритм выше не работает. Я, кстати, его переписал, чтобы он был более понятным. Для версий 19.0 и 20.0, что сейчас лежат на официальном сайте (возможно и с более ранними версиями вплоть до 2013 года работать будет):
CODE static const char key[KEY_LEN] = "qZ8&5N3eS0"; Как я понимаю, ключ поменяли именно потому, что он засветился здесь - в публичной теме. А, главное, было бы что прятать - БД у них фиговая, я ещё ранее писал что они, походу, вообще не проверяют ту ахинею, которую туда пихают. Было бы, кстати, толково, если бы они создали Wiki на основе своей базы, чтоб все желающие могли выправить весь тот ужас, который эта БД из себя представляет. |
-=CHE@TER=- |
![]()
Сообщение
#18
|
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); } На этом, вероятно, уже точно всё - тему можно считать закрытой. Спасибо сказали:
|
-=CHE@TER=- |
![]()
Сообщение
#19
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
Спасибо сказали:
|
![]() ![]() |
Упрощённая версия | Сейчас: 7th September 2024 - 23:31 |