|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Ноя 27, 2002 07:49:49 Мужики! Есть игруха - без регистрации всеческие ограничения от невозможности сохраниться до доступности всего 4х уровней вместо 100. Для регистрации открывается отдельное окно. Есть поле для ввода ключа, кнопка "регистрация", но она неактивна до тех пор пока не введешь ключ. Ни длинну ни формат ключа я не знаю. Есть еще кнопочка "открыть файл с ключом" и соотвественно "отмена". Естественно подбором ключа стоит заниматься после определения его формата и длины. Помогите советом - с чего начать? Огроное спасибо. По возмодности просьба дублировать ответы в мыло (или сразу туда) angelex@ngs.ru |
|
|
Дата: Ноя 27, 2002 09:44:41 Установить отладчик, видимо ;) |
|
|
Дата: Ноя 27, 2002 11:29:26 SoftIce стоит. IDA тоже есть. Но откуда плясать? Ковырять игруху - искать то место, откуда она сверяется о регистрации. Или копать в модуле регистрации на предмет выявления ключика? А самое важное КАК енто делается - хотябы в общих чертах. |
|
|
Дата: Ноя 27, 2002 12:57:48 Ну ежели она может из файла читать, то энто проще. Ставишь бряк на CreateFile, нажимаешь в ней на кнопку "...с файла". После этого ты должен получить бряк на CreateFile. Так ты выяснишь, с каким именем она пытается открыть и где. Допустим, файл есть или ты его создашь, так как ей надо. После этого запоминаешь хэндл и ставишь бряк уже на ReadFile, можно прямо с условием "если хэндл=такой-то". По тому, что она из него читает и куда, ты определишь: буфера(адреса), ну и размер. Допустим, буфер 1. Тогда ставишь на него bpm и ждешь, когда его начнуть анализировать. Ну и т.п. |
|
|
Дата: Ноя 27, 2002 13:31:09 Хорошо, но почему первый бряк на CreateFile, а не сразу на ReadFile? Ведь предполагается что файлик уже есть, и модуль регистрации сам его не создаст, а только будет читать ИЗ него... Али я чегойто недопонял? Да вот сразу вопросик - что такое хэндл? (простите за недоразвитость - только начинаю) |
|
|
Дата: Ноя 27, 2002 14:25:20 angelex Хорошо, но почему первый бряк на CreateFile, а не сразу на ReadFile? Чтобы читать из файла, его сначала нужно открыть. Это делается с помощью функции CreateFile. что такое хэндл? Считай это идентификатором файла. |
|
|
Дата: Ноя 27, 2002 19:33:05 · Поправил: Kane а есть хорошие тулзы: filemon & regmon - http://www.sysinternals.com есть исходники, вроде даже большей частью на асме. так что для изучения как раз. |
|
|
Дата: Ноя 28, 2002 13:11:24 Значица вот чего накопал: При вводе в окно ключа --- Game Key Begin --- бла, бла, бла --- Game Key End ---, активизируется кнопка "Регистрация". Жмем ее и получаем сообщение: Заголовок окна "Note", текст в окне "Thank You!" и кнопка "Ok". Жмем - модуль закрывается. При запуске игрухи естессно сообщение что мол незарегистрина.(при открытии файла якобы ключа с тем же содержимым - тот же результат) Следовательно вот какие мысли: 1.Ключ проверяется в модуле регистрации(?), и делается запись в реестр о регистрации. В случае ввода неверного ключа пользователю об этом не сообщается. 2.Модуль регистрации просто берет вводимое значение ключа и прописывает его куда-то в реестр. При запуске игруха лезет в реестр и считывает это значение. Сравнивает его с эталоном и только после этого делает вывод о своем статусе - реггед либо нет. Нужны советы либо просто мысли. Вопрос: Неполучается поставить бряк на сообщение "Thank You!" - GetMessageBoxA и MessageBoxIndirectA неработают. |
|
|
Дата: Ноя 28, 2002 22:24:20 bpx ShowWindow и дальше по обстоятельствам |
|
|
Дата: Ноя 29, 2002 08:29:36 Спасибо. Далее оказалось проще - модуль регистрации тупо прописывает в реестр содержимое окна ввода ключа. Далее запускаем игруху. Получаем на экране Unregistred. Идем в сайс и отчетливо видим строчку "Change screen to :: NagScreen" Вопросы: 1. Как ПРАВИЛЬНО поставить бряк на открытие или чтение конкретной ветки/ключа реестра? 2. Как потом найти этот адрес в Иде? 3. Можно ли что-нибудь сделать в этом месте "Change screen to :: NagScreen"? Заранее большое спасибо. |
|
|
Дата: Ноя 30, 2002 20:50:37 Я формат номеров нахожу так - сначала ищем буфер куда данные попадают из поля ввода - ставим bpm на него и ищем код фильтра для вводимых данных (для ориентировки при поиске фильтра, после него должна вызываться EnableWindow для акивации кнопки подтверждения пароля) - потом нализируем код фильтра и находи фармат серийника |
|
|
Дата: Янв 10, 2003 16:22:18 Га, судя по описанию, это одна из игр от alawar, если так, то на подбор ключа можешь забить - это ASProtect лицензия, и как следствие используется rsa-1024 цифровая подпись. Ломать только саму игру, и то далеко не факт что это тебе удастся - в этой лицензии так же хранится некий 16 байтовы ключ который используется для раскриптовки (TEA или TwoFish) кусков кода проги. Т.е. если программер пометил код отвечающий скажем за работу всех уровней кроме первых четырех как подлежащей криптовке, то в проге этот код будет просто зашифрован и ломать собсно нечего и естесно что без хотябы одной лицензии его расшифровать невозможно (можно только написать самому, но это вам не 75 на EB править =) Естесно что при наличии хоть одной лицензии (можно и из "черного списка") залом превращается просто в рутинную работу заключающуюся в поиске и расшифровке всех помеченных блоков. Такие дела, пилите дальше. |
|
|
Дата: Янв 14, 2003 12:43:33 Спасибо всем за советы. Проблема решена. Закрываем тему. |
Эта тема закрыта. Отвђты больше не принимаются. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.067 |