![]() |
|
|||||||
![]() |
|
|
Опции темы |
|
|
#1 |
|
Студент
Участник клуба
|
Мне кажется, что именно на языке низкого уровня можно пресечь попытки декоипиляторов. Подскажите, есть ли такой универсальный код на ассемблере, который можно вставить в Delphi.
__________________
Какое наслаждение делать невозможное. Автор: Уолт Дисней. Сайт начинающего программиста
|
|
|
|
|
|
#2 |
|
Участник клуба
Регистрация: 01.11.2006
Сообщений: 623
Репутация: 238
|
Я когда то встречал описание, если что дома посмотрю у себя в архивах... если что то завтра выложу, а опка
Вот несколько советов, которые, надеюсь, позволят вам хоть немного обезопасить свою программу от взлома (по меньшей мере, начинающими и/или не слишком квалифицированными хакерами). 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. |
|
|
|
|
|
#3 |
|
воин дзена
СуперМодератор
Регистрация: 29.10.2006
Адрес: Где-то рядом....
Сообщений: 2,535
Репутация: 1041
|
Simply-Art
декомпилятор пресечь очень трудно (если это вообще возможно) а насчёт второго правила всё равно в экзешнике имён функций нет (если они не экспортируются и не импортируются), там просто смещения в памяти |
|
|
|
|
|
#4 |
|
Форумчанин
|
декомпилятор нельзя пресечь !!! делай привязку к железу и всё...
__________________
writeln('Hello Dude!!!'); |
|
|
|
|
|
#5 |
|
Студент
Участник клуба
|
Я же не говорю о 100% пресечении, а о том, чтоб какой ни будь чел прочитав инструкцию в net'е не мог спокойно взломать мою программу.
__________________
Какое наслаждение делать невозможное. Автор: Уолт Дисней. Сайт начинающего программиста
|
|
|
|
|
|
#6 |
|
Delphi/C++/C#
Профессионал
Регистрация: 29.10.2006
Сообщений: 2,116
Репутация: 601
|
Я уже советовал... Тут для всех: использовать упаковщик, НО переделанный. Если тот же UPX чуть подправить (как это сделал execom) то распаковать просто так уже не получится.
|
|
|
|
|
|
#7 |
|
Участник клуба
Регистрация: 01.11.2006
Сообщений: 623
Репутация: 238
|
Igor Nikolaev aKa The Sprite пишет:
Hаткнулся в инете на некий модуль StopIce, и любопытство сделало своё дело. Как долго я смеялся... )))Для тех, кто не в курсе: посмотрите export NmSymIsSoftIceLoaded (или что-то подобное) в nmtrans.dll. Вот полный юнит против SOFTICE, при обнаружений отладчика перезагружает компьютер: ---------------------------------------------------------------------- Код:
|
|
|
|
|
|
#8 |
|
воин дзена
СуперМодератор
Регистрация: 29.10.2006
Адрес: Где-то рядом....
Сообщений: 2,535
Репутация: 1041
|
ну сделаешь ты привязку к железу, я декомпилирую всё равно я смогу увидеть исходный код
ПРО тему декомпиляторов: из декомпиляторов нормальных языков (delphi и c++), есть только один - DeDe и то он не показывает делфийского кода, он показывает только процедуры обработчики и их смещения в памяти, и разумеется сами формы и их свойства, поэтому с помощью декомпилятора ты никогда не сможещь получить полноценного исходного кода, разве что ассемблерный код (а для получения ассемблерного кода можно использовать любой дизассмеблер или отладчик) |
|
|
|
|
|
#9 |
|
Студент
Участник клуба
|
Из этого всего я понял одно что если у тебя хороший запаковщик то прогу можно прочитать только когда она загрузилась. Отсюда вопрос есть ли такой способ чтоб сделать память не читабельной для того же DeDe, может есть какая нибудь последовательность символов которая приводит к вылету отладчиков?
__________________
Какое наслаждение делать невозможное. Автор: Уолт Дисней. Сайт начинающего программиста
|
|
|
|
|
|
#10 |
|
воин дзена
СуперМодератор
Регистрация: 29.10.2006
Адрес: Где-то рядом....
Сообщений: 2,535
Репутация: 1041
|
память всегда можно сделать читабельной и всегда можно сделать доступной к изменению!!!!!!!
для этого есть функция 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 |