информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / theory
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Феноменально! [UPD] 26.11.05 16:14  Число просмотров: 3661
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
Отредактировано 26.11.05 16:20  Количество правок: 1
<"чистая" ссылка>
Если я правильно понял автора - алгоритм этот безумно стар. Это обычная подстановка символов из таблицы. Дальше идёт различное дополнительное запутывание - разные таблицы, ещё что-то, двух(трёх?) проходное шифрование, запутывание исходников, итд. Я не уверен что до конца понял все запутки, так как не владею терминологией (и что ещё больше запутывает - похоже автор тоже не владеет терминологией). Наверняка там есть несколько блестящих идей, но напродуктэто не тянет. Не говоря уже о том что шифрование закрытым алгоритмом ИМХО не есть гуд (я знаю что это спорное высказывание, потому ИМХО). Вот например, что бросилось в глаза непрофессионалу:


2) с помощью функции Rnd(Timer) генерируется псевдослучайное целое число в интервале от 10000 до 30000 ( I = Int(Rnd*20000) + 10000);
3) берется остаток от деления этого числа на 256 ( J = I mod 256);


Вопрос - зачем прибавлять 10000, если потом всё равно берёшь остаток от 256? Чем хуже такая запись:


... ( I = Int(Rnd*20000) + 16);
3) берется остаток от деления этого числа на 256 ( J = I mod 256);


По смыслу одно и тоже, но меньше красивых чисел.
Это что касается криптографии.
Дальше интереснее. Выясняется что чувак в основном думал в направлении сокрытия алгоритма. И тут он вроде как чего-то достиг - типа там самогенерящийся код, каждый экземпляр программы разный итд. Но опять же - без конкретики в это слабо верится. А если он при проектировании защиты от взлома допускал такие же ляпы как тот что я приводил, то средний реверсер его прогу размотает легко. В общем не буду глумиться - сам не профи. Но я бы ставить на эту софтину не стал.

---------------------------------
Апдейт: вот ещё замечательные строки:

Все выше изложенное позволяет нам передавать программу пользователям вместе с исходным кодом. Все равно, едва ли кто разберется с алгоритмом. А если кто, потратив уйму времени, и разберется, то едва ли он будет свой труд даром распространять.

Какой мощный маркетинговы ход! "Наш алгоритм невозможно сломать! Ну а если можно, то долго! И то не всякий захочет, а кто захочет не факт что сломает... короче Наш алгорит невозможно сломать!". Мужику надо идти рабоать в пресс-службу майкрософт. :)))
<theory> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach