Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Как защитить свою разработку от копирования

Тема в разделе "Общие вопросы по esp8266", создана пользователем qwertynoon, 1 фев 2016.

  1. =AK=

    =AK= Гуру

    Сообщения:
    1.231
    Симпатии:
    100
    Этим вы меня крайне обяжете. Мне надоело реагировать на ваши бредовые возражения. Особенно по причине вашей паскудной привычки подтирать свои посты, когда до вас доходит, какой бред вы несли.
     
    Последнее редактирование: 24 сен 2018
  2. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.279
    Симпатии:
    238
    Смысла нет в этом. Все выходы в интернет перехватываются на раз роутером и прописываются имена в файл hosts у него же. Всё. Теперь сервером времени будет роутер. Или любой комп в сети. И так надо проделать только при активации. Пират сделает легко 100500 рабочих копий чипа.
     
  3. =AK=

    =AK= Гуру

    Сообщения:
    1.231
    Симпатии:
    100
    Пират может сделать сколько угодно копий, но активировать устройство должен пользователь. Если пират будет продавать заранее активированную копию, это нетрудно обнаружить софтом, с которым устройство взаимодействует. Например, при активации в память прописывается не только время активации, но и имя пользователя и MAC адрес хоста.
     
  4. AllXXX

    AllXXX Новичок

    Сообщения:
    5
    Симпатии:
    0
    Здравствуйте.
    Тоже немного был огорчен что нет защит от копирования, особенно после прочтения данной ветки форума (ID и MAC одинаковые).
    Набросал небольшую программку
    Код (Text):
    1. #include <ESP8266WiFi.h>
    2. void setup() {
    3.   Serial.begin(115200);
    4. }
    5. void loop() {
    6.   Serial.println();
    7.  
    8.   Serial.print("Vcc: ");
    9.   Serial.println(ESP.getVcc());
    10.  
    11.   Serial.print("Free Heap: ");
    12.   Serial.println(ESP.getFreeHeap());
    13.  
    14.   Serial.print("Chip ID: ");
    15.   Serial.println(ESP.getChipId());
    16.  
    17.   Serial.print("Core Version: ");
    18.   Serial.println(ESP.getCoreVersion());
    19.  
    20.   Serial.print("Sdk Version: ");
    21.   Serial.println(ESP.getSdkVersion());
    22.  
    23.   Serial.print("BootVersion: ");
    24.   Serial.println(ESP.getBootVersion());
    25.  
    26.   Serial.print("Boot Mode: ");
    27.   Serial.println(ESP.getBootMode());
    28.  
    29.   Serial.print("Cpu FreqMHz: ");
    30.   Serial.println(ESP.getCpuFreqMHz());
    31.  
    32.   Serial.print("ESP8266 MAC: ");
    33.   Serial.println(WiFi.macAddress());
    34.  
    35.   Serial.print("Flash ID: ");
    36.   Serial.println(ESP.getFlashChipId());
    37.   Serial.print("Flash Real Size: ");
    38.   Serial.println(ESP.getFlashChipRealSize());
    39.   Serial.print("Flash Size: ");
    40.   Serial.println(ESP.getFlashChipSize());
    41.   Serial.print("Flash Speed: ");
    42.   Serial.println(ESP.getFlashChipSpeed());
    43.   Serial.print("Flash Mode: ");
    44.   Serial.println(ESP.getFlashChipMode());
    45.   delay(5000);
    46. }
    и злил на две ESP-01(куплены на али одним заказом)
    Результат: (раскрыть)

    Vcc: 65535
    Free Heap: 51432
    Chip ID: 6841590
    Core Version: 2_4_2
    Sdk Version: 2.2.1(cfd48f3)
    BootVersion: 5
    Boot Mode: 0
    Cpu FreqMHz: 80
    ESP8266 MAC: 84:F3:EB:68:64:F6
    Flash ID: 1335429
    Flash Real Size: 1048576
    Flash Size: 524288
    Flash Speed: 40000000
    Flash Mode: 0

    Vcc: 65535
    Free Heap: 50552
    Chip ID: 6840270
    Core Version: 2_4_2
    Sdk Version: 2.2.1(cfd48f3)
    BootVersion: 5
    Boot Mode: 0
    Cpu FreqMHz: 80
    ESP8266 MAC: 84:F3:EB:68:5F:CE
    Flash ID: 1335429
    Flash Real Size: 1048576
    Flash Size: 524288
    Flash Speed: 40000000
    Flash Mode: 0


    проверьте свои быть может не все так печально.
     
  5. AllXXX

    AllXXX Новичок

    Сообщения:
    5
    Симпатии:
    0
  6. AllXXX

    AllXXX Новичок

    Сообщения:
    5
    Симпатии:
    0
    Да в общем то вопрос не в возможности скопировать.
    А в привязке написанной программы к конкретному устройству без возможности клонировать.
    Допустим делаем запрос ID (ESP.getChipId()) и сравниваем с сохраненным в программе, если не совпадают крутимся в цикле или ребут.
    Конечно можно можно воспользоваться реверс инженерном, но думаю проще написать заново.
    При использовании Многофункциональное устройство с памятью для совместной работы с процессором можно в нее записывать свой ID и его использовать для создания keygen и разблокирования программы скажем СМС или письмом с клюем.
     
  7. Andrey

    Andrey Новичок

    Сообщения:
    38
    Симпатии:
    2
    Замерять время исполнения команды через таймер. Если оно больше чем надо значт его перехватили. Главное чтобы разрешение таймера хватило.
     
  8. Grem_line

    Grem_line Читатель

    Сообщения:
    57
    Симпатии:
    10
    Это все легко обходится. Конечно, если я буду читать МАС адрес в лоб, например так:
    int A = (*((volatile uint32_t *)0x3ff5a004));
    Вы легко найдете эту точку и подмените на нужное значение. Ну а если усложнить задачу:
    int A = (*((volatile uint32_t *)B));
    Адрес регистра с МАС-адресом помещен в переменную B. Что найдет ваш анализатор?
    Если нужный адрес я буду формировать в переменной B в несколько этапов, например, суммируя в ней числа? А если расставлю в программе еще десяток ложных изменений этой переменной?
    Чтобы понять, где и как я читаю MAC-адрес, вам придется полностью дизассемблировать весь проект и понять, как он работает. А это нереально.
    Так что на любую хитрую ж... найдется болт с левой резьбой :)
     
  9. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.162
    Симпатии:
    1.347
    Через Jtag имеется hw установка watchpoints :p
     
  10. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.162
    Симпатии:
    1.347
  11. nikolz

    nikolz Гуру

    Сообщения:
    5.350
    Симпатии:
    473
    предлагаю такой способ защиты
    берем ESP8285
    пишем в него прошивку
    припаиваем разъем для датчиков
    и заливаем эпоксидкой с черным красителем все,
    кроме антенны и разъема
    желающие могу попытаться вскрыть.
    Желаю удачного вскрытия.
     
  12. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.162
    Симпатии:
    1.347
    Скажите что она делает и через пару дней будет аналог.
     
  13. nikolz

    nikolz Гуру

    Сообщения:
    5.350
    Симпатии:
    473
    но вопрос стоял о защите от копирования, а не разработке аналога.
    Порою аналог получается много хуже оригинала, но вполне законно его создание.
     
  14. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.279
    Симпатии:
    238
    есть сомнение, что @Grem_line вас понял :)
     
  15. Grem_line

    Grem_line Читатель

    Сообщения:
    57
    Симпатии:
    10
    А Вы не сомневайтесь, конечно понял :)
    Только и от JTag существует защита. С его помощью вы найдете место обращения исполняющейся программы в тот момент, когда она будет это делать. Но она может проверять себя на взлом не только в начале работы, но и в процессе работы в определенных ситуациях, которых вы можете и не получить...
    Зачем все это нужно? Поясню: Предположим, вы разработали некий уникальный алгоритм, реализующий особую функцию на стандартной железке. После этого вы еще многие годы доводили его до совершенства, и вот наконец получили уникальный прибор, не имеющий аналогов. Естественно, этот прибор будет стоить на порядок дороже той железки, на которой он сделан. Надеюсь, не надо пояснять, почему?
    Естественно, у ваших конкурентов появляется желание производить этот прибор по себестоимости железа не вкладываясь в разработку и отладку софта. Вот для этого и разрабатываются всевозможные средства защиты.
     
  16. Grem_line

    Grem_line Читатель

    Сообщения:
    57
    Симпатии:
    10
    Да вы, батенька, просто гений, как я посмотрю :)
    Господь мир создавал целых шесть дней, а вы за пару дней управитесь?o_O
     
  17. nikolz

    nikolz Гуру

    Сообщения:
    5.350
    Симпатии:
    473
    Мечтать не вредно, но бесполезно.
    Приведите хотя бы один пример такого уникального алгоритма на который ушли годы и который умещается в таком железе .
     
  18. Grem_line

    Grem_line Читатель

    Сообщения:
    57
    Симпатии:
    10
    Да вы, батенька, просто гений, как я посмотрю :)
    Господь мир создавал целых шесть дней, а вы за пару дней управитесь?o_O
    Ну, в таком железе - не приведу (просто не знаю). А вот немного в другом железе - пожалуйста.
    Система видеосчитывания CYCLOPS.
     
  19. nikolz

    nikolz Гуру

    Сообщения:
    5.350
    Симпатии:
    473
    Если возьмете железо на за 20 копеек то в нем есть средства защиты.
    Вы же хотите взять железо за копейки и годами разрабатывать для него алгоритм.
    Вы батенька не просто мечтатель, а мечтатель - утопист -провокатор.
     
  20. Grem_line

    Grem_line Читатель

    Сообщения:
    57
    Симпатии:
    10
    Может быть, Вы поясните свою мысль?
    Может быть, я и мечтатель, но в первую очередь программист-практик. Я привел пример изделия, "железо" в котором стоит действительно копейки, а продается оно за тысячи $ по всему миру. В его разработке я сам принимал деятельное участие. И если бы не оригинальная защита, уж поверьте, оно было бы давным-давно скопировано. Жаль, что наши конкуренты не знали о вашем существовании, а то бы непременно обратились для разработки аналога :)
    Всего-то что требуется - по изображению с видеокамеры определить, на какой номер выпал шарик на рулетке в реальном времени! Дня два, наверное?
     

Поделиться этой страницей