Методы защиты против декомпиляции - страница 2

 

Да уже все поостыли с декомпиляцией. Можно и не защищать. 

Видимо поняли декомпильщики, на халяве не выедешь, один фиг сольёшь депо.

Мозги иметь надо ещё.

 
STill_ace >>:

Так может быть вы будете так любезны и просветите меня?

Самая нормальная система защиты сейчас -- прием сигналов, генерируемых удаленно, или персонально настроенный, или с системой авторизации.

Дллка не вариант, т.к. после декомпила мы имеем точки доступа в длл и можем подсовывать любые данные, какие нам заблагорассудится.

 
TheXpert >>:

Самая нормальная система защиты сейчас -- прием сигналов, генерируемых удаленно, или персонально настроенный, или с системой авторизации.

Дллка не вариант, т.к. после декомпила мы имеем точки доступа в длл и можем подсовывать любые данные, какие нам заблагорассудится.

А в dll-ке привязка к хардваре... по фингерпринту (например, XOR серийника винчестера

с серийником материнской платы и т.п.). 

Или к номеру счета. Разумеется, не к тому, что при вызове приходит.

 
jartmailru >>:

А в dll-ке привязка к хардваре... по фингерпринту (например, XOR серийника винчестера

с серийником материнской платы и т.п.).

Не катит. Юзабельность теряется. А платить за каждую уникальную копию, имхо, мало кому захочется.

 
Если не ошибаюсь, в МТ5 был обещан сервис заказной компиляции с уникальными параметрами, не поддающимися серийным декомпиляторам.
 
Было бы круто
 

В МТ5 уже сейчас есть генерация ключа сертификата по юзверскому паролю. Или это тоже несложно ломается?

Да-да, об обещании помним. И о том, что это будет, вероятно, делаться за символическую плату.

 

Один из простых технических приемов

перенос большей части кода в DLL

---

один из идеальных случаев


//
//  МТ4 отправляет в DLL  массив данных
//   и служит только как исполнитель сигналов
//  в DLL  анализ и принятие решений и там же защита
//  MT4 выступает как надстройка
//
//  ( в этом случае код MQL4 можно и нужно отдавать в открытом виде )

 void start()
{

   ArrayCopyRates(array1,... ); // 

   SIGNAL = MYSECRETDLL( AccountName(), AccountNumber(), array1 );  // вся логика и индикаторы тут 

   if ( SIGNAL == OP_BUY )
   {
     // тут код работы с ордерами
   }
   if ( SIGNAL == OP_CLOSE )
   {

   }
}


 
YuraZ писал(а) >>

Один из простых технических приемов

перенос большей части кода в DLL

---

один из идеальных случаев

Вариант легко обходится

Вместо

AccountName(), AccountNumber()

При вызове dll прописываются статические данные на зарегистрированного пользователя с аккаунтом

dll принимает и выдает сигналы

а далее на каком счете хочешь на таком и торгуй...

 
olyakish >>:

Вариант легко обходится

....

а далее на каком счете хочешь на таком и торгуй...

Номер счета можно определить из самой DLL, с известным напрягом, но - можно ;)

Причина обращения: