реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> сокрытие части исходника
Allregia
сообщение Jan 8 2012, 22:00
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Подскажите пожалуйста "на пальцах", как сделать такую штуку:
есть программа, Кейл для М3, программа демонстрационная - показывает возможности железа.
По условиям договора с заказчиком, он получает схему и исходник программы, за исключением одного куска.
Этот кусочек - несколько функций, в которых закопано собственно ноу-хау.
В дальнейшем заказчик будет сам разрабатывать софт, и должен использовать эти функции.
Поэтому этот кусочек ему надо как-то передать в пригодном для вставляния в его программу виде, но не в исходниках.
Как это попроще сделать? LIB ? OBJ? И собственно, вопрос не только "что" но и "как" - никогда такого не делал.
Go to the top of the page
 
+Quote Post
KARLSON
сообщение Jan 10 2012, 05:03
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



Читайте создание библиотеки dll.
Сам делал в Builder C++. По книге Архангельского Программирование в С++. Builder 6.0.

Сообщение отредактировал KARLSON - Jan 10 2012, 05:07


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jan 10 2012, 06:12
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Allregia @ Jan 9 2012, 02:00) *
Кейл для М3

Цитата(KARLSON @ Jan 10 2012, 09:03) *
Читайте создание библиотеки dll.

sm.gif

Лучше все-таки либу сделать, чем obj.
С интерфейсом в .h-файле

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

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


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Allregia
сообщение Jan 10 2012, 06:17
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(KARLSON @ Jan 10 2012, 07:03) *
Читайте создание библиотеки dll.
Сам делал в Builder C++. По книге Архангельского Программирование в С++. Builder 6.0.


DLL - Dynamic Linking Library, где я ее буду хранить и куда загружать?
Go to the top of the page
 
+Quote Post
редактор
сообщение Jan 10 2012, 07:03
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



M3 - я так понимаю это кортекс
Без разницы что отдавать *.lib или *.obj
И то и другое можно дизассемблировать при желании (разобрать код на молекулы).
И то и другое потребует *.h файл с описанием включенных функций.
Так что это мало отличаеется от передачи исходников.
Единственное , что исходники можно БЫСТРО поправить для получения своих версий прошивки.
С либой или объектником надо повозиться.
Вопрос в том, захочет ли заказчик возиться с этим.

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


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post
KARLSON
сообщение Jan 10 2012, 09:25
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



Цитата(Allregia @ Jan 10 2012, 09:17) *
DLL - Dynamic Linking Library, где я ее буду хранить и куда загружать?

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

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


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jan 10 2012, 09:33
Сообщение #7


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(KARLSON @ Jan 10 2012, 13:25) *
Про кейл ничего не знаю, может там и ничего этого и нет.

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


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Idle
сообщение Jan 10 2012, 10:00
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



пдц, google 'keil static library' http://www.keil.com/forum/19277/
Go to the top of the page
 
+Quote Post
vvs157
сообщение Jan 10 2012, 13:06
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(Allregia @ Jan 9 2012, 02:00) *
Как это попроще сделать? LIB ? OBJ?
Можно обработать часть кода обфускатором. Конечно, при достаточной мотивации обходится, но позволяет формально выполнить требование по передаче всего проекта в исходниках.
Go to the top of the page
 
+Quote Post
zombi
сообщение Jan 10 2012, 16:58
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(MrYuran @ Jan 10 2012, 12:33) *
речь идет об исходниках прошивки МК

Я бы всё ноу-хау написал на асме использовав только относительную адресацию.
И заказчику передал бы текстовый файл машинных кодов (.db xx...) и список вызываемых фукций (адресов входа) в виде смещения относительно начала.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Jan 10 2012, 20:38
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(KARLSON @ Jan 10 2012, 11:25) *
хранить где угодно на жёстком диске, лучше вместе с исходниками.
Загружать в исходниках. Просто те функции ноу-хау будут в отдельном файле dll.


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

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

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


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

А длл на дельфи/билдере я и сам умею делать. Здесь как бы немножко не тот форум, на котором программирование под писюки рассматривается, разве что как сильно вспомогательная вещь.
Go to the top of the page
 
+Quote Post
am1808
сообщение Jan 11 2012, 04:14
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(Allregia @ Jan 11 2012, 00:38) *
Каком нафиг "жестком диске"?! Все устройство представляет собой плату 3х2см, на которой стоит процессор и еще пара чипов, к которая питается от литиевой батареки и к которой подключено несоколько датчиков.

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



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

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


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

и да, в любом случае, если аппаратно не защитите, как бы вы не хранили функционал, любой маломальски путный программист при желании дизассемблирует ваше ноу-хау
Go to the top of the page
 
+Quote Post
adnega
сообщение Jan 11 2012, 04:38
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



По поводу дизассемблирования: машинный код после оптимизации в ряде случаев нечитаем даже автором исходника. И это с учетом человеческих имен меток, переменных и функций.
Думаю, либа + заголовочный файл вполне защитит "исходный код" от восстановления.
Если матан в ноу-хау приличный, то это дополнительный барьер к взлому, а если "2 + 2", то защищать такое ноу-хау крутыми защитами не целесообразно.
Go to the top of the page
 
+Quote Post
am1808
сообщение Jan 11 2012, 04:47
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



Цитата(adnega @ Jan 11 2012, 08:38) *
По поводу дизассемблирования: машинный код после оптимизации в ряде случаев нечитаем даже автором исходника. И это с учетом человеческих имен меток, переменных и функций.

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

Сообщение отредактировал am1808 - Jan 11 2012, 04:48
Go to the top of the page
 
+Quote Post
Allregia
сообщение Jan 11 2012, 06:33
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



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


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

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


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

Цитата(am1808 @ Jan 11 2012, 06:47) *
оптимизация на понимание логики бинаря при дизасемблировании в целом не повлияет


Там не логика, там сплошная математика - цифровые фильтры, корреляции, статистические параметры, причем часть в целых и часть в плавучке - сильно не завидую тому, кто это будет дизассемблировать.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01489 секунд с 7
ELECTRONIX ©2004-2016