Сейчас на форуме: (+4 невидимых) |
eXeL@B —› Вопросы новичков —› Обход проверки целостности программы |
Посл.ответ | Сообщение |
|
Создано: 17 апреля 2006 14:11 · Личное сообщение · #1 Приветствую! У меня такая проблема: есть игра, установка которой сразу же требует ввода правильного регистрационного кода. Т.е. кнопка Next сначала задизейблена, а при вводе кода по идее должна начать работать. Я поставил брейк на GetDlgItemTextA и нашел процедуру проверки кода. Она оказалась довольно замороченная, плюс я очень несилен в вопросах разбора алгоритма проверки кодов, проще говоря у меня это пока и не получилось ни разу. Тогда я решил, что проще будет как-то попытаться обмануть эту проверку и, когда я исправил один байтик, прогамма выдала исковерканный диалог, где все кнопки работали как "Exit" и только на одной была надпсиь. Позже я выяснил, что это есть проверка целостности кода. Нашел даже эту процедуру, понял что она как-то хитро считает КС куска файла, но вот потом никаких очевидных переходов, которые можно поменять я не обнаружил. Ведь если бы он выдавал табличку, что мол "Неправильная контрольная сумма, хорош программу ломать", то отыскать это место было бы довольно просто, а тут он то ли куда-то что-то пишет и портит аргументы функции создания диалога, то ли наоборот создает этот диалог только в случае корректной проверки целостности. Вообщем наступил тупик Может кто посоветует, что делать в данной ситуации? может есть способы автоматической сверки всех переходов двух программ, для выяснения в чем отличие? Или это бесполезное занятие в данном случае и надо все же мучать кейген:? |
|
Создано: 17 апреля 2006 14:18 · Личное сообщение · #2 |
|
Создано: 17 апреля 2006 15:08 · Личное сообщение · #3 |
|
Создано: 17 апреля 2006 15:45 · Личное сообщение · #4 |
|
Создано: 17 апреля 2006 15:56 · Личное сообщение · #5 |
|
Создано: 17 апреля 2006 16:01 · Личное сообщение · #6 |
|
Создано: 18 апреля 2006 08:58 · Личное сообщение · #7 |
|
Создано: 18 апреля 2006 09:02 · Личное сообщение · #8 |
|
Создано: 21 апреля 2006 12:04 · Личное сообщение · #9 Хм...тут проблема уже несколько иная, но по той же проге, я решил новую тему не создавать. Я все-таки забил на проверку целостности и решился делать кейген. После пары дней я понял, что там все не просто просто, а очень просто) Что и настораживает...Ключ по простейшему алгоритму обсчитывает свои символы без последнего символа и сравнивает с последним...вообщем подобрался ключ моментально. Вот тут начинается самое интересное. При включенном дебуггере, правда я использовал Windasm, появляется кнопочка Next, выбирается папка установки и при нажатии на Start говорят, что ставится ничего не будет потому как cncs232.dll содержит invalid data. А что интересно при запуске проги безо всего, код вообще не проходит! Я если честно в непонятках...есть идея, что он использует код для распаковки инсталлера, но тогда это глухой вариант получается? И что-то это за фигня с самим кодом? Почему только при включенном дебаггере он работает? Обычно бывает наоборот) |
|
Создано: 22 апреля 2006 14:04 · Личное сообщение · #10 Sobol пишет: формирует будущий диалог windasm-a маловато. Хотя бы ресурсы программы посмотрел - может твои диалоги там все есть и программа просто его извлекает из ресурсов. Чтобы писать кейген, надо понять как код действует - чем лучше отладчик, тем легче понять. Sobol пишет: Ключ по простейшему алгоритму обсчитывает свои символы без последнего символа и сравнивает с последним Рано кейген писать. Скорее всего, чтобы не было сбоя при дешифровке, добавлена контрольная сумма. Подсунув только ее, ты включил алгоритм дешифровки, а там уже никакой защиты нет - только "перекореживание" всего и вся. |
|
Создано: 25 апреля 2006 11:01 · Личное сообщение · #11 |
|
Создано: 28 апреля 2006 12:49 · Личное сообщение · #12 Sobol пишет: А как объяснить что код не подходит в обычном режиме работы проги, но срабатывает при включенном дебаггере? Когда программа неверно работает, то ее работа зависит от содержимого остальной памяти - оно разное с деббаггером и без. Sobol пишет: можно поконкретней посоветовать Всем новичкам советуют FAQ прочесть. Ты видимо проигнорировал. |
eXeL@B —› Вопросы новичков —› Обход проверки целостности программы |