Перейти к содержанию
    

сокрытие части исходника

Подскажите пожалуйста "на пальцах", как сделать такую штуку:

есть программа, Кейл для М3, программа демонстрационная - показывает возможности железа.

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

Этот кусочек - несколько функций, в которых закопано собственно ноу-хау.

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

Поэтому этот кусочек ему надо как-то передать в пригодном для вставляния в его программу виде, но не в исходниках.

Как это попроще сделать? LIB ? OBJ? И собственно, вопрос не только "что" но и "как" - никогда такого не делал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Читайте создание библиотеки dll.

Сам делал в Builder C++. По книге Архангельского Программирование в С++. Builder 6.0.

Изменено пользователем KARLSON

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кейл для М3

Читайте создание библиотеки dll.

:)

 

Лучше все-таки либу сделать, чем obj.

С интерфейсом в .h-файле

 

Не знаю как в кейле, но наверняка как у всех. В разделе target или build выбрать library вместо execution

 

При этом список файлов для компиляции должен состоять только из ваших "секретных" файлов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Читайте создание библиотеки dll.

Сам делал в Builder C++. По книге Архангельского Программирование в С++. Builder 6.0.

 

DLL - Dynamic Linking Library, где я ее буду хранить и куда загружать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

M3 - я так понимаю это кортекс

Без разницы что отдавать *.lib или *.obj

И то и другое можно дизассемблировать при желании (разобрать код на молекулы).

И то и другое потребует *.h файл с описанием включенных функций.

Так что это мало отличаеется от передачи исходников.

Единственное , что исходники можно БЫСТРО поправить для получения своих версий прошивки.

С либой или объектником надо повозиться.

Вопрос в том, захочет ли заказчик возиться с этим.

 

Если есть необходимость сохранить ноу-хау в секрете то необходимо использовать аппаратную защиту в самом кристале.

При этом заказчику отдавать уже контроллеры с прошитым куском секретного кода и с соответствующими блокировками.

Ну как-то так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

DLL - Dynamic Linking Library, где я ее буду хранить и куда загружать?

хранить где угодно на жёстком диске, лучше вместе с исходниками.

Загружать в исходниках. Просто те функции ноу-хау будут в отдельном файле dll.

 

Про кейл ничего не знаю, может там и ничего этого и нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Про кейл ничего не знаю, может там и ничего этого и нет.

Вы не поняли, речь идет об исходниках прошивки МК

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как это попроще сделать? LIB ? OBJ?
Можно обработать часть кода обфускатором. Конечно, при достаточной мотивации обходится, но позволяет формально выполнить требование по передаче всего проекта в исходниках.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

речь идет об исходниках прошивки МК

Я бы всё ноу-хау написал на асме использовав только относительную адресацию.

И заказчику передал бы текстовый файл машинных кодов (.db xx...) и список вызываемых фукций (адресов входа) в виде смещения относительно начала.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хранить где угодно на жёстком диске, лучше вместе с исходниками.

Загружать в исходниках. Просто те функции ноу-хау будут в отдельном файле dll.

 

Каком нафиг "жестком диске"?! Все устройство представляет собой плату 3х2см, на которой стоит процессор и еще пара чипов, к которая питается от литиевой батареки и к которой подключено несоколько датчиков.

 

"Ноу-хау" закопано в математике обработке сигналов датчиков.

 

Про кейл ничего не знаю, может там и ничего этого и нет.

 

Естественно нет и быть не может, Кейл - это компилятор для микроконтроллеров, в конкретном случае - для процессора из семейства Cortex-M3 (конкретно -LPC1768).

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Каком нафиг "жестком диске"?! Все устройство представляет собой плату 3х2см, на которой стоит процессор и еще пара чипов, к которая питается от литиевой батареки и к которой подключено несоколько датчиков.

 

"Ноу-хау" закопано в математике обработке сигналов датчиков.

 

 

 

Естественно нет и быть не может, Кейл - это компилятор для микроконтроллеров, в конкретном случае - для процессора из семейства Cortex-M3 (конкретно -LPC1768).

 

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

 

вам уже ответили, передавайте заказчику функционал в виде либы

 

и да, в любом случае, если аппаратно не защитите, как бы вы не хранили функционал, любой маломальски путный программист при желании дизассемблирует ваше ноу-хау

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По поводу дизассемблирования: машинный код после оптимизации в ряде случаев нечитаем даже автором исходника. И это с учетом человеческих имен меток, переменных и функций.

Думаю, либа + заголовочный файл вполне защитит "исходный код" от восстановления.

Если матан в ноу-хау приличный, то это дополнительный барьер к взлому, а если "2 + 2", то защищать такое ноу-хау крутыми защитами не целесообразно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По поводу дизассемблирования: машинный код после оптимизации в ряде случаев нечитаем даже автором исходника. И это с учетом человеческих имен меток, переменных и функций.

оптимизация на понимание логики бинаря при дизасемблировании в целом не повлияет

Изменено пользователем am1808

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вам уже ответили, передавайте заказчику функционал в виде либы

 

Да я уже понял.

 

и да, в любом случае, если аппаратно не защитите, как бы вы не хранили функционал, любой маломальски путный программист при желании дизассемблирует ваше ноу-хау

 

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

Мы сделали демонстрацонный вариант, полностю рабочий, и собствнно торгуем не прибором а именно самим "ноу-хау" (IP - Intellectual Property) - конструкцией датчиков и мат. обработкой.

 

оптимизация на понимание логики бинаря при дизасемблировании в целом не повлияет

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...