Сейчас на форуме: user99, _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+8 невидимых) |
eXeL@B —› Основной форум —› Разработка защиты данных программы |
<< . 1 . 2 . 3 . >> |
Посл.ответ | Сообщение |
|
Создано: 08 октября 2005 12:43 · Личное сообщение · #1 Добрый вечер. Помогите пожалуйста с решением следующей проблемы: мне поручили разработать защиту для программы (вернее для одного из компонетов довольно сложного программного комплекса), разрабатыеваемой нашей лабораторией. Если опустить детали, то грубо говоря программа представляет собой интерфейс для работы с некоторым файлом (в котором хранятся данные о наших хим. соединениях) и именно он представляет ценность. Нужно каким-то образом сделать как чтобы этим файлом не мог воспользоваться посторонний имея на руках прогу с файлом. Скажите как можно попробовать решить эту проблему? И если можно, посоветуйте пожалуйста хорошие статьи которые можно почитать по этому поводу.. |
|
Создано: 09 октября 2005 06:49 · Личное сообщение · #2 понял, спасибо. ASMax пишет: Ну для усиления эффекта можно добавить дешифровщики дешифровщиков и т.д. правда боюсь что для реализации такого -^ у меня уж точно не хватит опыта. Хотелось бы почитать какое-нибудь пособие в котором написано как встраивать подобные защитные механизмы в код. Не знаете, есть ли такое где-нибудь? |
|
Создано: 09 октября 2005 08:45 · Личное сообщение · #3 |
|
Создано: 09 октября 2005 09:08 · Личное сообщение · #4 //сорри, не заметил поста. Spiteful пишет: Тут можно добавить антидамповые трюки какие-нибудь. Чтоб эффективней мешать код с мусором, какую-нибудь вирт. машину прикрутить... а нельзя ли поподробнее? или лучше ссылку, если есть где это описано - все равно на пальцах мне долго объяснять, чтобы не утруждать никого я лучше сам спокойно все прочитаю.. |
|
Создано: 09 октября 2005 09:15 · Личное сообщение · #5 |
|
Создано: 09 октября 2005 09:19 · Личное сообщение · #6 |
|
Создано: 09 октября 2005 09:27 · Личное сообщение · #7 ASMax пишет: Попробуй поискать статейки про полиморфизм и про вирусы, а дальше уже экспериментировать самостоятельно. спасибо, насколько я знаю - полиморфизм - это автоматическое запутывание ассемблерного кода? (поправь меня, если я неправ) это не совсем то, что я хочу. а есть ли статьи про вписывание в исходники хитрых систем типа предложенных дешифраторов? (по каким ключевым словам, хоть примерно, их можно поискать?) |
|
Создано: 09 октября 2005 09:49 · Личное сообщение · #8 online пишет: Надеюсь, более понятно стало? Теперь начинаю соображать. Значит примерно так: Каждый желающий может скачать demo-версию и файл с данными. Демка открывает не все данные и не умеет сохранять файл. Твоя задача состоит в том, чтобы так всё и оставалось. Я прав? online пишет: Моя задача вписать сюда защитный механизм Мне кажется, в данном случае есть только один способ максимально усложнить жизнь реверсёрам, превратить весь код работающий с файлом в месиво г... Программа, как я понял, уже написана. Естественно она вся такая модульная, понятная и прозрачная. Значит, без протектора не обойтись. Твою часть программы советую писать на VB, скремблить, и компилить в с p-code. Далее приличный обфускатор. Посмотри статьи и разработки GPcH'a (с ним же и посоветуйся ;) ). Пару общих советов о защите можно найти здесь http://exelab.ru/art/hex_tech.php Ключевые слова: скремблинг (scrambling) виртуальная машина обфускатор Главное, что я не понял. Данные на выходе из твоих функций уже ненужно защищать? ----- Всем привет, я вернулся |
|
Создано: 09 октября 2005 10:42 · Личное сообщение · #9 Bitfry пишет: Каждый желающий может скачать demo-версию и файл с данными. Демка открывает не все данные и не умеет сохранять файл. Твоя задача состоит в том, чтобы так всё и оставалось. Я прав? да. Только если уж совсем точно, то это не демо-версия, а полноценная прога. Просто дело в том, что файл с данным является вспомогательным при расчетах, рядовой пользователь даже не поймет что он юзается, но вот те, кто понимают что к чему (конкуренты), наверняка захотят его отковырят и посмотреть повнимательнее.. Bitfry пишет: Программа, как я понял, уже написана. Естественно она вся такая модульная, понятная и прозрачная. да, написана. да, именно так.. Твою часть программы советую писать на VB, скремблить, и компилить в с p-code. Далее приличный обфускатор. те. ты считаешь, что стоит на нее что-нибудь свое навесить? да, я читал, что VSшный p-код - это маленький тихий ужас для реверсера, но дело в том, что если на нем написать шифровальную прослойку (еще одну длл) между файлом и библиотекой, то не будет ли просто ее обойти, посмотрев на взаимодействие компонент. может лучше всю защиту запихать внутрь сишного кода библиотеки, как ты считаешь? Посмотри статьи и разработки GPcH'a (с ним же и посоветуйся ;) ). обязательно посмотрю, спасибо. а как с ним можно связаться? Главное, что я не понял. Данные на выходе из твоих функций уже ненужно защищать? да. Они хоть и полезны, но много информации в себе не содержат - это всего лишь результаты расчетов. |
|
Создано: 09 октября 2005 10:46 · Поправил: online · Личное сообщение · #10 |
|
Создано: 09 октября 2005 11:13 · Личное сообщение · #11 |
|
Создано: 09 октября 2005 17:07 · Личное сообщение · #12 |
|
Создано: 09 октября 2005 21:38 · Личное сообщение · #13 Если, у тебя, для определенных пользователей надо сделать доступ к определенным частям ентого текстового файла - зачем шифровать файл кусками, лучше дай пользователю ту часть файла, которую ему можно просматривать по его уровню доступа, тогда из файла вообще ничего скрывать не придется,а на сервер положи эти файлы для скачивания в разные папки (предварительно закриптовав и поместив в запароленный архив ~ 20 символов ) и на скачивание этих файлов установи разные пароли, а ссылки на скачивание файлов с определенным содержимым давай по уровню доступа.Пошифруй сами эти текстовые файлы а ключи для расшифровки пусть пользователи вводят в процессе запуска проги, хотя если пожат или пошифрован только один файл из проги - наводит на странные мысли, так что ИМХО лучше защищать все файлы проги почти идентично. З.Ы. в кое веки зашел и делюсь мнением, так что - за совет сильно не пинать ----- Само плывет в pуки только то, что не тонет. |
|
Создано: 10 октября 2005 02:36 · Личное сообщение · #14 |
|
Создано: 10 октября 2005 03:33 · Поправил: Barakuda · Личное сообщение · #15 Всё это очень хорошо. Шифрование файла и самого кода программы это пожалуй единственный вариант. Но не стоит забывать, что программ с подобными проблемами существует куча. Для примера это ведь тот же ОутГлюк, Опера, Бат... Да что угодно шифрующее свои важные файлы от глаз посторонних. И ведь взламывают. Это вопрос даже не денег а времени. Не хочу быть писимистом, но согласно перефразированому закону Киргоффа - система имеющая в себе алгоритм, ключ, и данные владеет нолевой стойкостью. |
|
Создано: 10 октября 2005 07:15 · Личное сообщение · #16 |
|
Создано: 10 октября 2005 07:26 · Личное сообщение · #17 |
|
Создано: 10 октября 2005 08:14 · Поправил: cbs · Личное сообщение · #18 online пишет: или может все-таки есть какие-то рекомендации насчет выбора алгоритма? Можно взять быстрый алгоритм, например, RC6 или Rijndael, и навесить "один_из_известных_протекторов_хорошо_морфирующий_код или одну_из_известных_утилит_перевода_процедур_в_виртуальные_машины" Если будет использован один_из_известных_протекторов_хорошо_морфирующий_код, то можно уровень виртуализации поставить ближе к 100% Тогда хотя бы как-то можно (на какое-то время) сделать невозможной идентификацию алгоритма или хотя бы затруднить ее. 4kusNick пишет: Согласен, но не совсем. Интересно, кто-нибудь генил RSA-1024? Да, кейгенили даже RSA-2048. Только там приватный ключик был зашит в код проги Встречаются и различные уязвимости, которые позволяют провести факторизацию значительно быстрее. ----- crypto.freak |
|
Создано: 10 октября 2005 08:34 · Личное сообщение · #19 online Системы начиная с W2000 умеют работать с криптоваными файлами. Там шифрование в зависимости от версии 64-128 бита. Результат - куча прог для взлома начиная от брутфорса и заканчивая снифенгом (логером). Надеятся на то что программу не взломают даже с грамотно построеной защитой (крипто на файл, полиморф на код) несколько наивно. Но с другой стороны - если выложить совсем не защищённый програмный продукт, то его не взламает только ленивый. Приемлемых рекомендаций просто не может быть. Защищать должны професионалы от професионалов. Но за это прийдётся платить. |
|
Создано: 10 октября 2005 11:59 · Личное сообщение · #20 cbs пишет: Можно взять быстрый алгоритм, например, RC6 или Rijndael, спасибо, обязательно посмотрю. Barakuda пишет: Защищать должны професионалы от професионалов. Но за это прийдётся платить. те. хочешь сказать самому почитать и потом попытаться что-то сваять - дело бесперспективное и бессмысленное?... |
|
Создано: 10 октября 2005 14:14 · Поправил: SLayer · Личное сообщение · #21 online, прочитав весь этот топик, я считаю что тебе нужно всерьёз применить шифрование как программы так и самих данных. Ничего более приемлемого тебе не найти. И всё на что тебе стоит рассчитывать так это на то, что не найдётся столь усидчивый и профессиональный крекер, который сможет "понять" твою систему. Ну и тебе придётся попотеть. Удачи. P.S.: остальную информацию наверное целесообразно будет искать на сайтах посвящённых именно способам защиты информации. См. выше, там была ссылка. |
|
Создано: 10 октября 2005 14:58 · Личное сообщение · #22 |
|
Создано: 10 октября 2005 15:11 · Личное сообщение · #23 4kusNick пишет: Искренне сочувствую тебе, ибо, как бы ни прятал, ни шифровал - все равно найдутся те, кому не лень будет проделать обратные операции и распространить по сети Не думаю, что кто-нибудь станет распространять по сети результаты подобного анализа. Если он стоит денег, то эти результаты оставят себе и делиться не станут online По-моему, лучше попросить помощи у профи (за $), потому что самодельную защиту скорее всего сломают. Чтобы создать хорошую защиту, надо уметь ломать ----- crypto.freak |
|
Создано: 10 октября 2005 23:25 · Личное сообщение · #24 |
|
Создано: 11 октября 2005 01:37 · Личное сообщение · #25 |
|
Создано: 11 октября 2005 01:46 · Личное сообщение · #26 online Я вижу Вы созрели для $ Не так то просто найти людей и договорится о деньгах: 1) Разработчикам защиты нужно доверять. Так как именно они создают барьер. Ничто кроме совести им не помешает через месяц самостоятельно выпустить крэк. Желательно чтоб это была фирма с хорошей репутацией. 2) Стоимость защиты зависит от множества факторов, включая саму стоимость файла, программы, времени затраченого на защиту, наглости разработчиков и т.д. и т.п. 3) И всё-же нет железной гарантии что программу не взломают на следующий день после её выхода. Возможно Вам всё-таки не стоит полностью сбрасывать со щетов самостоятельную шифрацию файла и покупки протектора. Сейчас для Вас важно выбрать путь по которому Вы будете двигатся. Именно потому ребята пытаються добится от Вас более детальной информации, и предлагают разные варианты, ведь выбор стратегии возможно самый важный шаг. |
|
Создано: 11 октября 2005 03:36 · Личное сообщение · #27 |
|
Создано: 11 октября 2005 04:39 · Личное сообщение · #28 online Если нужно Cишную dll обвесить приличной защитой, тогда тебе к DrGolova (на первую страницу). Я то думал, что существует вся программа, а твоя задача написать эту критическую dll. А если и программа и dll уже существует, то это значительно сложнее. Любой навесной протектор - дело времени (причём конечного). online пишет: те. хочешь сказать самому почитать и потом попытаться что-то сваять - дело бесперспективное и бессмысленное? Мне кажется, реально и очень полезно написать самому, только нужно хорошо знать Асм. Иначе уязвимостей не увидишь. А никак нельзя переписать dll на VB? Если нет, то сначала сам введи мусорный код на С++, потом попробуй самые муторные протекторы (в этом я не спец). А мусор лучше всего делать из условных переходов, которым не суждено осуществится. Только не так: if _bred !=0 goto bred, при котором _bred переменная но по сути константа 0. Так тоже можно, но этих переменных должно быть много, и разбросанных по данным, а не подряд. Но ещё добавь левые функции, которые на выход дают разные значения, и по результатам условный переход (и опять таки - нереальный). Мусора должно быть больше полезного кода. Так можно слегка запутать критические места (считывание данных и вычисления). Но это совершенно не остановит тех, кто может просто спереть саму dll и файл данных. Так что тебе ещё нужно сделать, чтоб эта библиотека не работала без всей остальной программы. Вот как мыслит крякер (после снятия протектора): Сначала открывается файл (CreateFileA) и хрен тут скроешься. Далее по хендлу всегда можно найти, где с ним идёт работа. Запутать можно, но только слегка. Типа: открывать, закрывать, скопировать хендл сотню раз. И где-нибудь подальше от открытия выполнять загрузку и чтение данных. Возможно, крякер возьмет сканер крипто алгоритмов (тот же PEiD), сканер выдаст адреса, по которым происходит шифровка/дешифровка (если сигнатуры будут определяться). А вообще крякнуть такое реально. Скажем так: за штуку баксов крякнут защиту себестоимостью в 5 штук . Именно поэтому не стоит ради одного экземпляра разрабатывать новую навесную защиту. А вот скрытых проверок понаставить в свой код очень даже стоит. С такой философией: "если прога не обнаружено (разными способами), то данные в файле будут изуродованы. Слегка, но так чтоб файл после этого был бесполезен. Крякер химик – это редкость. Так что процесс взлома будет очень осложнён. ----- Всем привет, я вернулся |
|
Создано: 11 октября 2005 06:17 · Личное сообщение · #29 |
|
Создано: 11 октября 2005 17:29 · Личное сообщение · #30 |
|
Создано: 11 октября 2005 17:59 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . >> |
eXeL@B —› Основной форум —› Разработка защиты данных программы |