|
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
|
|
.NET 4.x Проектирование и выбор решения для реализации (локальное; клиентское приложение)22.10.2015, 11:57. Показов 1306. Ответов 10
Метки нет (Все метки)
Вступление для Админов.
Кликните здесь для просмотра всего текста
Куда засунуть эту тему я не нашёл (разделов по проектированию нет (или я не увидел)). А так как интерфейс будет на WPF, подумал что здесь эту тему и нужно размещать.
Здравствуйте и айда решать мои проблемы! ![]() Хочу сделать приложение и "скрыть от чужих глаз" внутреннее содержимое моей программы. Как нам известно, наш любимый C# открытый и с большой радостью декомпилится, а это немного мешает достичь мне, одной из целей данного проекта, кстати, которая была упомянута чуть раньше. Раз уже начали с шарпа, то тут же и уточню, что об обфускации я знаю, использовать буду, но она не в полной мере выполняет мою задачу, т.к. код, всё таки продвинутому пользователю доступен будет... зашифрованный, но открытый. Весь проект, по сути как и любой другой, делится на две основных составляющих части: 1. UI 2. Core Для разработки интерфейса(1), я склоняюсь к выбору технологии C# WPF, по ряду следующих причин: -(как минимум) Он под это заточен. Удобен для создания графического дизайна приложения. -Тот факт что это тот самый C# и он открытый в данном пункте меня совершенно не смущает, т.к. это же всего лишь интерфейс и смысла его "вскрывать" нет, т.к. каждый из нас его написать сможет (или продублировать своим кодом чужой интерфейс). -(как максимум) Я с ним работал достаточно много и знаю как навести красоту в нём. ![]() А вот и сама задача: а что же выбрать для написания, так называемого, ядра(2)? C# не подходит по ранее упомянутому недостатку. Кликните здесь для просмотра всего текста
А так бы хотелось на нём всю приложуху сделать. Шарп у меня основной и на нём было бы проще всего разрабатывать.
Тогда какой язык выбрать, чтобы конечную сборку (dll-ку, в данном случае) нельзя было развернуть? На уме сейчас только C++ (ну и я когда-то его рассматривал...). Нужно будет наследовать класс из ядра(2) в модель интерфейса(1). Плюсы это достойное решение данной проблемы?? Если да, тогда сопутствующие вопросы: Кликните здесь для просмотра всего текста
-Как подключить dll написанную на плюсах в c# проект (НЕ подключая каждый метод в отдельности с помощью ImportDLL атрибута)?
-Я так понял что можно из ++ библиотеки сделать фейковую-управляемую dll и через неё сразу работать со всем функционалом данной сборки, эта чудо вещь ещё идёт с суффиксом Interop. "Это" можно использовать в данном решении? (если да, то как такую библиотеку сваять?)
0
|
|
| 22.10.2015, 11:57 | |
|
Ответы с готовыми решениями:
10
Выбор решения для проекта! Приложение для Windows + приложение для Android или Web приложение? Клиентское приложение (оболочка) на C# для БД (MS SQL Server) Клиентское приложение для работы с сервером SFTP |
|
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
|
|
| 27.10.2015, 15:15 [ТС] | |
|
Сообщение из серии "Updata time"
![]() Народ, ну кто? Где все?
0
|
|
|
Жуткая тВарЬ
|
|
| 27.10.2015, 15:49 | |
|
DarkOrk, Я бы Вам советовал не париться и писать на шарпе ибо если Ваше приложение не из серии про безопасность и деньги, то большого смысла не вижу - ибо если прогу можно взломать значит ее контингент использования будет достаточно велик, а компании обычно закупают программы а не пользуются кряками...
Тем более нормальные конторы все равно смогут Вашу программу повторить если в этом будет коммерческий толк - таких примеров уйму - я не думаю, что Вы там в коде изобретете, что то фундаментальное и еще ни кем не затронутое +)))) Не усложняйте себе жизнь..... П.С. Я как то слышал мнение от одного кодера - он говорил следующее: "На шарпе я обычно разрабатываю прототип т.к. скорость разработке на нем очень высокая, а потом переписываю на С++ если в этом есть необходимость"
0
|
|
|
95 / 54 / 10
Регистрация: 16.09.2012
Сообщений: 207
|
|
| 31.10.2015, 11:53 | |
|
DarkOrk, Это сделать очень и очень сложно. Можно основные функции вынести в нативный код, перенести часть кода в dll на плюсах, можно воспользоваться обфускацией, но она лишь усложняет чтение исходника, а не защищает его. Можно попробовать менять точку входа у приложения, воспользоваться упаковщиком, но большинство упаковщиков уже давно взломаны (все популярные бесплатные и бОльшая часть платных). Более того, если твой продукт действительно сверхважный или будет представлять реальный интерес для общества, то его 100% взломают. Над взломом игр, крупных приложений работают целые команды реверс инженеров, поэтому ни одно крупное приложение еще не было защищено на 100% от взлома, какая бы ни была защита. Можешь так же подумать в сторону лицензирования и на эту тему погуглить
1
|
|
|
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
|
|
| 31.10.2015, 12:52 [ТС] | |
|
Ну вот - первый серьёзный ответ
спасибо.Почему я этим задался - т.к. не хочу что бы программка в первые пару недель ушла в "фри пасс". Давайте тогда конкретнее, 2 вопроса: 1. Основная тема топика (так всё таки) как сделать основную часть в нативном коде и "без особого труда" заставить его подружится с компилируемым (в нашем случае речь о C#/.NET). Цель: максимальная защита внутренней составляющей программы. 2. Как организовать "поверхностную" защиту. Кто это делал и имеет опыт, можете написать план с расшифровкой, ну там к примеру: "1. Обфускация кода (такие-то обфускаторы хороши). 2 Лицензирование (делается с помощью таких-то программ (у неё есть такие-то особенности и плюсы)) 3. ..." Цель: сделать коммерческий программный продукт.
0
|
|
|
|
|
| 31.10.2015, 16:22 | |
|
DarkOrk, как уже было выше сказано, ломается все. Абсолютно, исключений нет. Вопрос только во времени/затратах.
В плане обеспечения безопасности вашего кода ничего лучше, чем клиент-серверное приложение придумать не получится. Если у вас есть возможность так сделать - то я бы посоветовал именно это. Вынести основной функционал на сервер.
0
|
|
|
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
|
|
| 02.11.2015, 10:02 [ТС] | |
|
За мнение, Спасибо, но к сожалению, клиент-серверное ПО делать возможности нет. На данный момент хотелось бы организовать off-line desktop приложуху.
На данный момент, определили только одно средства защиты - это обфускация. Ещё варианты есть? Кто-то сталкивался с лицензированием ПО? Кто-то проконсультировать\направить в этой области может?
0
|
|
|
98 / 1 / 1
Регистрация: 28.01.2007
Сообщений: 53
|
||
| 02.11.2015, 15:10 | ||
0
|
||
|
Master of Orion
|
|
| 02.11.2015, 15:36 | |
|
DarkOrk, как выше написали, ломается абсолютно все, хоть сишарп, хоть плюсы, хоть ассемблер со вставками на брейнфаке. Причем как правило для хака всего приложения достаточно заменить пару байт в одном месте. Тут наглядный пример. Игры, которые по 10 лет разрабатывают огромные коллективы взламывают буквально на следующий день (причем стоит заметить, что 99% всех игр это именно плюсы), что уж говорить про маленькие приложухи.
0
|
|
|
|
||
| 02.11.2015, 17:10 | ||
|
С реальными программами, конечно, было бы труднее, но все равно все ломается.
0
|
||
|
95 / 54 / 10
Регистрация: 16.09.2012
Сообщений: 207
|
|
| 09.11.2015, 10:11 | |
|
DarkOrk, По поводу обфускаторов вот:
http://habrahabr.ru/post/255871/ http://habrahabr.ru/post/97062/ По поводу лицензирования, можешь погуглить в сторону HASP и как реализовать HASP лицензирование. По поводу всего остального. Парень, я не хочу, конечно, тебя ничем оскорбить, но ты совсем не понимаешь, куда ты лезешь. Потому что в эту тему нужно погружаться с головой. На защиту ПО нужно неоправданно много (неоправданно, потому что ты месяц-два убьёшь, а всё равно гарантии защиты никакой нету) времени, сил и мозгов (в конце то концов=)). И у тебя не получиться провернуть это всё "бесплатно, без регистрации и смс" (без особого труда). Там нужно реально читать много статей, книг, листать примеры, реализовывать алгоритм, самому потом попытаться взломать, потом понять, что всё плохо и всё переделать, потом опять попробовать сломать и тд. И я тебе сразу говорю, как только какой то способ защиты становится популярным, он сразу попадает под прицел реверс инженеров. Поэтому просто так взять и найти в инете какой то способ (и тем более, найти исходник), который обеспечит тебе защиту, это маловероятно. Хотя от быдланов можно защититься. Но (повторюсь), если твоя программа представляет реальный интерес для общества, то можешь даже время не тратить. P.S. Я конечно, понимаю, что ты, скорее всего не можешь такие вопросы решать, но вот 2ГИС, например, выбрало другой способ монетизации (реклама в прожку вставляют) как раз по этой причине. Потому что их прожка представляет реальный интерес для общества, поэтому всем понятно было, что её бы сломали, а так, они очень хорошо зарабатывают на рекламе. А там, скажу я по секрету, очень мозговитые ребята работают. И их много) Повод задуматься даю)
1
|
|
| 09.11.2015, 10:11 | |
|
Помогаю со студенческими работами здесь
11
Большая работа (клиентское приложение для больницы), много вопросов клиентское приложение Клиентское приложение клиентское приложение афиши
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|