Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2015, 11:51   #1
alexplato
Пользователь
 
Аватар для alexplato
 
Регистрация: 14.11.2010
Сообщений: 47
По умолчанию Какую платформу выбрать для реализации

Передо мной стоит задача разработать продукт. Основное предназначение - многопоточный сбор данных с определенного вебресурса.

Сейчас мы работаем на C# и он нас частично устраивает. Есть одна проблема - отсутствие защиты приложения на C# от анализа и взлома.

В продукте планируется следующий принцип защиты. Система будет при каждом запуске продукта запрашивать настройки, необходимые для работы, с сервера по SSL соединению. Это, конечно, усложняет взлом. Однако, догадываюсь, что приложение C# несложно дампировать в рантайме и получить переданные с сервера настройки, чтобы в будущем сделать подложку (которая вместо обращения к серверу сама инициализирует приложение нужными настройками).

Таким образом, решили посмотреть в сторону разработки на C++ . На данный момент мы предъявляем следующие требования к среде разработки:
  • Возможность затруднить анализ исходного кода и сделать проблематичным взлом системы лицензирования. При этом, не исключается возможность использования каких либо сторонних платных протекторов. В случае с C# это вряд ли поможет, а вот в случае с C++, скорее всего, сможет значительно усложнить взлом и анализ.
  • Трудоемкость реализации не должна быть намного большей, чем в рамках C#.
  • Возможность создать код, работающий с оптимальной скоростью (в частности в рамках многопотока). В С# мы реализуем многопоточность с помощью механизма тасков. Альтернативное решение должно работать как минимум не медленнее.
  • Возможность работы с большими объемами данных (на ресурсе для парсинга более 10 млн страниц).
  • Сделать качественный визуальный интерфейс. При этом скорость создания и корректировки должна не сильно уступать тому, как это делается на DevExpress под C#.
  • Программный комлекс должен быть портативным, в частности, работать на диапазоне актуальных версий Windows, начиная с XP, Win7 и так далее (в том числе серверный системы) , а также в рамках 32 и 64-х битной разрядности. В идеале - сделать возможность хотя бы части программного комплекса быть универсальной для работы на любых популярных ОС, как минимум Windows и Mac.
Как вариант, вижу возможность создания программного комплекса из двух приложений. При этом первое будет создано на C# и будет включать в себя интерфейс. Второе будет включать в себя основной движок и систему защиты. Оно может быть создано на C++ в чем-то вроде mono.

Что посоветуете вы? Какую платформу для разработки выбрать? Как лучше скомбинировать части моего программного комплекса, чтобы добиться полного или почти полного соответствия предъявляемым требованиям.
Автоматизация получения заказов для ВСЕХ ФРИлансеров!

Последний раз редактировалось alexplato; 10.05.2015 в 12:03.
alexplato вне форума Ответить с цитированием
Старый 10.05.2015, 12:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я не очень понял что нужно защищать? Саму программу, т.е. ее механизм, или данные, которые она собирает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.05.2015, 12:30   #3
alexplato
Пользователь
 
Аватар для alexplato
 
Регистрация: 14.11.2010
Сообщений: 47
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я не очень понял что нужно защищать? Саму программу, т.е. ее механизм, или данные, которые она собирает?
От анализа защищается движок, который собирает данные. От взлома защищается система лицензирования, которая обеспечивает передачу с сервера настроек (опций) для инициализации движка только оплатившему программу пользователю.
Автоматизация получения заказов для ВСЕХ ФРИлансеров!
alexplato вне форума Ответить с цитированием
Старый 10.05.2015, 13:24   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я надеюсь ты понимаешь что нет ничего, чего не взломать?
Движки и прочее выноси на сервер. Клиенту простенькую ПО запращивающую с сервера данные. Все остальное... Ну я не думаю что в наше время легко защитить нативное приложение.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.05.2015, 14:15   #5
alexplato
Пользователь
 
Аватар для alexplato
 
Регистрация: 14.11.2010
Сообщений: 47
По умолчанию

Ты не думаешь или ты знаешь?
Автоматизация получения заказов для ВСЕХ ФРИлансеров!
alexplato вне форума Ответить с цитированием
Старый 10.05.2015, 14:30   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не думаю что можно защитить?
Хы )))
Ну как тебе сказать? Я же не буду при всех признаваться что реверсирую ПО. Это всетки взлом, пусть даже и не приносящий вреда другим.
Самая лучшая защита - отрезать злоумышленнику доступ к кишкам ПО, будь то скрипты или опкоды нативного приложения. Поэтому тут серверные объекты имеют преимущество. Другое дело - аппаратные ключи. Они понадежнее навесной защиты типа пакеров, но и их можно сэмулировать.
В наше время защиту нужно продумывать не с позиции какого-то там обфусцирования кода, а с позиции перегруппировки блоков кода в закрытые системы, которые будут между собой держать обмен по защищенным каналам.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.05.2015, 17:08   #7
alexplato
Пользователь
 
Аватар для alexplato
 
Регистрация: 14.11.2010
Сообщений: 47
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Не думаю что можно защитить?
Хы )))
Ну как тебе сказать? Я же не буду при всех признаваться что реверсирую ПО. Это всетки взлом, пусть даже и не приносящий вреда другим.
Самая лучшая защита - отрезать злоумышленнику доступ к кишкам ПО, будь то скрипты или опкоды нативного приложения. Поэтому тут серверные объекты имеют преимущество. Другое дело - аппаратные ключи. Они понадежнее навесной защиты типа пакеров, но и их можно сэмулировать.
В наше время защиту нужно продумывать не с позиции какого-то там обфусцирования кода, а с позиции перегруппировки блоков кода в закрытые системы, которые будут между собой держать обмен по защищенным каналам.
Спасибо за развернутый ответ в лс! Ты случайно не занимаешься тестированием систем защиты на стойкость на платной основе?
Автоматизация получения заказов для ВСЕХ ФРИлансеров!
alexplato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какую технологию выбрать для браузерной игры? ardor Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 23.12.2012 17:07
Нужно выбрать платформу для разработки alexplato Софт 4 14.11.2010 13:05
Какую СУБД выбрать для изучения? iukash Свободное общение 12 08.08.2010 08:02
Какую БД выбрать для работы с нескольких компов?!? Stiffmaker Помощь студентам 1 12.01.2010 09:27