Страницы: 1
RSS
Защитить кигу, чтобы нельзя было простым способом получить алгоритмы?
 
Добрый день. Столкнулся с интересной особенностью в Эксель, при установке защиты формул и ячеек на листе, что бы пользователь не видел ни формул ни алгоритмов расчета если данный файл открывать с помощью гугл таблиц (в частности с помощью мобильного приложения), то все ячейки становятся не защищенными и соответственно все формулы видны. Я знал, что защита в Эксель в основном предусмотрена для защиты структуры конкретного файла, а не данных в нем, но не настолько же все должно быть просто...
Вопрос, а можно ли как то поставить защиту в книгу так, что бы нельзя было таким простым способом получить алгоритмы? Один из вариантов думаю макрос, но может есть проще? Помогите пожалуйста советом.
 
DopplerEffect, это еще опенофисом также легко "взламывается". По сути если есть какие-то меганарботки, которые необходимо защитить, то макрос, самый секретный кусок алгоритма в отдельную библиотеку, библиотеку в яйцо, яйцо в утку, утку в зайца, ну и т.д.  :D
З.Ы. причем даже файл с запароленным проектом макроса также можно открыть в опенофисе пересохранить и открыть в Экселе уже без пароля.  ;)
Изменено: PooHkrd - 20.10.2020 12:08:06
Вот горшок пустой, он предмет простой...
 
Простых способов много, ваш не единственный. Ответ: нет, простых способов такой защиты нет.
«Бритва Оккама» или «Принцип Калашникова»?
 
PooHkrd, офигеть, про запароленный проект макроса и опенофис очень ценная информация. Знал, что защита не совершенна, но что бы так просто))
 
Установите длинный пароль на книгу формата XLSB и никому не говорите. Никто не взломает. Даже программами-взломщиками устанешь взламывать  
Изменено: New - 20.10.2020 12:30:46
 
New,Да вот этот формат пробовал. Он уже сторонними приложениями не открывается.
 
Цитата
New написал:
и никому не говорите
А зачем пользователю тогда эта книга?
 
New,но вот еще подумал, если сделать файл в формате xlsb, то ничего же не мешает его пересохранить пользователю в обычный формат и опять обойти защиту?
 
DopplerEffect, все таки эта тема тут много раз пережёвывалась. Из всех них лично я вывел такое:
Цитата
bedvit написал:
Ответ: нет, простых способов такой защиты нет.
Вот горшок пустой, он предмет простой...
 
PooHkrd, а какие есть сложные методы защиты?
 
DopplerEffect, это не ко мне. Вот bedvit, думаю может помочь. У меня масштаб познаний не тот.
Вот горшок пустой, он предмет простой...
 
Цитата
DopplerEffect написал:
а какие есть сложные методы защиты?
писать алгоритмы не в VBA и формулах листа.
Формулы с их расчетами выносить в функции XLL, если возможно. Если есть более сложные алгоритмы(работа с форматами ячеек и т.п.) - в отдельную библиотеку на языке С.
Но тут нюанс: это не будет уже работать в Google и он-лайн редакторах.
И всегда следует помнить: нет защиты такой, которую не могли бы взломать. Microsoft взламывают :) Так что всегда надо исходить из принципа: затраты на создание защиты не должны превышать 15% от всей стоимости проекта(выгоды от своих алгоритмов). Иначе защита начнет стоить дороже, чем выгода от неё.
Изменено: Дмитрий(The_Prist) Щербаков - 20.10.2020 13:11:27
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Да, Microsoft это фигня (на это время тратили часы), а вот Denuvo взломали даже... (Защита игр)
p.s. я предлагал запаролить и пароль никому не давать)
Изменено: New - 20.10.2020 13:55:58
 
Цитата
New написал:
не давать)
В ямку закопать и надпись написать...  :D
А юзеры пускай на счетах считают!
Вот горшок пустой, он предмет простой...
 
Таких тем уже миллион. Результат обычно бывает нулевой. Потому как для получения приемлемого решения нужно быть хорошо прокаченным в некоторых областях, о которых обычно ТС даже не подозревает. На этом все и затухает. Есть конечно единичные случае, особенно упорных.
Быстро по теме: Согласен с Дмитрием. Кстати, откуда 15%?
Цитата
PooHkrd написал:
Вот  bedvit , думаю может помочь. У меня масштаб познаний не тот.
Это смотря куда копать.
От себя могу добавить, что написать библиотеку в native code (машинном коде) можно не только на С/С++. Но данные язык(и) позволяют писать xll.
Думаю, в данном случае, трудоемкость данного решения в разы выше/дороже, того, что защищаем.
Обобщая: простого решения нет и все они стоят дорого, в сравнении с тем, что обычно хотят защитить ТС.
Где-то, на этом форуме, была интересная мысль, о том, что если уровень знаний не позволяет защитить свой код/алгоритм, может тогда она и не нужна?
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit: если уровень знаний не позволяет защитить свой алгоритм, может тогда и не нужно?
золотые слова  :D  :idea:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
bedvit написал:
Кстати, откуда 15%?
Это мой личный принцип(основан на когда-то ранее проведенном анализе своих проектов). Здесь может быть и 25 - каждый решает для себя. Для коммерческого продукта на постоянную продажу можно чуть завысить процент(если есть понимание, что хорошо продажи пойдут), т.к. разработать алгоритм защиты надо будет один раз и периодически дорабатывать, а прибыль будет более-менее постоянной и рассчитать её заранее практически нереально.
Все написанное мое личное мнение и никого не призываю делать так же - забыл это в предыдущем сообщении обозначить  :)  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий, спасибо за информацию. Всегда интересен личный опыт. Самому пока нечем поделится. Оно, как-то само защищается, без меня, т.е. пока уровня своей защиты (native code) вполне хватает, а следующий уровень еще не достигнут, см. ниже.
Цитата
bedvit написал:
если уровень знаний не позволяет защитить свой код/алгоритм, может тогда она и не нужна?
Поясню, что бы не сложилось ложное мнение о данном высказывании.
Исхожу из того, что на каждый уровень знаний/кода есть свой уровень защиты. Если спецом уровень не достигнут, возможно и код этот на следующем уровне будет уже не нужен (и хватит текущего уровня защиты), т.к. можно будет написать проще/эффективнее/на другом языке/создать свою библиотеку и т.д.
Лично мне, проще написать свой код в своей библиотеке (это будет еще и эффективнее), чем ломать чей-то код на VBA или накидать свой код из уже приличного числа алгоритмов накопившегося материала.
Вообще стараюсь чужой код не использовать (за исключением стандартных или проверенных библиотек, или помощи с форумов, механизм работы которой, понятен), во избежания багов, за которые потом буду отвечать уже я.
Думаю и с формулами можно провести отдаленное сходство.
На заре становления сам думал, как бы чего скрыть. Потом понял, кому нужен мой говнокод мое творчество?
Иногда и сейчас так думаю :)
Изменено: bedvit - 21.10.2020 12:02:15
«Бритва Оккама» или «Принцип Калашникова»?
 
Защита листов от кривых рук - да. Защита в коде (доп. проверки) от тех же кривых рук или от некорректнх данных - да. А защищать проект... Этап суперскрытия в проекте VBA своих "золотых творений" уже пройден :) - лишнее это. За редким (очень редким) исключением... уже года 3-4 не прятал за замками ни одной работы. Лень )
 
vikttur, лично я вообще наоборот пытаюсь при передаче готовой работы максимально четко объяснить заказчику что там растет откуда и куда. Чтобы меня потом при необходимости поддержки или внесения изменений не дергали лишний раз. Времени на них на всех не на пасёшься.
Вот горшок пустой, он предмет простой...
 
если вы получили заключение экспертизы о гениальности написанного вами кода - безусловно есть смысл его защитить
если такого заключения нет - не парьтесь никому ваш код не нужен и не интересен
те, кто могут написать сами - не станут в нем разбираться, те, кто не в состоянии его исправить - тем более в него не полезут
уже давно можно просто игнорировать темы с "защитой кода"
коллективное мнение сообщества говорит автору: "не парьтесь!"
в ответ автор темы настойчиво интересуется какими-то новыми и все более надежными способами защиты
и это постоянно затягивается на 30-50 сообщений с нулевым результатом на выходе

пароли в моих проектах появляются только по требованию заказчика и то с предупреждением об их эффективности близкой к нулю
Изменено: Ігор Гончаренко - 21.10.2020 14:17:18
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
с нулевым результатом на выходе
Не согласен. Зачастую это бывает очень весело.  ;)
Вот горшок пустой, он предмет простой...
Страницы: 1
Наверх