Hosted by uCoz

  Главная страница
  Статьи
  --> Исходники
  Софт
  Книги
  Купить книги
  Бета тестирование*new*
  Магазин
  Разное
  Обмен ссылками *new*
  Партнеры и Друзья
  Важное и Интересное
  .net framework 2.0(eng)
  Добавить на сайт
  Наше мнениеважное
  Third page
  Fourth page
  Fifth page
  Sixth page
  Чат *Super*
  Eighth page
  Internet
  SlangHomePage
  First page
  Наше мнениеважное
  Все авторы
  Fourth page
  Fifth page
  Sixth page
  Seventh page
  Eighth page
   Наше мнение --->>> ТОР 10 ошибок

8: детерминированная логика

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

Ситуация значительно усложняется, если программист применяет оружие недетерминированной логики, или, попросту говоря, вызывает различные проверочные функции в случайное время из произвольных мест, используя функцию rand() или другой генератор подобного типа. В этом случае хакер не сможет повторить однажды пройденный маршрут, поскольку при следующем запуске программа пойдет совсем другим путем. Допустим, в прошлый раз хакер дотрассировал программу до точки А и понял, что свернул не на том повороте (в смысле - проскочил условный переход), и что сворачивать нужно было гораздо раньше, а теперь защитная функция уже позади и дальше трассировать некуда. ОК, он перезапускает отладчик и… с превеликим удивлением обнаруживает, что его занесло совсем в другие места, совершенно незнакомые ему…

Саму библиотечную функцию rand() для этой цели использовать, конечно же, не стоит, иначе перекрестные ссылки выдадут все ветвления на блюдечке с голубой каемочкой или хакер отпадчит функцию rand() так, чтобы она всегда выдавала один и тот же результат, заставляющий программу ходить одним маршрутом. Лучше исследовать исходный код rand() и переписать его самостоятельно, непосредственно вживив в тело программы, тогда ломать программу будет очень и очень нелегко.

Допустим, мы имеем десять различных никак не зависимых друг от друга защитных функций, часть из них вызывается при каждом запуске программы, часть - через раз, а часть - с вероятностью раз несколько недель. Если защитные функции не выявляются ни по каким косвенным признакам, то хакеру придется полностью проанализировать весь код программы целиком, что нереально.

[ошибка 1][ошибка 2][ошибка 3][ошибка 4][ошибка 5][ошибка 6][ошибка 7][ошибка 8][ошибка 9][ошибка 10]

Вывод
  Помочь деньгой
Помочь программе деньгами
Кошельки:
Z
R

 
  Случайный Анекдот


• Все права на данный сайт пренадлежат сайту svoy-site.narod.ru и visualbasic8.narod.ru распространение информации содержащейся на сайте нарушает авторские права и преследуется по закону.
http://svoy-site.narod.ru

Счетчики:



Внимание!!! Все архивы сжаты програмой WinRar v 3.70 beta 1.
Скачать его можно тут
WinRar v 3.70 beta 1 скачать


Design by http://svoy-site.narod.ru