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

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

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

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

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

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

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

Согласен. +1.
62 HeroShima
 
03.03.13
11:43
http://dorex.pro/?projects&license - уя се цены)
63 Gepard
 
03.03.13
11:50
(59) +1
64 HeroShima
 
03.03.13
11:58
По (0): минимально обфусцировал ядро разработки. Имхо, будет достаточно.
2 + 2 = 3.9999999999999999999999999999999...