Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Вот пришлось теперь и с этим столкнутся.
И так имеем софт, сетевой , работает с базой данных. Имеет LPT ключ на сервере базы данных. Нужно. Защитить данное дело, чтобы не сперли. (А ведь будут гады пытатся спереть!)
1. Защита .exe
Попробовал DotFruscator , что идет с VS 2005, после обработки .exe просто не пашет Лажа. Что делать? Искать ли полную версию этого продукта?
2. Защита на уровне сети + ключ на сервере. Пока, что у меня такая идея.
На сервере висит сервис написанный не на C# .NET, тоесть этот .exe можно защитить и даже привязать к ключу. Сервис висит и через определенные промежутки времени проверяет наличие ключа. Если ключа нет, то сервис отключает у себя TCP Server , висящий на определенном порту, если ключ есть, то активирует сервер. Клиентские программы при старте коннектятся к сервису , точнее к TCP серверу и запрашивают разрешение на старт. Сервис опять же проверяет наличие ключа и отвечает в определенном виде Да/Нет клиентской программе.
Но, все это дело будет запросто убито при простейшем дизассемблировании клиента, написанного на C#! Что делать?
Хочется привязать клиентскую программу, к удаленной программе , безщ которой клиент работать не сможет. Может ремотинг тут поможет!?
Короче помимо данной конкретной задачи предлагаю всех, кого интересует проблема защиты информации на .NET подключится к обсуждению.
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
Ray Adams 1) пишем простую программу printf("hello world"); и пробуем ее заобсуфцировать. Не получается? Виноват либо свежий компилер (2005-го года), либо обфускатор.
Сюда же: обзор обфускаторов 2)
Цитата:
Сервис опять же проверяет наличие ключа и отвечает в определенном виде Да/Нет клиентской программе.
никаких да/нет. Это отламывается за пять минут. Как минимум одна привязка - наличие сервера в сети. Проверять энто условие раз в н минут. Разбросать по коду. Сбагрить обменом какими-нибудь хэшами, шифровать поток с сервера до клиента и т.д. В общем, надо посидеть и подумать над реализацией.
читать статьи с http://www.insidepro.com/rus/doc.shtml от КК.
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Root писал(а):
никаких да/нет
Я образно говорил.У меня в протоколе идет обмен данными блоками по 41 байт, не текстовыми конечно Обфускатор придется искать нормальный.
Кстати что-то никак не могу найти как в C# От VS2005 встраивать в код чистый код на Си. Вроде писали, что можно использовать unsafe код, но где об этом пишут не знаю. MSDN перерыл, но толком не нашел.
Member
Статус: Не в сети Регистрация: 24.09.2004 Откуда: Belarus, Mensk
Ray Adams писал(а):
Кстати что-то никак не могу найти как в C# От VS2005 встраивать в код чистый код на Си.
Никак А в принципе как ты себе этоп представляешь? С under CLR?
Ray Adams писал(а):
Вроде писали, что можно использовать unsafe код, но где об этом пишут не знаю.
Под unsafe понимают в общем случае операции с указателями. Ни С ни asm тут непричем. Добавлено спустя 3 минуты, 47 секунд To Ray Adams: Глянь xheo.com. У нас в конторе юзают, вроде устраивает. Это не обфускатор, но дизассемблировать просто так не получится (он хедер уродует).
_________________ ruSpiegel.net - русское зеркало дотнета
Ваши любимые статьи и блоги, посвященные Microsoft .NET Framework, теперь и на русском языке.
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Ray Adams привязкой к железу не пойдет? Добавлено спустя 2 минуты, 32 секунды Да, и при старте приложения, само приложение должно проверять хеш экзешника, т.е. совпадает ли он с оригинальным. Проверку эту запрятать поглубже в код или в дллку написаную на чем-то нативном.
Member
Статус: Не в сети Регистрация: 24.09.2004 Откуда: Belarus, Mensk
Daemon писал(а):
Проверку эту запрятать поглубже в код или в дллку написаную на чем-то нативном.
Этот подход содержит один неявный прокол. Дело в том, что обнаружить вызов нативной либы из управляемого кода дело шести секунд. Дальше порядок действий уже предсказуем.
_________________ ruSpiegel.net - русское зеркало дотнета
Ваши любимые статьи и блоги, посвященные Microsoft .NET Framework, теперь и на русском языке.
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
Daemon
Цитата:
дллку написаную на чем-то нативном
никаких ДЛЛ. Проверка должна быть встроенной. См. вышеприведенные статьи КК, где защита в стиле вызова функции IsValid из DLL отламывалась раньше, чем прога доходила до юзера ))))
Единственное, что можно было бы сделать - сделать DLL, напихать туда разных, используемых функций, а их уже разбавить кодом проверки. Причем не просто локализованном в одном месте, а по всей DLL - вот это будет забавно.
Ray Adams ИМХО: C# unsafe на 100% не бывает. Только С(++).
две статейки по теме:
http://msdn.microsoft.com/library/defau ... 182001.asp http://msdn.microsoft.com/library/defau ... 152001.asp
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
eisernWolf писал(а):
Глянь xheo.com. У нас в конторе юзают, вроде устраивает.
Сенкс. Гляну что за чудо.
eisernWolf писал(а):
тот подход содержит один неявный прокол. Дело в том, что обнаружить вызов нативной либы из управляемого кода дело шести секунд. Дальше порядок действий уже предсказуем
Вот вот. Все это дело ломается сразу.
Root писал(а):
Единственное, что можно было бы сделать - сделать DLL, напихать туда разных, используемых функций, а их уже разбавить кодом проверки. Причем не просто локализованном в одном месте, а по всей DLL - вот это будет забавно.
В принципе это один из вариантов, который подойдет. Тоесть надо привязать .exe к .dll так, чтобы он без него не мог нормально работать. Чтобы функции нужные юзал. Тоже самое я собираюсь сделать и на уровне MS SQL. Написать UDF, там чтобы было что-то реальное + проверка на ключ в LPT. Добавлено спустя 42 минуты, 12 секунд Только что скачал триальную Code Veil. Помучал онг мой .exe и после этого конечно .exe просто не запустился Блин, а он очень круто шифрует весь .exe
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Ray Adams
Цитата:
В принципе это один из вариантов, который подойдет. Тоесть надо привязать .exe к .dll так, чтобы он без него не мог нормально работать.
Вот это я и имел ввиду, а чтобы усложнить задачу - зделать все необходимые проверки - в драйвере и работу с сетевыми портами тоже перевести в драйвер, прийдется отказатся от всяческих нетовских горе-примочек типа TCPServer и т.д. И тогда ломать такую программу прийдется очень туго
Member
Статус: Не в сети Регистрация: 24.09.2004 Откуда: Belarus, Mensk
Ray Adams писал(а):
Помучал онг мой .exe и после этого конечно .exe просто не запустился
Шли гневные репорты. Скажи, чуть что... В общем, правьте баги и гоните лицензию
_________________ ruSpiegel.net - русское зеркало дотнета
Ваши любимые статьи и блоги, посвященные Microsoft .NET Framework, теперь и на русском языке.
Member
Статус: Не в сети Регистрация: 24.09.2004 Откуда: Belarus, Mensk
To Ray Adams: Привет! Как успехи? На чем остановил свой выбор?
_________________ ruSpiegel.net - русское зеркало дотнета
Ваши любимые статьи и блоги, посвященные Microsoft .NET Framework, теперь и на русском языке.
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Root писал(а):
У меня все-таки есть подозрение, что эта софтина не дружит с VS2005 из-за .NET 2.0....
Так ведь эта "скотина" входит в состав VS2005! Значит должна дружить, но не может. Да и все остальные круто порятят мой .exe!
eisernWolf писал(а):
Привет! Как успехи? На чем остановил свой выбор?
Пока глухо! Сейчас полностью готов сервис и он защищен, а вот клиентыские части практически нет. Перепробовал несколько видов фускаторов, все портят .exe
Member
Статус: Не в сети Регистрация: 24.09.2004 Откуда: Belarus, Mensk
To Ray Adams: Просто сейчас столкнулся с такой же проблемой. Все что я пробовал приводят мой софт в нерабочее состояние Вопрос, как ими народ вообще пользуется?
_________________ ruSpiegel.net - русское зеркало дотнета
Ваши любимые статьи и блоги, посвященные Microsoft .NET Framework, теперь и на русском языке.
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
eisernWolf Не знаю как ими пользуются, но видимо это дурацкие обфускаторы расчитаны на ооочень маленькие проги. Вообще от .NET одни млин проблемы. Ох поскорее бы Delphi с UNICODE вышел. Заброшу сразу C#
Member
Статус: Не в сети Регистрация: 24.09.2004 Откуда: Belarus, Mensk
>>Вообще от .NET одни млин проблемы
Когда что-то новое изучаешь, всегда одни проблемы Сам сейчас от WinFX чертыхаюсь...
>>Ох поскорее бы Delphi с UNICODE вышел.
Кто ж его выпустит?
_________________ ruSpiegel.net - русское зеркало дотнета
Ваши любимые статьи и блоги, посвященные Microsoft .NET Framework, теперь и на русском языке.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения