Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Полезные советы по криптографии

Тип Реферат
Предмет Информатика и программирование
Просмотров
1395
Размер файла
19 б
Поделиться

Ознакомительный фрагмент работы:

Полезные советы по криптографии

Защита программ от копирования.

Алексей! С удовольствием читаю ваши странички о криптографии и не смог удержаться чтобы не рассказать еще ободном достаточно эффективном способе программ от копирования . Сам я пишу программы на Fox и использую этот метод сущность которого привожу ниже.

Как обычно выглядит запароленная программа? Ее воруют, запускают, и она гордо так спрашивает: Пароль?!!! (Ей отвечают: НА ГОРШКЕ СИДИТ КОРОЛЬ (joke) или что-то в этом роде Программа говорить: Password неверен, работать не буду. Зовут хакера. Говорят, врага видишь. Вижу отвечает. Давай, борись. Хакер достает из кобуры дебагер 38 калибра, и справляется с поставленой задачей.

У меня точно также, только программа после ухода хакера начинает глючить со страшной силой. То процент начисления не тот поставит, то директора поставит завхозом, а секретарше зарплату начислит повыше директорской и т.д. Причем все изредка и случайно. Зовут опять хакера, говорят ему - ты программу плохо вскрыл. Хакер смотрит еще раз, нет говорит, все нормально. А она глючит у нас говорят ему. А что он им может ответить, прямого образа врага перед ним нет, не может же он гнать всю программу под отдадкой, он же не программист, он хакер. Если я имея исходники отлаживал прогу полгода, то ему в бинарных кодах сколько потребуется?

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

С уважением,

Александр Козлов, программер.

Регистрация основанная на серийных ключах.

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

Дело в том, что при хорошем знании ассемблера очень просто его обойти: когда пользователь вводит свое имя и регистрационный код, программа генерирует "правильный" код и сравнивает его с тем, который он ввел, поэтому "перехватить" этот код (просто считать его из памяти) не составлет особого труда. В большинстве случаев достаточно просто поставить breakpoint на функцию lstrcmp -- и все дела... Упаковка программы, анти-дебаггерные и анти-дизассемблерные "примочки" помогают слабо. Очень рекомендую заглянуть на http://fravia.org -- там много чего по этому поводу написано.

А вот первый метод может быть реализован достаточно неплохо. Хранить "правильные" ключи в программе совсем не обязательно -- можно подчинить их некоторым правилам; что-то подобное делает Microsoft со своими CD-keys, но у них все слишком просто. Алгоритм проверки может быть длинным и запутанным, так что его дизассемблирование (и "разборка", что же он делает) причинит немало головной боли. Именно первый метод я и применил для защиты своей программы (Advanced Disk Catalog -- старые версии), но и он был "сломан" (хотя, как мне написал ломавший его хакер, подборка всего двух правильных ключей отняла у него много времени). Тогда мне в голову пришла идея: а что, если ключи хранить внутри программы, но зашифрованными? Я "сгенерил" некоторое количество ключей (абсолютно случайным образом), зашифровал их (по отдельности) 128-битным ключом по алгоритму RSA и прошил в программу в виде ресурса. Когда пользователь вводит ключ, он шифруется по тому же алгоритму и сравнивается с правильными. Так как система с открытым ключом не позволяет произвести обратное преобразование, базируясь только на открытом ключе (а закрытого нет даже у меня - расшифровывать-то не надо), то подобрать ключи невозможно даже теоретически.

Есть, впрочем, еще одна проблема: хакер (или "крэкер", если угодно) может заменить 'je' на 'jne' (или что-то в этом роде) там, где происходит последняя проверка, и функция "IsValidKey(...)" будет всегда возвращать TRUE. Останется лишь написать маленький patch... Чтобы защититься и от этого, я вычисляю CRC своего exe-файла и сравниваю его с правильный, прошитым тоже внутри программы (естественно, при вычислении эта часть файла -- где лежит правильный CRC -- исключается; а "прошивается" он после компиляции). Кстати, это еще и защита от вирусов. Вообще-то, проверку CRC тоже можно локализовать и "запатчить", но это уже немного сложнее, особенно если программа вызывает функции чтения/записи и для других целей. Кроме того, не стоит в случае несовпадения CRC сразу об этом сообщать, иниче можно будет поставить hardware breakpoint и найти место, где он вычисляется. И последнее. Если хочется защитить программы совсем уж "круто", томожно несколько функций в своей программе (те, которые должны вызываться только в зарегистрированной версии), зашифровать по тому же алгоритму с открытым ключом. При этом, естественно, часть серийного номера (отсылаемого зарегистрировавшимся) надо сделать "статическим", т.е. неизменным для всех пользователей. На основе этой части после регистрации генерируется полный закрытый ключ, который далее используется для расшифровки указанных функций. Таким образом, даже если будет написан patch, позволяющий "зарегистрироваться" с любым (произвольным) кодом, расшифровка пройдет неправильно, и вместо нормального кода будет выполняться "мусор".

Этот способ я применил в другой своей программе (Advanced ZIP Password Recovery), и ее пока не вскрыли. Всего наилучшего,

Vladimir Katalov

Как написать свой собственный регистратор.

Существует 2 типа написания регистратора программы:

Первый - это так называемые серийные ключи. Они встраиваются в программу и совершенно не зависят ни от введенного имени владельца, ни от введенной организации. Его не желательно использовать по Интернету, т.к. автору Shareware программы необходимо поместить несколько серийных номеров, которые могут быть просмотрены в exe-шнике и затем легко распостроняться через все тот же Интернет.

Второй - это создание своего алгоритма регистрации, зависящего от введенного имени владельца (и организации). Вот на нем мы подробно и остановимся. Такой тип регистрации применяется во многих Shareware программах, например: WinZIP, CutFTP и т.д. Для его написания необходимо использовать один и тот же алгоритм дважды: вначале в самой программе для проверки правильности введенного кода, и в программе генерирования ключей, посредством которой Вы, получив предварительно имя регистрируемого, создаете регистрационный ключ.

Исходник написан на Delphi 2.0

В поле NameEd типа TEdit вводится имя (зависит от регистров букв), а в поле PasswEd тоже типа TEdit появляется регистрационный ключ. Изменив глобальную константу RegCode можно получить совсем другой ключ для одного и того же вводимого имени. Смысл этого алгоритма в том, что вначале с первым элементом Reg (который приравнивается RegCod'у) делается побитовая операция XOR со всеми элементами стринга имени и XOR с длинной этого стринга, затем в цикле XORится текущий элемент с предыдущим, а потом весь полученный массив переводится в 16-разрядную систему счисления и записывается в результирующий стринг PasswEd.Text.


const
RegCode : array [1..5] of integer = ($3В,$1E,$FB,$A1,$92); { Введите сюда свои собственные значения }

.......


procedure TMainForm.NameEdChange (Sender: TObject);
var Reg : array [1..5] of integer;
z : integer;

{******** Перевод в шестнадцатиричную систему *********}
procedure HEXCase ( HexNm : integer );
begin

case HexNm of
0..9 : PasswEd.Text := PasswEd.Text + IntToStr(HexNm);
10 : PasswEd.Text := PasswEd.Text + 'a';
11 : PasswEd.Text := PasswEd.Text + 'b';
12 : PasswEd.Text := PasswEd.Text + 'c';
13 : PasswEd.Text := PasswEd.Text + 'd';
14 : PasswEd.Text := PasswEd.Text + 'e';
15 : PasswEd.Text := PasswEd.Text + 'f';
end;


end;
{***************************}


begin { Main }


{ Приравниваем RegCode=Reg }
For z := 1 to 5 do Reg[z] := RegCode[z];


{ XORим первый элемент }
Reg[1] := Reg[1] XOR Length (NameEd.Text);


{ XORим его опять со всем Nam'ом }
For z := 1 to Length (NameEd.Text) do


{ XORим его снова с длиной Nam'a }
Reg [1] := Reg [1] XOR Ord (NameEd.Text[z]);


{ XORим предыдущий с текущим}
For z := 2 to 5 do

Reg[z] := Reg [z] XOR Reg [z-1];

PasswEd.Clear;


{ Переводим Reg в HEX стринг}
For z := 1 to 5 do
begin
HexCase (Reg[z] div 16);
HexCase (Reg[z] mod 16);
end


end; { main }

    Если Вы хотите получать за свою Shareware программу деньги, то можете воспользоваться услугами предлагаемыми российской компанией StrongSoftware

Нет нужной работы в каталоге?

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

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156492
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
64 096 оценок star star star star star
среднее 4.9 из 5
РАНХиГС
Срок был очень сжатый, но Анна справилась даже раньше. Спасибо огромное!
star star star star star
СПБГТИ
Спасибо большое Маргарите. Очень отзывчивая девушка, на все замечания реагирует молниеносно)
star star star star star
СПбУТУиЭ
Спасибо огромное! Работу нужно было сдать срочно, максимум на следующий день. Ольга выполн...
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Решение задач по предмету «Математика»

Решение задач, Математика

Срок сдачи к 29 дек.

1 минуту назад

Отчет с выполнением заданий

Решение задач, Отчет, бух учет

Срок сдачи к 25 дек.

4 минуты назад

Расчет параметров участка электроэнергетической системы

Решение задач, Электрические системы, электроника, электротехника

Срок сдачи к 8 янв.

4 минуты назад
4 минуты назад

Сделать курсач по методике

Курсовая, Электротехника

Срок сдачи к 26 дек.

5 минут назад

Психология безопасности труда

Реферат, Русский язык и культура речи

Срок сдачи к 29 дек.

7 минут назад

Сделать реферат и презентацию

Презентация, Биомеханика

Срок сдачи к 25 дек.

7 минут назад

написать курсовую работу по уголовному праву

Курсовая, Уголовное право

Срок сдачи к 25 дек.

7 минут назад

Начертить 12 чертежей

Чертеж, Начертательная геометрия

Срок сдачи к 9 янв.

8 минут назад

Феномен успеха и успешность в профессиональном развитии

Реферат, Психология

Срок сдачи к 28 дек.

9 минут назад

В файле прикреплен пример выполнения задания

Контрольная, Криминология

Срок сдачи к 27 дек.

9 минут назад

9-11 страниц. правовые основы военной реформы в ссср в 20-е гг

Реферат, История государства и права России

Срок сдачи к 26 дек.

10 минут назад

Выполнить реферат. История Англии. Е-01554

Реферат, Английский язык

Срок сдачи к 26 дек.

10 минут назад

Составить Проект массового взрыва

Контрольная, Взрывное дело, горное дело

Срок сдачи к 8 янв.

12 минут назад

Термодинамика

Решение задач, Термодинамика

Срок сдачи к 26 дек.

12 минут назад

Нужен реферат, объем 15-20 страниц

Реферат, Безопасность в техносфере

Срок сдачи к 5 янв.

12 минут назад

Выполнить реферат. История Англии. Е-01554

Реферат, История

Срок сдачи к 26 дек.

12 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно