IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Защита от взлома, Есть ли она?
сообщение
Сообщение #1


Гость






Всем привет. И спасибо за быстрые отклики в предыдущих темах.

Я искал на вашем форуме, но не нашел... по поводу вопроса:

Можно ли взломать ".exe" файл созданный на Турбо паскале 7 ? (чтобы был виден алгоритм)
Как это можно сделать?

Можно ли защитить файл от взлома, и как?
Или хотябы, при взломе, "не дать" прочитать часть или весь алгоритм.

Просьба обьяснить это попонятней, поскльку я новичок в программировании.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Вот ещё исходник на FPC (Free Pascal), который легко переделать для любого другого компилятора.
Функция замера текущего тика процессора (времени) GetClock реализуется с помощью функции GetTickCount из модуля Windows. Модуль Windows подключается именно по этой причине. Для портирования в ТП7 нужно заменить реализацию замера тика (времени) в функции GetClock на свою (можно через GetTime).
Модуль MD5 можно взять отсюда: http://wikisource.org/wiki/MD5_Hash

Идея такова: вы вводите пароль в виде строки, специальная функция проверки сверяет пароль и потом выдаёт ответ в boolean о корректности.
Сверка паролей делается при помощи известного алгоритма MD5, который выполняет односторонние преобразования и выдаёт хеш (hash).
Кроме проверки хешей вводимых строк проверяется ещё и наличие отладочных инструментов (debugger). Если между точкой ввода и проверкой хешей замечена разница во времени, большая 10 тиков (на самом деле, без отладки она вообще = 0), то меняется адрес точки входа в функцию проверки хешей. Тогда программа "вылетит" с ошибкой.
Пароль: "test"
{$IFDEF FPC}
{$Mode Delphi}
{$ENDIF FPC}

uses md5, Windows;

Type
BoolProc = function (s: string): boolean;
PBoolProc = ^BoolProc;

Const
Hash: TMD5Digest = (
9, 143, 107, 205, 70, 33, 211, 115,
202, 222, 78, 131, 38, 39, 180, 246
); // хеш пароля "test"

var
str: string;

function GetClock () : DWord;
begin
Result := GetTickCount
end;

function Passed (ss: string): boolean;
begin
Result := MD5Match (MD5String (ss), Hash);
end;

procedure TestPsw ();
var
b: boolean;
f: boolproc;
pp: pointer;
ds,de: DWord;
dr: word;
begin
PP := @Passed;
{...some operations...}
ds := GetClock ();
dr := 137 + random (1299); // просто цифры
inc (PP, dr); // меняем точку входа в функцию проверки
de := GetClock ();
if (de - ds < 10) then // если разность больше 10 тиков, то прогу взламывают (дебагер)...
dec (PP, dr); // возвращаем, если всё нормально
ds := GetClock (); // просто так, для отвлечения внимания
{.../some operations...}
@f := PP;
b := f (str);
writeln ( 'Test passed: ', b );
end;

var
sum :TMD5Digest;
i: integer;

begin
Randomize;
write ('Enter password: '); readln (str);
TestPsw ();
readln;
end.


Этот код не претендует на реальную защиту программ и выполняет функцию пособия для разработки более серьёзной защиты.

Сообщение отредактировано: Romtek -


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Славик   Защита от взлома   18.02.2005 3:27
xds   1) общая идея алгоритма видна без взлома ;); 2) д…   18.02.2005 6:59
Славик   Обьясни пожалуйста свой первый пункт. Как это видн…   18.02.2005 19:45
Altair   это не возможно, что бы совсем не подкопаться, ког…   18.02.2005 20:04
SKVOZNJAK   Используй побольше GOTO и констант, правильное зна…   18.02.2005 20:11
SHnur   также можеш использовать побольше break , exit , h…   18.02.2005 20:32
SKVOZNJAK   exit , halt, repeat, until легко эмулируются при п…   18.02.2005 20:38
xds   Раз ты догадался, что задача может быть решена не…   18.02.2005 20:44
Славик   Спасибо всем за отзывы. Кое что пересмотрю... Ес…   18.02.2005 21:15
SKVOZNJAK   GOTO не такое слабое как кажется. Допустим у тебя …   19.02.2005 6:39
xds   Например, машинный код цеплялют (до сих пор, сцен…   19.02.2005 8:29
Михаил Густокашин   можно устроить xor с паролем на критический участо…   20.02.2005 14:18
ZeroLink   Для защиты: 1) Шифруй все надписи типа "Cop…   20.02.2005 18:15
Славик   Некоторые предложения мне подойдут. Спасибо Вам…   20.02.2005 22:40
volvo   :blink: Так какая же из них после этого главная…   20.02.2005 22:50
Altair   Он говрил не про ХОГ а про xor (XOR) - это команд…   20.02.2005 23:24
Славик   Так какая же из них после этого главная? Если нап…   20.02.2005 23:37
volvo   Как я могу отвечать на конкретные вопросы, не имея…   20.02.2005 23:45
Славик   Какая ОС, какие права (пользователь, админ…   20.02.2005 23:53
Altair   Да можно сркыть все что угодно, можно сделать проц…   21.02.2005 0:04
Guest   Речь о любой программе. Сейчас, или потом, прийд…   21.02.2005 0:21
Altair   так нажо писать программу, шифрования текста, так…   21.02.2005 0:55
Romtek   Вставляй процедуры в критические места программы. …   22.02.2005 5:15
SKVOZNJAK   Тема очень интересная и не все способы защиты здес…   22.02.2005 14:19
Guest   Oleg_Z Я считаю, что защиты требует создатель, на…   22.02.2005 19:16
SKVOZNJAK   Как продвигается дизасемблирование проги ;)   23.02.2005 1:46
Romtek   Советую прочитать статьи в CRACKL@B: http://www.cr…   23.02.2005 3:19
SKVOZNJAK   Нда, защита, взлом, а в текстовом визуализаторе ни…   24.02.2005 19:56
Digitalator   Не думаю, что это правильный ход мыслей. Довольно…   7.03.2005 1:47
Dark   Если вы решили защитить вашу информацию то мааален…   9.03.2005 9:41
Romtek   Вот ещё исходник на FPC (Free Pascal), который лег…   22.07.2005 3:14


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.09.2025 15:54
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name