наилучшая практика для предоставления C API, скрывающих внутренние функции [закрыто]
Я написал библиотеку C, которая состоит из нескольких файлов .h и .c. Я компилирую его как статическую библиотеку.
Я хотел бы предоставить пользователю только определенные функции, а остальные сделать его «неясным» настолько, насколько это возможно, чтобы сделать реверс-инжиниринг достаточно сложным.
В идеале моя библиотека должна состоять из:
1 - один файл .h с функциями, доступными только пользователю
2- myLibrary.a: настолько необратимый, насколько это возможно
Каковы лучшие практики для этого? Где мне искать, есть ли где-нибудь хороший учебник / книга?
Более конкретно:
для - 1
У меня уже есть все мои .h и .c работающие, и я хотел бы не менять их, перемещать объявления функций из .h в .c и переходить к циклическим ссылкам потенциальных pbs. Это возможно?
Например, это хорошая идея - создать новый файл .h, который я бы использовал только для распространения с моим .a? Это .h будет содержать копии функций, которые я хочу выставлять и пересылать объявления типов, которые я использую. Это хорошая идея?
для - 2
а) какие флаги gcc (или xcode) я должен знать (для удаления, отсутствия символов отладки и т. д.) б) хороший указатель, чтобы узнать, как сделать обфускацию кода?
Любая мысль поможет,
Спасибо баба