Вход | Регистрация


Информационные технологии :: Математика и алгоритмы

Защита от реверс-инжиниринга с .NET

Защита от реверс-инжиниринга с .NET
Я
   HeroShima
 
21.01.13 - 21:35
Чем и нужно ли заморачиваться?
 
 
   H A D G E H O G s
 
1 - 21.01.13 - 21:36
реверс-инжиниринга - че это?
   kotletka
 
2 - 21.01.13 - 21:37
ща яндекс трещать стал от запроса про реверс-инжиниринг
   HeroShima
 
3 - 21.01.13 - 21:37
(1) выковыривание алгоритма работы
   HeroShima
 
4 - 21.01.13 - 21:37
(2) интернет уже почитал
   kotletka
 
5 - 21.01.13 - 21:38
(1)вкратце то чем большинство 1с прогов занимаются, по коду проги разбираются как работает типовая
   kotletka
 
6 - 21.01.13 - 21:39
(4)не у нас начальник так любит говорить, так что я почитал про это неделю назад
   HeroShima
 
7 - 21.01.13 - 21:39
Такие варианты:
1. Покупать за большие деньги тулз.
2. Писать своё.
3. Забить и надеяться на лицензию.
   H A D G E H O G s
 
8 - 21.01.13 - 21:40
(3) Вот так и пиши "взлом dll-ки, в которую вынесен мой гейтсопротивный кот"
   HeroShima
 
9 - 21.01.13 - 21:42
(8) Хорошо. Екзешника.
   MaxS
 
10 - 21.01.13 - 21:42
(5) Есть другой вариант - спросить у опытного консультанта 1С. В современных конфигурациях 8-ки так получается быстрее.
И если вопрос останется, копать код.
 
 Рекламное место пустует
   H A D G E H O G s
 
11 - 21.01.13 - 21:42
Ну напиши, куле.
И пусть у тебя будет сервер, куда dllка будет ломитца в обязательном порядке и скачивать себя, новую. Это официальная версия.
И заодно проверять свой CRC32.
Вот и посчитаешь.
   HeroShima
 
12 - 21.01.13 - 21:58
(11) такой вариант не подходит
   H A D G E H O G s
 
13 - 21.01.13 - 22:00
(12) Че так?
   HeroShima
 
14 - 21.01.13 - 22:01
(13) юзабилити наше фсё и везде!
   H A D G E H O G s
 
15 - 21.01.13 - 22:03
(14) тоесть?
   HeroShima
 
16 - 21.01.13 - 22:04
(15) неудобно пользоваться шедевром
   HeroShima
 
17 - 21.01.13 - 22:49
(1) Рассказать как система из-под отладчика смотрится?
   Партизан
 
18 - 21.01.13 - 22:53
(0) GNU GPL даст защиту от реверс-инжиниринга ))
   HeroShima
 
19 - 21.01.13 - 23:13
(18) только после 1С)
   NS
 
20 - 22.01.13 - 00:14
Кто мешает обфусцировать?
   HeroShima
 
21 - 22.01.13 - 13:29
(20) В первую очередь цена хороших обфускаторов. Во вторую: хотелось бы нечто, работающее на уровне исходного кода С#, а такого что-то очень мало.
   NS
 
22 - 22.01.13 - 13:33
(21) То экзешник, то исходный код.
Навалом обфускаторов и сишарповского кода.
В том числе и бесплатных. Думаю что твоя нетленка не настолько дорога, чтоб народ всерьез взялся за её взлом.
   mehfk
 
23 - 22.01.13 - 13:34
(0) Пиши копрокод, даже обфусцировать не придется.
А так, ищи в гугле как рефлектор обойти.
   DEVIce
 
24 - 22.01.13 - 13:36
(21) А нафига обфусцировать исходный код? Ты готовое решение с исходниками поставляешь? Ну так решение на поверхности - поставляй без исходников. :)
   HeroShima
 
25 - 22.01.13 - 13:39
(24) мне не нужно запутывать всё, достаточно одной - двух функций, а ради этого создавать проект обфускатора и тюниновать его...
   DEVIce
 
26 - 22.01.13 - 13:44
(25) Ни че не понял. Во-первых, готовый код .Net он всяко без исходного текста. Чего и как там реверс-инжинирить? CLR? Ну так это читай грубо тот же ASM, как ты практически машинные комманды обфусцировать собираешься?
   Кирпич
 
27 - 22.01.13 - 13:46
Заморачиваться не нужно. Ибо все что написано на .NET и Java рано или поздно попадет на помойку или перепишется на Си.
Сегодня ставил какую то херь от охраны природопользования. Чтобы отправить им туда килобайтный файлик XML, пришлось скачать полгига какой то ненужной мне хрени. Потом это все запустилось и тормозило так, что аж нервы рвались. Ударяешь по клавише и ждешь пока буква нарисуется. Кашмар. Зашифруйте это все обфускаторами и выкиньте куда глаза глядят. Не понимаю людей, которые делают что-то на NET. Java это хотя бы кроссплатформенность. Но NET....
   HeroShima
 
28 - 22.01.13 - 13:50
(26) ты рефлектор когда-нибудь запускал? а иду/иксрей?
(27) Это эмоции. На том же дельфи тоже уг хватает.
И обновитесь до win7, хотя бы)
   DEVIce
 
29 - 22.01.13 - 13:53
(28) Иду запускал. Вообще и дизасмами и дебагерами/отладчиками разными хитрыми пользовался. А что? Ты лучше объясни как ты обфусцируешь CLR?
   HeroShima
 
30 - 22.01.13 - 13:56
(29) тогда мне непонятны твои вопросы
   AaNnDdRrEeYy
 
31 - 22.01.13 - 14:10
все сборки NET компилируются не в машинный код а в язык IL, потом уже среда CLR при подгрузки сборки компилирует их в машинный код в зависимости от архитектуры железа, отсюда и кросплатформенность.
Так что ты там защишать захотел? любой адекватный программист может прочитать IL язык не хуже чам простые исходники, тем более литературы по языку IL полным полно.
   HeroShima
 
32 - 22.01.13 - 14:11
(31) можно и машинный код прочитать - вопрос в запутанности потока исполнения
   sapphire
 
33 - 22.01.13 - 14:12
(11) Это не спасает от инжекции основного процесса
 
 
   HeroShima
 
34 - 22.01.13 - 14:13
ТС разбирался с макаронами времён DOS, когда ещё не было разделения кода и данных. Ближе к делу.
   AaNnDdRrEeYy
 
35 - 22.01.13 - 14:20
(32)запутанность исполнения = сложность поддержки.
   HeroShima
 
36 - 22.01.13 - 14:27
(35) если путать только перед выпуском релиза, или код, шифрующий другой код, тогда сойдёт.
   HeroShima
 
37 - 22.01.13 - 14:30
К (0) ещё хотелось узнать: заморачивался кто-нибудь из мистян с этим серьёзно, терпел ли убытки из-за пиратства и т.п. Может овчинка и выделки не стоит.
   dmpl
 
38 - 22.01.13 - 14:35
(37) Сделай свой девайс с прошитой в нем DLL'кой. Наружу только API отдаешь.
   HeroShima
 
39 - 22.01.13 - 14:39
(38) Резонность: стоимость взлома > стоимости приобретения. Если взломать можно за рупь - это ничего страшного при цене в полтинник.
   DEVIce
 
40 - 22.01.13 - 14:41
(39) тут еще нужно понимать четко, а кому это авно нужно чтобы его ломать? :)
   dmpl
 
41 - 22.01.13 - 14:42
(39) Нет девайса - иди кури, дядя. Взлом невозможен в принципе. Причем девайс ты можешь вообще в руки не давать, организуй облако.
   HeroShima
 
42 - 22.01.13 - 14:47
(40) это уже для раздела о философии)
(41) облака - неудобная, ненужная хрень, по крайней мере на данный момент
   dmpl
 
43 - 22.01.13 - 14:54
(42) Ну тогда делай девайс на бескорпусных микросхемах, заливай все компаундом и отдавай заказчику. Если он сможет снять компаунд не повредив микросхемы - значит остаются только облака...
   HeroShima
 
44 - 22.01.13 - 15:00
грустная история по хасп и одинэс..
   RusDX
 
45 - 22.01.13 - 15:19
(0)
http://habrahabr.ru/post/97062/  
Но на 100% не защищают (
   HeroShima
 
46 - 22.01.13 - 15:48
(45) это у меня уже было в закладках, но всё равно спасибо!
   mihavxc
 
47 - 07.02.13 - 11:19
Могу посоветовать программные и аппаратные ключи HASP.
http://www.safenet-sentinel.ru/
Стоимость SDK с 5 пользовательскими ключами - 100$

Конечно надежно защитить .net приложения не так просто, но подобное решение будет в разы надежней простого использования обсуфкатора.

Кстати, 21 февраля будет проходить технический мастре-класс для разработчиков по защите ПО, там будет рассматриваться и надежная защита .net приложений.
Подробности о мастер-классе будут на сайте:
http://www.safenet-sentinel.ru/
   HeroShima
 
48 - 07.02.13 - 16:44
(47) спасибо. приму во внимание.
   HeroShima
 
49 - 16.02.13 - 13:13
В голову лезет всякая криптография с откр ключем и хеши от фио + исходников. Проще говоря, своего рода подписывание и все.
 
 Рекламное место пустует
   Torquader
 
50 - 17.02.13 - 01:35
(49) Криптография прокатывает, когда нужно что-то спрятать, пока оно не используется, так как в случае использования в памяти всё равно будет исполняемый код. Соответственно, для чайника, что криптография, что простое кодирование (0xFF-{Byte}) будут одинаковы, а профессионал считает через драйвер из памяти процесса, пока тот будет скинут из процессора.
Подписывание интересно, если хочется потом доказывать, что код твой, но, в силу того, что однотипные решения могут быть исполнены по одинаковым алгоритмам (а сам алгоритм не патентуется), то ничего, кроме вывода - "у меня слизали" сделать будет невозможно.
Потом, если вы пишете готовую программу, которая не предполагает, что пользователи будут её модифицировать, то мало желающих будет пытаться что-то изменить, так как при выходе следующей версии придётся разбирать код снова.
Что касается защиты от копирования, то тут без DLL и процесса на уровне ядра не обойтись, так как иначе потом может оказаться, что все машины одинаковые.
   Bugmenot
 
51 - 17.02.13 - 01:49
(0) - нет, не стоит.

Помни, что твоий код без документации поймут только 2 человека на земле - ты и тот, который думает как ты.
   HeroShima
 
52 - 17.02.13 - 10:41
(50) В моём конкретном случае остановился на варианте с подписью именно, как подтверждающему авторство.
(51) Ерунда.
   Torquader
 
53 - 18.02.13 - 01:19
(52) Если переживаешь за авторство, то проще документально оформить и заверить бумажную версию кода - да и даже в этом случае могут показать бумагу, в которой перепечатан твой код, но уже с ранней датой.
В случае с подписью спокойно может быть предъявлена другая подпись на тот же код.
   Balabass
 
54 - 18.02.13 - 02:35
Пиши код на заборе!
   HeroShima
 
55 - 18.02.13 - 09:29
(54) читай код с забора
   vde69
 
56 - 18.02.13 - 09:39
класической защитой раньше (давным давно) была передача исполнения в область стека, при этом стек готовился таким образом что-бы по нужному адресу распологался оператор перехода к реальным данным.

раньше это работало, по сколько отладчики сами использовали вызовы то стек модифицировался и при передачи на него управление прога валилась.

сейчас это вроде уже не работает :)
   HeroShima
 
57 - 18.02.13 - 09:47
У меня связка .NET + скрипты. Особо не поизголяешься.
   Alexey_Morov
 
58 - 18.02.13 - 09:51
В любом случае найдутся умельцы, которые взломать по-любому. Поэтому париться не стоит. Даже Windows и то взламывают за пару дней до релиза! Во.
   Krendel
 
59 - 18.02.13 - 09:51
ОТ реверс инжиниринга защищаются технологией, брендом, количеством внедрений. А само построение и логику работы ты все равно не защитишь. Ибо ее срисует консультант, или тестер.

Поэтому так
3. Потеря бабла и времени
   dmpl
 
60 - 18.02.13 - 10:06
(50) То, что абсолютной защиты не существует - известная истина. Но можно сделать стоимость обхода защиты выше стоимости легального приобретения программы - и этого будет достаточно.
   Alexey_Morov
 
61 - 18.02.13 - 12:32
(60)

Согласен. +1.
   HeroShima
 
62 - 03.03.13 - 11:43
   Gepard
 
63 - 03.03.13 - 11:50
(59) +1
   HeroShima
 
64 - 03.03.13 - 11:58
По (0): минимально обфусцировал ядро разработки. Имхо, будет достаточно.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует