Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Разное > Ваши программы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.10.2009, 22:04
darksoftware darksoftware вне форума
Прохожий
 
Регистрация: 03.09.2008
Сообщения: 20
Репутация: 10
Радость AMProtector

AMProtector - Утилита с открытым исходным текстом для защиты, упаковки и зашифровки исполняемых PE файлов. Использует технологию внедрения и подмены процесса, мощное авторское шифрование алгоритмом AMPRNG (поточный шифр) и компрессию LZMA.

Код довольно простой. Честно говоря, пока сыроват. Но уже работает, добился совместимости с Vista/Windows 7.

Что особенного? Сжимает эффективнее UPX, но размер загрузчика пока очень огромен - вообще-то, нужно перенести на чистый WinAPi, в лучшем случае, немного использовать KOL. Но и на этом этапе большие экешники сжимаются отменно. Да и основное здесь - шифрование. Сейчас пока расширенный ключ сохраняется в зашифрованном виде в основном теле программы. Но, как вариант, можно добавить и опцию по "безопасному выполнению", т.е. с запросом ключа до запуска основного тела.

Все это можно использовать при построении систем защиты ПО.

Что здесь нового: мой поточный шифр AMPRNG и сам подход по подмене процесса в памяти для упаковки PE файлов.

P.S. некоторые антивирусы могут ругаться, что вполне объяснимо - такие технологии используются некоторыми вирусами.

Здесь только бинарники проекта.
Вложения
Тип файла: zip protector.zip (54.4 Кбайт, 15 просмотров)

Последний раз редактировалось darksoftware, 07.10.2009 в 14:57.
Ответить с цитированием
  #2  
Старый 04.10.2009, 23:10
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Добавил в закладки, сейчас некогда, а вот потом гляну обязательно, особенно код.
Цитата:
Сообщение от darksoftware
P.S. некоторые антивирусы могут ругаться, что вполне объяснимо - такие технологии используются некоторыми вирусами.
А вот это плохо...
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 05.10.2009, 08:04
darksoftware darksoftware вне форума
Прохожий
 
Регистрация: 03.09.2008
Сообщения: 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
Добавил в закладки, сейчас некогда, а вот потом гляну обязательно, особенно код.

А вот это плохо...

Код пока сыроват, но работает. Когда основное получилось, интерес уже нет тот. Вообще, сам загрузчик нужно уменьшать, отказываться от типовых юнит, классов.

Что касается антивирусов - что тут поделать, это их косяки. Хотя тройка лучших ничего не определяет, да и вообще процент ложного срабатывания низкий.
Ответить с цитированием
  #4  
Старый 05.10.2009, 13:24
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

"Что здесь нового: мой поточный шифр AMPRNG"

Опиши вкратце этот шифр.

То что я вижу, бегло глянув на текст, с помощью ключа и некоторых таблиц получаешь расширенный ключ с которым ксоришь данные.

Чесно говоря, большое подозрение что надежность всего этого нулевая.
Ответить с цитированием
  #5  
Старый 05.10.2009, 14:02
darksoftware darksoftware вне форума
Прохожий
 
Регистрация: 03.09.2008
Сообщения: 20
Репутация: 10
Радость

Цитата:
Сообщение от Konrad
"Что здесь нового: мой поточный шифр AMPRNG"

Опиши вкратце этот шифр.

То что я вижу, бегло глянув на текст, с помощью ключа и некоторых таблиц получаешь расширенный ключ с которым ксоришь данные.

Чесно говоря, большое подозрение что надежность всего этого нулевая.


1. Конструкция напоминает шифры RC4 и VMPC. Основа: зависимый от ключа генератор псевдослучайных чисел на перестановках, самого расширенного ключа и поблочного шифрования, как-такового нет, поскольку шифр поточный. Непосредственно ключ используется только для первичной генерации таблиц подстановки. Расширенный ключ, о котором шла речь - это ключ, генерированный из текстовой парольной строки, т.е. не тот расширенный ключ, включающий обычно раундовые подключи, о котором идет речь при описании блочных шифров - все это здесь не может иметь место. Есть внутреннее состояние (вернее два таковых, в отличие от аналогичных шифров), которое трансформируется с каждым шагом - генерацией 8 бит потока псевдослучайных 8-битных чисел. Второе внутреннее состояние - фактически таблица перестановки для первого и наоборот. Непосредственно для генерации потока используется только одна таблица, что и затруднит восстановление ВС по потоку. Как показывает практика, и одного ВС было бы достаточно для защиты от основных атак. Это при условии, конечно, что для каждого сообщения используется новый вектор инициализации, если зашифровывается довольно большой объем открытого текста.
Хотя, шифр, конечно, не проходил серьезные испытания и тщательно не исследовался. Да и вообще толковых криптоаналитиков во всем мире по пальцам можно пересчитать.

2. Любой поточный шифр ксорит свой выходной поток с данными, в этом его преимущество - простота в применении, отсутствие режима и нужды в дополнении неполных блоков (которых как таковых нет) и его беда (если он используется неправильно, без соблюдения основных правил безопасной реализации).

Относительно надежности: как сказано в первом сообщении, весь код пока - это проект, идея, которая была интересна до этапа ее работоспособности. Дальше - если кто заинтересуется, может и разовьет.

Последний раз редактировалось darksoftware, 05.10.2009 в 14:32.
Ответить с цитированием
  #6  
Старый 05.10.2009, 14:03
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

а разве открытые сорцы в шифровании это разумно? не хочу особо лезть, но не лучше ли сделать библиотеку без открытого кода?
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием
  #7  
Старый 05.10.2009, 14:13
Аватар для VladOfMonster
VladOfMonster VladOfMonster вне форума
Начинающий
 
Регистрация: 27.09.2009
Сообщения: 113
Репутация: 9
Плохо

Не хочу никого обидеть, но зачем исходный код для приложений защиты? Ведь тогда технологию можно изучить, AleD прав. А раз технологию защиты можно изучить, тогда и анти-защиту легко изобрести!(а точнее крэк!)
Ответить с цитированием
  #8  
Старый 05.10.2009, 14:27
darksoftware darksoftware вне форума
Прохожий
 
Регистрация: 03.09.2008
Сообщения: 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от VladOfMonster
Не хочу никого обидеть, но зачем исходный код для приложений защиты? Ведь тогда технологию можно изучить, AleD прав. А раз технологию защиты можно изучить, тогда и анти-защиту легко изобрести!(а точнее крэк!)

Правда в этом есть, конечно. Но ведь это не рабочий вариант (не финальный), а идея. Здесь еще многое нужно сделать, что противостоять всем возможным способам обхода защиты.
Ответить с цитированием
  #9  
Старый 05.10.2009, 14:29
darksoftware darksoftware вне форума
Прохожий
 
Регистрация: 03.09.2008
Сообщения: 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от AleD
а разве открытые сорцы в шифровании это разумно?

В шифровании (криптографии) только так и можно. Все современные алгоритмы опубликованы. Их сила в том, что атака на сам алгоритм не возможна. Если криптоалгоритм безопасен только потому, что он секретен - то грош ему цена.
Ответить с цитированием
  #10  
Старый 05.10.2009, 14:44
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,560
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию

В данном разделе выкладываются уже готовые к использованию/тестированию программы, у тебя же одни исходники которые нужно еще и собирать.
Понятно что программа с открытым исоходным кодом, но т.к. в данном разделе выкладываются именно программы, настоятельно прошу выложить в архив и банарники дабы лишний раз не корячиться.
Ответить с цитированием
  #11  
Старый 05.10.2009, 15:06
darksoftware darksoftware вне форума
Прохожий
 
Регистрация: 03.09.2008
Сообщения: 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от Admin
В данном разделе выкладываются уже готовые к использованию/тестированию программы, у тебя же одни исходники которые нужно еще и собирать.
Понятно что программа с открытым исоходным кодом, но т.к. в данном разделе выкладываются именно программы, настоятельно прошу выложить в архив и банарники дабы лишний раз не корячиться.

Выложил. Использование:

protector.exe infile outfile - упаковка/зашифрование

catcher.exe - загрузчик, должен быть в каталоге с протектором при упаковке PE-файла. Catcher и Protector взаимозависимы, при перекомпиляции меняется внутренний ключ и защищаемая одним протектором программа будет несовместима со старым модулем загрузки. Скрипт компиляции все это дело предусматривает.
Ответить с цитированием
  #12  
Старый 05.10.2009, 15:08
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от darksoftware
1. Конструкция напоминает шифры RC4 и VMPC. Основа: зависимый от ключа генератор псевдослучайных чисел на перестановках, самого расширенного ключа и поблочного шифрования, как-такового нет, поскольку шифр поточный.
2. Любой поточный шифр ксорит свой выходной поток с данными
2. Согласен.
1. В том и вопрос каким образом получаеться ключевой поток... То что шифр похож на RC4 не значит ничего. Я видел, к примеру, в инете программу USA-крипт (кажеться так наз.) которая использовала AES и ломалась на любом домашнем компе за доли секунд.

Если чесно нет желания разбирать детали предложенного вами шифра, другое дело если бы он был более мене описан с примерами рисунками и т.д.. тогда можно было о чем-ото говорить.

Только не подумай что хочу тут обидеть или необоснованно раскритиковать.
Новые шифры должны создаваться. И это факт. Но хотя бы как-то доходчиво описывайте их.
Тратить время никто не хочет на разбор чужих программ, уж поверте.

А так... для использования не годиться хотя бы потому что не проведен его анализ.
Но анализ нужен. Мало ли, может действительно есть что-то толковое в нем.

Последний раз редактировалось Konrad, 05.10.2009 в 15:12.
Ответить с цитированием
  #13  
Старый 05.10.2009, 15:20
darksoftware darksoftware вне форума
Прохожий
 
Регистрация: 03.09.2008
Сообщения: 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от Konrad
2. Согласен.
1. В том и вопрос каким образом получаеться ключевой поток... То что шифр похож на RC4 не значит ничего. Я видел, к примеру, в инете программу USA-крипт (кажеться так наз.) которая использовала AES и ломалась на любом домашнем компе за доли секунд.

Если чесно нет желания разбирать детали предложенного вами шифра, другое дело если бы он был более мене описан с примерами рисунками и т.д.. тогда можно было о чем-ото говорить.

Торлько не подумай что хочу тут обидеть или необоснованно раскритиковать.
Новые шифры должны создаваться. И это факт. Но хотя бы както доходчиво описывайте их.
Тратить время никто не хочет на разбор чужих программ, уж поверте.

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

Шифр был создал для "внутреннего использования", поэтому, конечно, нет никакой документации, спецификации, тестовых векторов и др. - зачем тратить на это время. Тем более, на шифрах не заработать - у нас есть четко определенные стандарты симметричного шифрования, включая поточные шифры (блочные в режиме гаммирования - CFB) и тут что-то новое нужно только для к-либо узких целей и "для себя".
Ответить с цитированием
  #14  
Старый 05.10.2009, 16:05
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от darksoftware
"для себя".
Тогда не вопрос.
Ответить с цитированием
  #15  
Старый 05.10.2009, 20:37
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Цитата:
Сообщение от darksoftware
Код пока сыроват, но работает.
Если антивирусы его определяют как сигнатуру вируса, то 95% вероятности, что писал его не ты. Скорее всего код был содран откуда-то... А это настораживает.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:44.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter