Сейчас на форуме: user99, _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+8 невидимых)

 eXeL@B —› Основной форум —› Разработка защиты данных программы
<< . 1 . 2 . 3 . >>
Посл.ответ Сообщение

Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 08 октября 2005 12:43
· Личное сообщение · #1

Добрый вечер.
Помогите пожалуйста с решением следующей проблемы:
мне поручили разработать защиту для программы (вернее для одного из компонетов довольно сложного программного комплекса), разрабатыеваемой нашей лабораторией. Если опустить детали, то грубо говоря программа представляет собой интерфейс для работы с некоторым файлом (в котором хранятся данные о наших хим. соединениях) и именно он представляет ценность. Нужно каким-то образом сделать как чтобы этим файлом не мог воспользоваться посторонний имея на руках прогу с файлом.
Скажите как можно попробовать решить эту проблему?
И если можно, посоветуйте пожалуйста хорошие статьи которые можно почитать по этому поводу..



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 09 октября 2005 06:49
· Личное сообщение · #2

понял, спасибо.
ASMax пишет:
Ну для усиления эффекта можно добавить дешифровщики дешифровщиков и т.д.

правда боюсь что для реализации такого -^ у меня уж точно не хватит опыта.
Хотелось бы почитать какое-нибудь пособие в котором написано как встраивать подобные защитные механизмы в код.
Не знаете, есть ли такое где-нибудь?




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 09 октября 2005 08:45
· Личное сообщение · #3

Spiteful пишет:
если там инфа на нобелевку тянет, то все равно отломают

Ну или даже на несколько сотен американских президентов...



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 09 октября 2005 09:08
· Личное сообщение · #4

//сорри, не заметил поста.
Spiteful пишет:
Тут можно добавить антидамповые трюки какие-нибудь.
Чтоб эффективней мешать код с мусором, какую-нибудь вирт. машину прикрутить...

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



Ранг: 62.9 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 09 октября 2005 09:15
· Личное сообщение · #5

online
Попробуй поискать статейки про полиморфизм и про вирусы, а дальше уже экспериментировать самостоятельно.

Ara
ИМХО даже несколько тысяч а.п. не избавят подобную программу от эффекта Неуловимого Джо.





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 09 октября 2005 09:19
· Личное сообщение · #6

ASMax
Имелось ввиду передача президентов некими заинтересованными личностями неким умельцам...



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 09 октября 2005 09:27
· Личное сообщение · #7

ASMax пишет:
Попробуй поискать статейки про полиморфизм и про вирусы, а дальше уже экспериментировать самостоятельно.

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



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 09 октября 2005 09:49
· Личное сообщение · #8

online пишет:
Надеюсь, более понятно стало?

Теперь начинаю соображать.

Значит примерно так:
Каждый желающий может скачать demo-версию и файл с данными.
Демка открывает не все данные и не умеет сохранять файл.
Твоя задача состоит в том, чтобы так всё и оставалось.
Я прав?

online пишет:
Моя задача вписать сюда защитный механизм

Мне кажется, в данном случае есть только один способ максимально усложнить жизнь реверсёрам, превратить весь код работающий с файлом в месиво г...
Программа, как я понял, уже написана.
Естественно она вся такая модульная, понятная и прозрачная. Значит, без протектора не обойтись.
Твою часть программы советую писать на VB, скремблить, и компилить в с p-code. Далее приличный обфускатор.
Посмотри статьи и разработки GPcH'a (с ним же и посоветуйся ;) ).

Пару общих советов о защите можно найти здесь
http://exelab.ru/art/hex_tech.php

Ключевые слова:
скремблинг (scrambling)
виртуальная машина
обфускатор

Главное, что я не понял. Данные на выходе из твоих функций уже ненужно защищать?

-----
Всем привет, я вернулся




Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 09 октября 2005 10:42
· Личное сообщение · #9

Bitfry пишет:
Каждый желающий может скачать demo-версию и файл с данными.
Демка открывает не все данные и не умеет сохранять файл.
Твоя задача состоит в том, чтобы так всё и оставалось.
Я прав?

да. Только если уж совсем точно, то это не демо-версия, а полноценная прога. Просто дело в том, что файл с данным является вспомогательным при расчетах, рядовой пользователь даже не поймет что он юзается, но вот те, кто понимают что к чему (конкуренты), наверняка захотят его отковырят и посмотреть повнимательнее..
Bitfry пишет:
Программа, как я понял, уже написана.
Естественно она вся такая модульная, понятная и прозрачная.

да, написана. да, именно так..
Твою часть программы советую писать на VB, скремблить, и компилить в с p-code. Далее приличный обфускатор.
те. ты считаешь, что стоит на нее что-нибудь свое навесить?
да, я читал, что VSшный p-код - это маленький тихий ужас для реверсера, но дело в том, что если на нем написать шифровальную прослойку (еще одну длл) между файлом и библиотекой, то не будет ли просто ее обойти, посмотрев на взаимодействие компонент.
может лучше всю защиту запихать внутрь сишного кода библиотеки, как ты считаешь?
Посмотри статьи и разработки GPcH'a (с ним же и посоветуйся ;) ).
обязательно посмотрю, спасибо.
а как с ним можно связаться?
Главное, что я не понял. Данные на выходе из твоих функций уже ненужно защищать?
да. Они хоть и полезны, но много информации в себе не содержат - это всего лишь результаты расчетов.



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 09 октября 2005 10:46 · Поправил: online
· Личное сообщение · #10

[маленьких оффтоп:]
так увлекся написанием ответа и чтением статьи, то у меня сгорел рис.




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 09 октября 2005 11:13
· Личное сообщение · #11

online пишет:
а как с ним можно связаться?

На канале краклаб в сети irc

irc.street-creed.com 6667
#cracklab


-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 09 октября 2005 17:07
· Личное сообщение · #12

спасибо.



Ранг: 200.3 (наставник)
Активность: 0.090
Статус: Участник

Создано: 09 октября 2005 21:38
· Личное сообщение · #13

Если, у тебя, для определенных пользователей надо сделать доступ к определенным частям ентого текстового файла - зачем шифровать файл кусками, лучше дай пользователю ту часть файла, которую ему можно просматривать по его уровню доступа, тогда из файла вообще ничего скрывать не придется,а на сервер положи эти файлы для скачивания в разные папки (предварительно закриптовав и поместив в запароленный архив ~ 20 символов ) и на скачивание этих файлов установи разные пароли, а ссылки на скачивание файлов с определенным содержимым давай по уровню доступа.Пошифруй сами эти текстовые файлы а ключи для расшифровки пусть пользователи вводят в процессе запуска проги, хотя если пожат или пошифрован только один файл из проги - наводит на странные мысли, так что ИМХО лучше защищать все файлы проги почти идентично.
З.Ы. в кое веки зашел и делюсь мнением, так что - за совет сильно не пинать

-----
Само плывет в pуки только то, что не тонет.




Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 10 октября 2005 02:36
· Личное сообщение · #14

прости, но я совсем не понял: о чем ты??



Ранг: 51.9 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 10 октября 2005 03:33 · Поправил: Barakuda
· Личное сообщение · #15

Всё это очень хорошо. Шифрование файла и самого кода программы это пожалуй единственный вариант.
Но не стоит забывать, что программ с подобными проблемами существует куча. Для примера это ведь тот же ОутГлюк, Опера, Бат... Да что угодно шифрующее свои важные файлы от глаз посторонних. И ведь взламывают. Это вопрос даже не денег а времени. Не хочу быть писимистом, но согласно перефразированому закону Киргоффа - система имеющая в себе алгоритм, ключ, и данные владеет нолевой стойкостью.




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 10 октября 2005 07:15
· Личное сообщение · #16

Barakuda
Согласен, но не совсем. Интересно, кто-нибудь генил RSA-1024?

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 10 октября 2005 07:26
· Личное сообщение · #17

Barakuda
и это не зависит от криптоалгоритма?
или может все-таки есть какие-то рекомендации насчет выбора алгоритма?




Ранг: 78.0 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 10 октября 2005 08:14 · Поправил: cbs
· Личное сообщение · #18

online пишет:
или может все-таки есть какие-то рекомендации насчет выбора алгоритма?

Можно взять быстрый алгоритм, например, RC6 или Rijndael, и навесить "один_из_известных_протекторов_хорошо_морфирующий_код или одну_из_известных_утилит_перевода_процедур_в_виртуальные_машины" Если будет использован один_из_известных_протекторов_хорошо_морфирующий_код, то можно уровень виртуализации поставить ближе к 100% Тогда хотя бы как-то можно (на какое-то время) сделать невозможной идентификацию алгоритма или хотя бы затруднить ее.

4kusNick пишет:
Согласен, но не совсем. Интересно, кто-нибудь генил RSA-1024?

Да, кейгенили даже RSA-2048. Только там приватный ключик был зашит в код проги Встречаются и различные уязвимости, которые позволяют провести факторизацию значительно быстрее.

-----
crypto.freak




Ранг: 51.9 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 10 октября 2005 08:34
· Личное сообщение · #19

online
Системы начиная с W2000 умеют работать с криптоваными файлами. Там шифрование в зависимости от версии 64-128 бита. Результат - куча прог для взлома начиная от брутфорса и заканчивая снифенгом (логером). Надеятся на то что программу не взломают даже с грамотно построеной защитой (крипто на файл, полиморф на код) несколько наивно. Но с другой стороны - если выложить совсем не защищённый програмный продукт, то его не взламает только ленивый. Приемлемых рекомендаций просто не может быть. Защищать должны професионалы от професионалов. Но за это прийдётся платить.



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 10 октября 2005 11:59
· Личное сообщение · #20

cbs пишет:
Можно взять быстрый алгоритм, например, RC6 или Rijndael,

спасибо, обязательно посмотрю.
Barakuda пишет:
Защищать должны професионалы от професионалов. Но за это прийдётся платить.

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




Ранг: 90.3 (постоянный), 1thx
Активность: 0.030
Статус: Участник

Создано: 10 октября 2005 14:14 · Поправил: SLayer
· Личное сообщение · #21

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


P.S.: остальную информацию наверное целесообразно будет искать на сайтах посвящённых именно способам защиты информации. См. выше, там была ссылка.




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 10 октября 2005 14:58
· Личное сообщение · #22

online
Искренне сочувствую тебе, ибо, как бы ни прятал, ни шифровал - все равно найдутся те, кому не лень будет проделать обратные операции и распространить по сети

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.





Ранг: 78.0 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 10 октября 2005 15:11
· Личное сообщение · #23

4kusNick пишет:
Искренне сочувствую тебе, ибо, как бы ни прятал, ни шифровал - все равно найдутся те, кому не лень будет проделать обратные операции и распространить по сети

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

online
По-моему, лучше попросить помощи у профи (за $), потому что самодельную защиту скорее всего сломают. Чтобы создать хорошую защиту, надо уметь ломать

-----
crypto.freak




Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 10 октября 2005 23:25
· Личное сообщение · #24

SLayer пишет:
Ну и тебе придётся попотеть. Удачи.

спасибо!
cbs пишет:
По-моему, лучше попросить помощи у профи (за $), потому что самодельную защиту скорее всего сломают. Чтобы создать хорошую защиту, надо уметь ломать

а сколько примерно стоит разработка той защиты которую мы обсуждаем?




Ранг: 90.3 (постоянный), 1thx
Активность: 0.030
Статус: Участник

Создано: 11 октября 2005 01:37
· Личное сообщение · #25

online пишет:
а сколько примерно стоит разработка той защиты которую мы обсуждаем?

ну по этому вопросу наверное стоит переговорить с GPcH. Тут он бывает теперь редко. Я думаю легче с ним свзяться через h##p://www.dotfix.net



Ранг: 51.9 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 11 октября 2005 01:46
· Личное сообщение · #26

online
Я вижу Вы созрели для $

Не так то просто найти людей и договорится о деньгах:
1) Разработчикам защиты нужно доверять. Так как именно они создают барьер. Ничто кроме совести им не помешает через месяц самостоятельно выпустить крэк. Желательно чтоб это была фирма с хорошей репутацией.
2) Стоимость защиты зависит от множества факторов, включая саму стоимость файла, программы, времени затраченого на защиту, наглости разработчиков и т.д. и т.п.
3) И всё-же нет железной гарантии что программу не взломают на следующий день после её выхода.

Возможно Вам всё-таки не стоит полностью сбрасывать со щетов самостоятельную шифрацию файла и покупки протектора. Сейчас для Вас важно выбрать путь по которому Вы будете двигатся. Именно потому ребята пытаються добится от Вас более детальной информации, и предлагают разные варианты, ведь выбор стратегии возможно самый важный шаг.



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 11 октября 2005 03:36
· Личное сообщение · #27

Barakuda пишет:
Я вижу Вы созрели для $

нет еще - пока я просто раздумываю над вариантами



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 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 штук .
Именно поэтому не стоит ради одного экземпляра разрабатывать новую навесную защиту.

А вот скрытых проверок понаставить в свой код очень даже стоит. С такой философией: "если прога не обнаружено (разными способами), то данные в файле будут изуродованы. Слегка, но так чтоб файл после этого был бесполезен.
Крякер химик – это редкость. Так что процесс взлома будет очень осложнён.

-----
Всем привет, я вернулся




Ранг: 62.9 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 11 октября 2005 06:17
· Личное сообщение · #29

online
По-видимиому тебе привычнее работать с языками высокого уровня, тогда можешь почитать еще это:
www.citforum.ru/security/articles/mask/index.shtml



Ранг: 51.9 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 11 октября 2005 17:29
· Личное сообщение · #30

Немножко не по теме, но всё-таки
ASMax пишет:
тогда можешь почитать еще это:

Приятный код на hххp://www.citforum.ru/security/articles/mask/9.shtml
Просто интересно, когда нужен апгрейд функции, сами разработчики разберутся что она делает ?




Ранг: 62.9 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 11 октября 2005 17:59
· Личное сообщение · #31

Barakuda
А зачем? Они проапгрейдят оригинал, а потом снова его замаскируют.


<< . 1 . 2 . 3 . >>
 eXeL@B —› Основной форум —› Разработка защиты данных программы
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати