Сейчас на форуме: vsv1 (+3 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› flechbecap3 |
Посл.ответ | Сообщение |
|
Создано: 30 декабря 2007 20:11 · Личное сообщение · #1 |
|
Создано: 30 декабря 2007 20:37 · Личное сообщение · #2 |
|
Создано: 30 декабря 2007 20:49 · Поправил: VaZeR · Личное сообщение · #3 |
|
Создано: 31 декабря 2007 01:46 · Поправил: pycha · Личное сообщение · #4 Leatherfase Так регить не интересно, а вот интересно другое : когда так прога вылетает с ошибкой после того что в ней чтото измениш это тоже вариант защиты от патча? Во всяком случае я в проге пробывал менять 3 разных перехода и в ответ мне вылетала та же ошибка по адресу 004065da , но когда я поменял переход je на jmp ( после проверки триал ключа ) когда прога была не просрочена ( значит переход был je ) ошибки не было, на просроченой же проге когда прыжка не должно было быть, а он выполнился вылетела ошибка. На что же орионтироватся иская такого типа проверку? VaZeR разкажи как ты нашел этих 4 адреса ? ![]() |
|
Создано: 31 декабря 2007 08:18 · Поправил: VaZeR · Личное сообщение · #5 pycha В этой проге чтобы обойти проверку целостности кода. Я делал так просто запускаем прогу и смотрим где мы упали это следующий код: 4C4F00 CMP BYTE PTR DS:[4DB07C],0 4C4F07 JE SHORT FB3_3.004C4F17 4C4F09 MOV EAX,DWORD PTR DS:[4D6DF8] 4C4F0E MOV EAX,DWORD PTR DS:[EAX] 4C4F10 MOV DWORD PTR DS:[EAX+C],0FF Отсуда видно что, чтобы нам нормально запуститься нужно чтобы условный переход сработал. Далее смотрим значение по адресу 4DB07C Находим все референсы на этот адрес. Запись в этот адрес осуществляется командой: 4C4E91 MOV BYTE PTR DS:[4DB07C],AL Смотрим что выше этой команды и откуда берется значение AL Выше распологается процедура: .... 4ABF41 MOV AL,1 <==== 4ABF43 NOP 4ABF44 MOV ESP,EBP 4ABF46 POP EBP 4ABF47 RETN Это только одна процедура нужно найти ещё остальные. Их искать тоже не сильно сложно. Посмотри 4ABF34 CALL FB3_3.00405124 И сделай поиск референсов на адресс 00405124. Ты найдешь ещё другие процедуры, которые вызывают данную процедуру, которые нужно аналогичным образом подправить. ![]() |
|
Создано: 31 декабря 2007 09:55 · Личное сообщение · #6 |
|
Создано: 31 декабря 2007 10:02 · Личное сообщение · #7 pycha Не это просто реализация в этой программе такая. В каждом индивидуальном случае будет разный код. Просто нужно смотреть на отличия в выполнении кода в оригинале и в пофиксином коде. И если ты замечаешь расхождения то начинай искать причину. Или исходи из того что как ведет себя программа в случае изменения целостности. Например может выходить окно или как в этом случае ты попадаешь на исключение. ![]() |
|
Создано: 31 декабря 2007 11:02 · Личное сообщение · #8 |
|
Создано: 31 декабря 2007 11:47 · Личное сообщение · #9 pycha Насчет таких инструментов не слышал не когда, да в большинстве случаев такие проверки довольно легко находить вручную. Просто если сейчас тебе это кажется слишком сложным, то через некоторое время, когда ты поднаберешся опытом, это уже будет для тебя пустяком. А так лучше всего просто читать статьи про взлом програм. Но самое главное это конечно практика. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› flechbecap3 |