|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.02.2007, 12:43 | #1 |
Программист и
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,265
|
Универсальная защита
Мне кажется, что именно на языке низкого уровня можно пресечь попытки декоипиляторов. Подскажите, есть ли такой универсальный код на ассемблере, который можно вставить в Delphi.
|
27.02.2007, 15:17 | #2 |
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,051
|
Я когда то встречал описание, если что дома посмотрю у себя в архивах... если что то завтра выложу, а опка
Вот несколько советов, которые, надеюсь, позволят вам хоть немного обезопасить свою программу от взлома (по меньшей мере, начинающими и/или не слишком квалифицированными хакерами). 1.Пишите защиту на ассемблере. 2.Никогда не давайте осмысленные имена важным функциям, типа IsValidSerialNum. 3.Не предупреждайте (сразу) пользователя о том, что защита нарушена. 4.Лучше сделайте это через два-три дня - хакеры это ненавидят… Пустячок, а приятно. 5.Используйте "перекрестные" проверки CRC-кодов ваших EXE- и DLL-файлов. 6.Делайте паузу (одной-двух секунд будет вполне достаточно) после ввода пароля (серийного номере) перед возвратом результата. При этом подобрать правильный пароль путем прямого перебора (с помощью специально написанной программы) будет совершенно невозможно. 7.Сохраняйте пароли в каком-нибудь "необычном" месте, например, в свойствах поля базы данных. 8.Не привязывайтесь к системной дате. Вычисляйте текущую дату из времени создания каких-нибудь системных файлов, например SYSTEM.DAT или USER.DAT (Windows Registry). 9.Сохраняйте пароль в нескольких местах одновременно. 10.Не используйте "статические" (то есть жестко прошитые в вашу программу) строчки текста для уведомления пользователя о том, что пароль правильный (или неправильный). Это первое, на что смотрит хакер. Генерируйте эти строчки динамически, или используйте шифрование, хотя бы самое простенькое. 11.Используйте "мелкие хитрости" для защиты от дизассемблирования и отладки. 12.Наконец, никому никогда не рассказывайте о том, как построена ваша защита Посмотри тут http://www.wasm.ru/article.php?article=1017001 Последний раз редактировалось Noor; 27.02.2007 в 15:22. |
27.02.2007, 20:19 | #3 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
Simply-Art
декомпилятор пресечь очень трудно (если это вообще возможно) а насчёт второго правила всё равно в экзешнике имён функций нет (если они не экспортируются и не импортируются), там просто смещения в памяти |
28.02.2007, 00:16 | #4 |
Форумчанин
Регистрация: 20.12.2006
Сообщений: 135
|
декомпилятор нельзя пресечь !!! делай привязку к железу и всё...
writeln('Hello Dude!!!');
|
28.02.2007, 05:46 | #5 |
Программист и
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,265
|
Я же не говорю о 100% пресечении, а о том, чтоб какой ни будь чел прочитав инструкцию в net'е не мог спокойно взломать мою программу.
|
28.02.2007, 12:51 | #6 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
Я уже советовал... Тут для всех: использовать упаковщик, НО переделанный. Если тот же UPX чуть подправить (как это сделал execom) то распаковать просто так уже не получится.
|
28.02.2007, 14:11 | #7 |
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,051
|
Igor Nikolaev aKa The Sprite пишет:
Hаткнулся в инете на некий модуль StopIce, и любопытство сделало своё дело. Как долго я смеялся... ))) Для тех, кто не в курсе: посмотрите export NmSymIsSoftIceLoaded (или что-то подобное) в nmtrans.dll. Вот полный юнит против SOFTICE, при обнаружений отладчика перезагружает компьютер: ---------------------------------------------------------------------- Код:
|
28.02.2007, 20:14 | #8 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
ну сделаешь ты привязку к железу, я декомпилирую всё равно я смогу увидеть исходный код
ПРО тему декомпиляторов: из декомпиляторов нормальных языков (delphi и c++), есть только один - DeDe и то он не показывает делфийского кода, он показывает только процедуры обработчики и их смещения в памяти, и разумеется сами формы и их свойства, поэтому с помощью декомпилятора ты никогда не сможещь получить полноценного исходного кода, разве что ассемблерный код (а для получения ассемблерного кода можно использовать любой дизассмеблер или отладчик) |
10.03.2007, 04:57 | #9 |
Программист и
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,265
|
Из этого всего я понял одно что если у тебя хороший запаковщик то прогу можно прочитать только когда она загрузилась. Отсюда вопрос есть ли такой способ чтоб сделать память не читабельной для того же DeDe, может есть какая нибудь последовательность символов которая приводит к вылету отладчиков?
|
10.03.2007, 07:44 | #10 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
память всегда можно сделать читабельной и всегда можно сделать доступной к изменению!!!!!!!
для этого есть функция VirtualProtect сейчас уже все декомпиляторы и отладчики настолько навороченные что никакие последовательности символов уже не срабатывают, например эмулятор антивируса NOD32 уже ни на что не реагирует |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Универсальная программа, с универсальным описанием объектов. | Strannik-BKS | Свободное общение | 38 | 25.04.2009 23:51 |
Защита видео | dragon76 | Мультимедиа в Delphi | 6 | 26.11.2008 19:27 |
Защита | boostman | Общие вопросы Delphi | 4 | 21.06.2008 17:45 |
Защита | astorik | Софт | 12 | 20.12.2007 04:43 |
ICQ Bot - защита от флуда | snakesoft | Работа с сетью в Delphi | 4 | 13.12.2007 04:35 |