![]() |
|
|
![]()
|
|
| DIMONSOFT |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 19.12.2004 Где: Киев Репутация: нет Всего: -3 |
Какие методы?
--------------------
|
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: нет Всего: 108 |
самы распространёный:
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: нет Всего: 484 |
На 100% не выйдет.
Этот способ легко обходится при помощи банального патча софтайса. Кому нужно, все равно выломает либо защиту, либо просто имена подкорректирует. Защита от софтайса может только маленького неграмотного крякера отпугнуть. Хотя, если этот код чуть подправить... Убрать функции (чтобы по трэйсу не обойти), закодить имена файлов (чтоб не так явно светиться), повторить в нескольких местах кода в разных вариациях (надежней будет), то это может доставить до часа головной боль непропатченому софтайсеру. В текущем виде код способен только насмешить. Он рабочий, но банальный и давно известный. Гарантировано защититься нельзя. Но можно усложнить процедуру взлома. Чем больше времени будет затрачено на взлом, тем больше вероятность того, что крякер бросит эту затею... |
|||
|
||||
| Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
Для определения SoftIce'а существует куча freeware dll-библиотек(anti-SoftIce) которые можно легко найти на хакерских сайтах, но существует так и куча патчей, заплаток, плюгинов направленных на скрытие и расширение возможностей отладчика. Как говорится: против лома нет приёма, если нет другого лома.
Народные способы защиты: 1. Поиск файлов SoftIce'а. 2. Проверка времени выполнения кода. 3. Тест отладоных регистров проца. 4. Реал-тайм крипторы-запаковщики портящие жизнь хакеру. 5. Выполнение защитного кода в стеке. В остальном полностью согласен со Snowy. Это сообщение отредактировал(а) Vadim999 - 1.8.2005, 20:25 |
|||
|
||||
| rsm |
|
||||||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: нет Всего: 62 |
SI - отладчик уровня ядра, функцию открытия файла от него никак не спрятать.
Нет гарантии, что компилятор не проведет оптимизацию, сделав код одинаковым.
rdtsc? Хм, в принципе неплохо, особенно если малость (хотя бы xor'ом) пошифровать ее...
Доступно только на уровне ядра.
Большинство наиболее известных крипторов уже изучены.
Тоже неплохая идея, особенно если при отладке не следить за содержимым стека. Кстати, вы не подумали о том, что SI может быть установлен совершенно легально, для работы?
Золотое правило баланса мощности защиты, трудоемкости ее взлома и стоимости программы. Что предлагаю я: используйте неявный контроль. При грамотной реализации это один из наиболее эффективных методов защиты. |
||||||||||||||
|
|||||||||||||||
| oleg1973 |
|
||||||||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: нет Всего: 34 |
но можно проверить на ее перехват
ниче хорошего так как на разных процах инструкции выполняются за разное кол-во тиков
не верно на 90 процентов
сп2 вроде как запретил такое делать -------------------- SST 465555 icq 200-512-712 |
||||||||||
|
|||||||||||
| rsm |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: нет Всего: 62 |
Можно, однако это не поможет - API слишком многослойный, просто залезем "поглубже".
В принципе это можно скорректировать. Но тогда не будет 100% уверенности в отладке.
Среди программеров-прикладников есть много тех, кто сможет написать драйвер?
И тем не менее программы распаковывают и юзают.
ОК, отметаем этот способ. |
||||||||||
|
|||||||||||
| oleg1973 |
|
||||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: нет Всего: 34 |
ну почему не поможет? мы знаем что почти все (не все но почти) функции винды начинаются стандартно
при установке бряка софтайс заменяет это на jmp xxxx кудато тоесть после загрузке прога должна проверить на остутствие джампов в начале функций , канешно тоже не панацея как способ, но все же ))) -------------------- SST 465555 icq 200-512-712 |
||||
|
|||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: нет Всего: 62 |
Не совсем так. SI заменяет первый байт начала функции на команду отладочного прерывания INT3 (0ССh) и при срабатывании прерывания вставляет обратно извлеченный ранее байт. Обнаружить это достаточно просто - нужно прочитать первый байт пролога функции и если он равен 0CCh, значит вызов функции отслеживается отладчиком. Данный способ контроля обходится путем установки точек прерываний на недоступные из пользовательского уровня функции уровня ядра. Например, для CreateFile это будет NtCreateFile (или, как вариант, IoCreateFile). |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: нет Всего: 34 |
я проверял на MessageBoxA
гдето на форуме была тема уже там я файлик выкладывал он при наличии бряка на месадж бокс выдавал аларм ) и там именно джамп был хотя инт3 логичней -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: нет Всего: 62 |
Хороший, помнится, был файл - в половине систем не работал вообще, в другой половине глючил, показывая угрожающее сообщение без всякого дубагера |
|||
|
||||
| Skiminok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 5.4.2006 Где: Киев Репутация: нет Всего: нет |
А каким образом данный выше код можно адаптировать под другие взломщики?
|
|||
|
||||
| Dian |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 2.1.2006 Репутация: нет Всего: 1 |
Это делается элементарно
Защита - это задача не для прикладника В сайсе можно и dr-регистры юзать |
||||
|
|||||
| Dimannn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 318 Регистрация: 14.4.2005 Где: Владимир Репутация: нет Всего: 1 |
А что, если попробовать отловить отсутствие ошибки при вызове INT3?
Или воспользваться kernel32.IsDebuggerPresent -------------------- Хотите быстро и без проблем опубликовать вашу программу в сети за 5 минут? Тогда потратьте пару минут чтобы посмотреть, что предлагает OpenProject.org.ru |
|||
|
||||
| Dian |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 2.1.2006 Репутация: нет Всего: 1 |
||||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Технологии защиты программного обеспечения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |