|
#1
|
|||
|
|||
AMProtector
AMProtector - Утилита с открытым исходным текстом для защиты, упаковки и зашифровки исполняемых PE файлов. Использует технологию внедрения и подмены процесса, мощное авторское шифрование алгоритмом AMPRNG (поточный шифр) и компрессию LZMA.
Код довольно простой. Честно говоря, пока сыроват. Но уже работает, добился совместимости с Vista/Windows 7. Что особенного? Сжимает эффективнее UPX, но размер загрузчика пока очень огромен - вообще-то, нужно перенести на чистый WinAPi, в лучшем случае, немного использовать KOL. Но и на этом этапе большие экешники сжимаются отменно. Да и основное здесь - шифрование. Сейчас пока расширенный ключ сохраняется в зашифрованном виде в основном теле программы. Но, как вариант, можно добавить и опцию по "безопасному выполнению", т.е. с запросом ключа до запуска основного тела. Все это можно использовать при построении систем защиты ПО. Что здесь нового: мой поточный шифр AMPRNG и сам подход по подмене процесса в памяти для упаковки PE файлов. P.S. некоторые антивирусы могут ругаться, что вполне объяснимо - такие технологии используются некоторыми вирусами. Здесь только бинарники проекта. Последний раз редактировалось darksoftware, 07.10.2009 в 14:57. |
#2
|
||||
|
||||
Добавил в закладки, сейчас некогда, а вот потом гляну обязательно, особенно код.
Цитата:
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
Цитата:
Код пока сыроват, но работает. Когда основное получилось, интерес уже нет тот. Вообще, сам загрузчик нужно уменьшать, отказываться от типовых юнит, классов. Что касается антивирусов - что тут поделать, это их косяки. Хотя тройка лучших ничего не определяет, да и вообще процент ложного срабатывания низкий. |
#4
|
||||
|
||||
"Что здесь нового: мой поточный шифр AMPRNG"
Опиши вкратце этот шифр. То что я вижу, бегло глянув на текст, с помощью ключа и некоторых таблиц получаешь расширенный ключ с которым ксоришь данные. Чесно говоря, большое подозрение что надежность всего этого нулевая. |
#5
|
|||
|
|||
Цитата:
1. Конструкция напоминает шифры RC4 и VMPC. Основа: зависимый от ключа генератор псевдослучайных чисел на перестановках, самого расширенного ключа и поблочного шифрования, как-такового нет, поскольку шифр поточный. Непосредственно ключ используется только для первичной генерации таблиц подстановки. Расширенный ключ, о котором шла речь - это ключ, генерированный из текстовой парольной строки, т.е. не тот расширенный ключ, включающий обычно раундовые подключи, о котором идет речь при описании блочных шифров - все это здесь не может иметь место. Есть внутреннее состояние (вернее два таковых, в отличие от аналогичных шифров), которое трансформируется с каждым шагом - генерацией 8 бит потока псевдослучайных 8-битных чисел. Второе внутреннее состояние - фактически таблица перестановки для первого и наоборот. Непосредственно для генерации потока используется только одна таблица, что и затруднит восстановление ВС по потоку. Как показывает практика, и одного ВС было бы достаточно для защиты от основных атак. Это при условии, конечно, что для каждого сообщения используется новый вектор инициализации, если зашифровывается довольно большой объем открытого текста. Хотя, шифр, конечно, не проходил серьезные испытания и тщательно не исследовался. Да и вообще толковых криптоаналитиков во всем мире по пальцам можно пересчитать. 2. Любой поточный шифр ксорит свой выходной поток с данными, в этом его преимущество - простота в применении, отсутствие режима и нужды в дополнении неполных блоков (которых как таковых нет) и его беда (если он используется неправильно, без соблюдения основных правил безопасной реализации). Относительно надежности: как сказано в первом сообщении, весь код пока - это проект, идея, которая была интересна до этапа ее работоспособности. Дальше - если кто заинтересуется, может и разовьет. Последний раз редактировалось darksoftware, 05.10.2009 в 14:32. |
#6
|
||||
|
||||
а разве открытые сорцы в шифровании это разумно? не хочу особо лезть, но не лучше ли сделать библиотеку без открытого кода?
TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |
#7
|
||||
|
||||
Не хочу никого обидеть, но зачем исходный код для приложений защиты? Ведь тогда технологию можно изучить, AleD прав. А раз технологию защиты можно изучить, тогда и анти-защиту легко изобрести!(а точнее крэк!)
|
#8
|
|||
|
|||
Цитата:
Правда в этом есть, конечно. Но ведь это не рабочий вариант (не финальный), а идея. Здесь еще многое нужно сделать, что противостоять всем возможным способам обхода защиты. |
#9
|
|||
|
|||
Цитата:
В шифровании (криптографии) только так и можно. Все современные алгоритмы опубликованы. Их сила в том, что атака на сам алгоритм не возможна. Если криптоалгоритм безопасен только потому, что он секретен - то грош ему цена. |
#10
|
||||
|
||||
В данном разделе выкладываются уже готовые к использованию/тестированию программы, у тебя же одни исходники которые нужно еще и собирать.
Понятно что программа с открытым исоходным кодом, но т.к. в данном разделе выкладываются именно программы, настоятельно прошу выложить в архив и банарники дабы лишний раз не корячиться. |
#11
|
|||
|
|||
Цитата:
Выложил. Использование: protector.exe infile outfile - упаковка/зашифрование catcher.exe - загрузчик, должен быть в каталоге с протектором при упаковке PE-файла. Catcher и Protector взаимозависимы, при перекомпиляции меняется внутренний ключ и защищаемая одним протектором программа будет несовместима со старым модулем загрузки. Скрипт компиляции все это дело предусматривает. |
#12
|
||||
|
||||
Цитата:
1. В том и вопрос каким образом получаеться ключевой поток... То что шифр похож на RC4 не значит ничего. Я видел, к примеру, в инете программу USA-крипт (кажеться так наз.) которая использовала AES и ломалась на любом домашнем компе за доли секунд. Если чесно нет желания разбирать детали предложенного вами шифра, другое дело если бы он был более мене описан с примерами рисунками и т.д.. тогда можно было о чем-ото говорить. Только не подумай что хочу тут обидеть или необоснованно раскритиковать. Новые шифры должны создаваться. И это факт. Но хотя бы как-то доходчиво описывайте их. Тратить время никто не хочет на разбор чужих программ, уж поверте. А так... для использования не годиться хотя бы потому что не проведен его анализ. Но анализ нужен. Мало ли, может действительно есть что-то толковое в нем. Последний раз редактировалось Konrad, 05.10.2009 в 15:12. |
#13
|
|||
|
|||
Цитата:
Шифр был создал для "внутреннего использования", поэтому, конечно, нет никакой документации, спецификации, тестовых векторов и др. - зачем тратить на это время. Тем более, на шифрах не заработать - у нас есть четко определенные стандарты симметричного шифрования, включая поточные шифры (блочные в режиме гаммирования - CFB) и тут что-то новое нужно только для к-либо узких целей и "для себя". |
#14
|
||||
|
||||
Цитата:
|
#15
|
||||
|
||||
Цитата:
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |