Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Защита кода программы?


Автор: ConstantinXXX 26.8.2008, 02:37
Облазил много сайтов, пересмотрел несколько исходников. Чет немогу понять, как можно просто защитить (зашифровать) собственный код. Что б хотя бы как то зашититься от крякеров. Я знаю, что существует много программ для протекции проги и т.д. но надо самому научиться защищать. МОжет есть пару примерчиков у когони буть для наченающих? Хотя бы просто, несложно зашифровать свой код.

ПРимерно такие статьи читал.

Код

метка №1
 <Код который надо зашифровать>
Метка№2

[Процедура расшифровки.]

Автор: Poseidon 28.8.2008, 08:27
Используй пакеры и крипторы. Чем менее распространен криптор, тем он надежнее smile

Автор: Frees 28.8.2008, 09:03
в drkb статья есть "Шифрование исполняемого файла"

Автор: Ockonal 28.8.2008, 09:33
Цитата(Frees @ 28.8.2008,  10:03)
в drkb статья есть "Шифрование исполняемого файла"

Не можете ссылку подсказать?

Автор: Poseidon 28.8.2008, 09:51
Цитата(Frees @  28.8.2008,  09:03 Найти цитируемый пост)
в drkb статья есть "Шифрование исполняемого файла"
У же есть и в http://base.vingrad.ru/view/3101-SHifrovanie-ispolnyaemogo-fayla--  smile 

Автор: ConstantinXXX 28.8.2008, 23:11
Poseidon я знаю, что есть много протектеров и т.п. с виртуальной машиной и т.п. Просто хочю, сам попробывать. Например зашифровать сам, а потом протектором сверху. Думаю так будет надежней. smile

Добавлено @ 23:20
Только проблемма в том, что зашифровать как там показанно, а в том как расшифровать.

Код

procedure metka1;

//Начальная метка - нужна что бы находить потом в exe файле эти символы и знать

//откуда начинать шифровать

//Здесь метка представляет из себя десятичные числа от 0 до 256 через запятые

//Если метка 50,60,70,80,90 то это соответствует символам 2<FPZ

//Кстати, такого кол-во символов в метке может быть мало и лучше использовать больше

//Т.к если программа большая то такие последовательности могут встретиться не один раз

begin

asm

   DB 50,60,70,80,90 //2<FPZ это метка начальная

end;

 

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

beep;

ShowMessage('Период использования программы истёк!');

end;

 

procedure metka2;

//Конечная метка - нужна чтобы знать до куда нужно шифровать в файле и

//докуда расшифровывать в памяти

begin

asm

   DB 68,68,67,45,61 //DDA-= это метка конечная

end;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

//Процедура Расшифрования(В даном примере и зашифрования)

var

ptrAddr: Pointer; {для Адреса процедуры вывода сообщения}

dwOldProtect: DWORD;

begin

ptrAddr := @TForm1.Button1Click; //Получаем адрес процедуры вывода сообщения

VirtualProtect(@TForm1.Button1Click, 2048, PAGE_READWRITE, @dwOldProtect);

//2048 это размер в байтах с которыми можно работать(по моему)

//Если процедура большая то нужно подбирать соответствующий размер

while ptrAddr <> @metka2 do

   //шифрование(слабое) выполняем пока не дойдем то конечной метки

begin

   Byte(ptrAddr^) := Byte(ptrAddr^) xor $41;

   //каждый байт в памяти ксорится с кодом 65'A'(к примеру)

   //Используйте более надёжные алгоритмы шифрования

   inc(Integer(ptrAddr));

end;


 В ДБРК показанно, как шифровать после запуска. А как написать программу которая будет щифровать то место от одной метки до другой вне программы. т.е. внешнию прогу. Я так понял, что если б сразу было б зашифрованно между metka1; и metka2; процедура, то при нажитии на кнопку Button2Click произошло б расшифровывание. smile


Автор: ne0n 29.8.2008, 10:27
Насколько мне не изменяет память, в Королевстве Делфи была опубликована статья, про такое шифрование...были разжеванны все моменты. так что ищи smile

Добавлено через 5 минут и 56 секунд
вообщем не оплинился поискать http://www.delphikingdom.com/asp/viewitem.asp?catalogid=775

Автор: SneG0K 29.8.2008, 11:07
Цитата(Ockonal @  28.8.2008,  08:33 Найти цитируемый пост)
Не можете ссылку подсказать? 

drkb.ru и еще вот хорошая ссылочка rouse.drkb.ru

Автор: ne0n 29.8.2008, 21:01
Цитата(SneG0K @  29.8.2008,  11:07 Найти цитируемый пост)
вот хорошая ссылочка rouse.drkb.ru


ммм каким образом хомпага Роса относиться к теме данного вопроса? непомню чтоб у него были материалы похожей тематики.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)