Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 24 • Страница 1 из 21  2  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

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
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Ray Adams
Цитата:
Вроде писали, что можно использовать unsafe код, но где об этом пишут не знаю. MSDN перерыл, но толком не нашел.

Код:
using System;
using System.Collections.Generic;
using System.Text;

namespace SampleC
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 0xFABC;
            unsafe
            {
                byte* pa = (byte *)(&a);
                Console.WriteLine("{0:X}", pa[0]);
            }
        }
    }
}

А еще unsafe class посмотри.

_________________
Ку ку


 

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
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
Цитата:
На чем остановил свой выбор?

интересно - все-таки дофрускатор был побежден али нет?
У меня все-таки есть подозрение, что эта софтина не дружит с VS2005 из-за .NET 2.0....

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

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, теперь и на русском языке.


 

Member
Статус: Не в сети
Регистрация: 12.08.2005
Ray Adams писал(а):
Вообще от .NET одни млин проблемы

Юзай чистый C ))))


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Trener На кой он мне такой хороший!? Да и еще с базами :) Я и на Delphi прекрасно могу писать, только вот задача была такая , что только C# и подошел :(


 

Member
Статус: Не в сети
Регистрация: 12.08.2005
Ray Adams писал(а):
На кой он мне такой хороший!? Да и еще с базами

Так можно через ODBC работать) Хотя, конечно на более высоком уровне писать легче. Зато на низком обычно больше контроля.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 24 • Страница 1 из 21  2  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan