Сейчас на форуме: (+4 невидимых)

 eXeL@B —› Вопросы новичков —› Обход проверки целостности программы
Посл.ответ Сообщение

Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 апреля 2006 14:11
· Личное сообщение · #1

Приветствую! У меня такая проблема: есть игра, установка которой сразу же требует ввода правильного регистрационного кода. Т.е. кнопка Next сначала задизейблена, а при вводе кода по идее должна начать работать. Я поставил брейк на GetDlgItemTextA и нашел процедуру проверки кода. Она оказалась довольно замороченная, плюс я очень несилен в вопросах разбора алгоритма проверки кодов, проще говоря у меня это пока и не получилось ни разу. Тогда я решил, что проще будет как-то попытаться обмануть эту проверку и, когда я исправил один байтик, прогамма выдала исковерканный диалог, где все кнопки работали как "Exit" и только на одной была надпсиь. Позже я выяснил, что это есть проверка целостности кода. Нашел даже эту процедуру, понял что она как-то хитро считает КС куска файла, но вот потом никаких очевидных переходов, которые можно поменять я не обнаружил. Ведь если бы он выдавал табличку, что мол "Неправильная контрольная сумма, хорош программу ломать", то отыскать это место было бы довольно просто, а тут он то ли куда-то что-то пишет и портит аргументы функции создания диалога, то ли наоборот создает этот диалог только в случае корректной проверки целостности. Вообщем наступил тупик Может кто посоветует, что делать в данной ситуации? может есть способы автоматической сверки всех переходов двух программ, для выяснения в чем отличие? Или это бесполезное занятие в данном случае и надо все же мучать кейген:?




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 17 апреля 2006 14:18
· Личное сообщение · #2

http://exelab.ru/f/action=vthread&forum=1&topic=4492 - тут почитай, мб что-то поможет



Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 апреля 2006 15:08
· Личное сообщение · #3

Хм...надо тогда Олли ставить. Я вообще все это при помощи WinDasma делал, там вроде таких средств нет.



Ранг: 44.7 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 17 апреля 2006 15:45
· Личное сообщение · #4

Sobol пишет:
Нашел даже эту процедуру, понял что она как-то хитро считает КС куска файла

Ну дык протсто обойди эту процедуру.....




Ранг: 238.8 (наставник), 67thx
Активность: 0.20
Статус: Участник
CyberHunter

Создано: 17 апреля 2006 15:56
· Личное сообщение · #5

Была у меня подбная проблема, исправил один jmp все установилось, вот тока ничего не работало! Вывод - при установке/распаковке хэш ключа или сам ключ может влиять на расшифровку запакованых данных (во как загнул :s6

-----
Nulla aetas ad discendum sera




Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 апреля 2006 16:01
· Личное сообщение · #6

Обойти не выйдет...внутри он где-то формирует будущий диалог



Ранг: 44.7 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 18 апреля 2006 08:58
· Личное сообщение · #7

Sobol пишет:
Обойти не выйдет...внутри он где-то формирует будущий диалог

Тогда разбирайся и ставь джампы так, что бы не затереть этот самый диалог.......



Ранг: 44.7 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 18 апреля 2006 09:02
· Личное сообщение · #8

Sobol пишет:
понял что она как-то хитро считает КС куска файла

Посмотри реальную КС и место куда прога ее пишет, и просто запиши ее в это место, обойдя реальные вычислеия.........



Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 апреля 2006 12:04
· Личное сообщение · #9

Хм...тут проблема уже несколько иная, но по той же проге, я решил новую тему не создавать. Я все-таки забил на проверку целостности и решился делать кейген. После пары дней я понял, что там все не просто просто, а очень просто) Что и настораживает...Ключ по простейшему алгоритму обсчитывает свои символы без последнего символа и сравнивает с последним...вообщем подобрался ключ моментально. Вот тут начинается самое интересное. При включенном дебуггере, правда я использовал Windasm, появляется кнопочка Next, выбирается папка установки и при нажатии на Start говорят, что ставится ничего не будет потому как cncs232.dll содержит invalid data. А что интересно при запуске проги безо всего, код вообще не проходит! Я если честно в непонятках...есть идея, что он использует код для распаковки инсталлера, но тогда это глухой вариант получается? И что-то это за фигня с самим кодом? Почему только при включенном дебаггере он работает? Обычно бывает наоборот)



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 22 апреля 2006 14:04
· Личное сообщение · #10

Sobol пишет:
формирует будущий диалог

windasm-a маловато. Хотя бы ресурсы программы посмотрел - может твои диалоги там все есть
и программа просто его извлекает из ресурсов.
Чтобы писать кейген, надо понять как код действует - чем лучше отладчик, тем легче понять.

Sobol пишет:
Ключ по простейшему алгоритму обсчитывает свои символы без последнего символа и сравнивает с последним

Рано кейген писать. Скорее всего, чтобы не было сбоя при дешифровке, добавлена контрольная
сумма. Подсунув только ее, ты включил алгоритм дешифровки, а там уже никакой защиты нет -
только "перекореживание" всего и вся.



Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 апреля 2006 11:01
· Личное сообщение · #11

А как объяснить что код не подходит в обычном режиме работы проги, но срабатывает при включенном дебаггере? И вообще, что можно поконкретней посоветовать на этот счет? Каким инструментом лучше воспользоваться?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 28 апреля 2006 12:49
· Личное сообщение · #12

Sobol пишет:
А как объяснить что код не подходит в обычном режиме работы проги, но срабатывает при включенном дебаггере?

Когда программа неверно работает, то ее работа зависит от содержимого остальной памяти - оно разное с деббаггером и без.
Sobol пишет:
можно поконкретней посоветовать

Всем новичкам советуют FAQ прочесть. Ты видимо проигнорировал.


 eXeL@B —› Вопросы новичков —› Обход проверки целостности программы
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати