Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как защитить выполнение кода? 
:(
    Опции темы
Akella
Дата 25.5.2004, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



В моей программе есть кусок кода, а именно шифрование и дешифрование.

Как "закрыть" (защитить) выполнение этого куска, т.к. есть такие программы (типа HackMan или SoftIce), которые могут просмотреть, что происходит при выполнении той или иной процедуры. Или всякие мониторы... и.т.д.??!
PM MAIL   Вверх
Guest
Дата 25.5.2004, 12:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Тут
Или тут
А вообще MD5 хэширование и в путь )))
  Вверх
z-END
Дата 25.5.2004, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 11
Всего: 102



Актаульная тема, блин...
Вот только в WASM для меня еще сложнее чем китайская иероглифописьsad.gif
если кто может перевести ети статьи в что-нить хоть отдаленно напоинающее дельфийский код буду очень признателен.
ЗЫ а вот MD5 тут совершенно нипричем... хэш он и в африке хэш - (це вообщето для проверки подлинности используется а никик не для шифрования... т.к. восстановить зашифрованный текст ну нереально)


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
p0s0l
Дата 25.5.2004, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Цитата

Тут
Или тут

Вторая ссылка не подойдет...
А первая - то что надо (через открытие файлов \\.\SICE и \\.\NTICE)...
Только это мало чего даст. Тот кому надо будет взглянуть на твою прогу, просечет, что ты проверяшь на SoftIce, и уберет эту проверку нафиг...



--------------------
С уважением, г-н Посол.
PM   Вверх
Guest
Дата 25.5.2004, 14:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А вот еще
А кроме всего, есть спецовые компаненты для защиты программ, но ИМХО это изврат!
Пару лет назад налетал я на интересную статеечку о защите программ от всяких дебагеров, СофтАйсов и т.д., но че то найти её не могу, как только найду выложу!
  Вверх
Akella
Дата 27.5.2004, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Мы будем ждать...
PM MAIL   Вверх
Albinos_x
Дата 27.5.2004, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Привожу модуль поимки отладчика SoftICE:

unit Unit2;

interface

implementation

uses Windows,unit1;

function Otlad95:boolean;
var HF:THandle;
begin
result:=false;
HF:=CreateFile('\\.\SICE',GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,0);
if (HF<>INVALID_HANDLE_VALUE) then
begin
CloseHandle(HF);
result:=true;
end;
end;

function OtladNT:boolean;
var HF:THandle;
begin
result:=false;
HF:=CreateFile('\\.\NTICE',GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,0);
if (HF<>INVALID_HANDLE_VALUE) then
begin
CloseHandle(HF);
result:=true;
end;
end;

initialization
if Otlad95 or OtladNT then
begin
// здесь, что необходимо сделать при обнаружении
// например написать в заголовке об обнаружении
// но, можно например перезагрузить или выключить компьютер,
// только не забудь получить приоритет в NT
form1.caption:='Поймали';
halt;
end;
end.

Код компилируется, но я не проверял ловит ли он его или нет, но поидее должен работать.

Между прочим, если провериш, то скажи результат exclamation.gif


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Akella
Дата 28.5.2004, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



этот код(про софтайс), вообще-то, не новый и разраьотчики таких программ, наверняка об этом знают.
PM MAIL   Вверх
Albinos_x
Дата 28.5.2004, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Попробуй использовать комплекс

перекрытие кода;
скрытыми командами передачи управления;

также попробуй реализовать так называемый "Динамический фуфел". Суть приема заключается в том, что засоряющие байты никак не обходятся командами передачи управления. Они замещаются безобидными командами (NOP, STI и пр.) уже в ходе выполнения программы, но заведомо до первого запуска подпрограмм, содержащих эти "фуфели". Другими словами, защищаемый от дизассемблирования фрагмент программы действительно не может быть запущен в том виде, в каком программа находится на диске(скорее компьютер зависнет). Запустившись программа считывает откудато данные(например на нулевой дорожке или "зазоре" между разделами дисковой подсистемы), необходимые для устронения засоряющих байтови заменяет на команды не влияющие на ход программы.

можно зашифровать прогу
сделать пристыковачный модуль (не зашифрованный), который при загрузке будет расшифровывать прогу

от отладчиков защищенного режима также эффектифно использовать их ошибки. Например как SoftICE попадается на потере одного трассировочного прерывания после префиксной команды CS:(КОП 2Eh).

сам не пытался реализовать, но в книге "Ассемблер в задачах защиты информации" Бурдаев О.В. Иванов М.А. Тетерин И.И. можно найти примеры.


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1033 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.