Функция видимости GCC позволяет нам отключить эти API в нашей общей библиотеке, которую мы не хотим видеть клиентом. На самом деле мы не можем использовать ldopen для вызова этих скрытых функций, но мне интересно, достаточно ли это для защиты наших чувствительных API.Означает ли видимость символа защиту общей библиотеки от злоупотреблений/трещин?
Я просто хочу получить краткое объяснение надежности/безопасности скрытых API-интерфейсов в общей библиотеке, чтобы я мог сбалансировать усилия и риск. Я задал этот вопрос только потому, что не могу найти адекватного описания этой озабоченности в документах GCC.
Пожалуйста, повторно откройте этот вопрос.
У меня нет ни малейшего понятия. Тем не менее, я могу гарантировать, что если кто-то действительно захочет взломать ваше программное обеспечение, он в конце концов это сделает. Не тратьте время на механизмы безопасности - вы рискуете, что ваши законные клиенты пострадают из-за них (в то время как недобросовестные даже не видят их в трещины). – Spook
Что мне делать? Разберите его; отслеживать поток программы через основные функции; посмотреть, что они делают с точки зрения ввода-вывода и нелокальных манипуляций с данными; создать идею своей цели путем догадок и экспериментов. Без имен функций это было бы больше работы, но отнюдь не невозможно. Вам понадобится поддержка ОС (контроль доступа, ограниченный доступ root, безопасное хранилище ключей и т. Д.), Чтобы сделать вашу библиотеку как пользователь-враждебной, как вам кажется. –
Как не иметь определенных символов (или все символы, если на то пошло) «пользователь-враждебный»? Пользователи не должны и не должны обращать внимание на программу, действительно, это в большинстве случаев является нарушением EULA. Хотя я согласен с тем, что он не задержит преступника надолго, нет ничего плохого в том, чтобы сделать их жизнь немного сложнее. По крайней мере, они должны немного поработать над тем, что они крадут. – Damon