Есть ли возможность зашифровать исходники программы?
Компилятор cl из 2008 студии
Задача из разветвлённой системы cpp файлов сделать один, чтобы внутри него ничего нельзя было прочитать. Чтобы этот файл можно было подключить через #include и использовать объявленные там классы.
Пользоваться будем одним компилятором
В принципе подошёл бы и .obj файл
Но надо как-то сделать .h файл
Как не понятно — проект огромный
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, TailWind, Вы писали:
TW>Есть ли возможность зашифровать исходники программы? TW>Компилятор cl из 2008 студии
TW>Задача из разветвлённой системы cpp файлов сделать один, чтобы внутри него ничего нельзя было прочитать. Чтобы этот файл можно было подключить через #include и использовать объявленные там классы.
TW>Пользоваться будем одним компилятором TW>В принципе подошёл бы и .obj файл TW>Но надо как-то сделать .h файл TW>Как не понятно — проект огромный
TW>Или есть какой-то другой путь?
А в чем смысл? Если тебе уж так уж важно спрятать реализацию — сделай в виде lib-ы. Ну само собой h-ник нужно будет иметь
Здравствуйте, TailWind, Вы писали:
TW>Или есть какой-то другой путь?
процесс превращения кода в неузнаваемый, но комплируемый код называют обфускацией.
далее вам поможет гугл
Здравствуйте, uzhas, Вы писали:
U>Здравствуйте, TailWind, Вы писали:
TW>>Или есть какой-то другой путь? U>процесс превращения кода в неузнаваемый, но комплируемый код называют обфускацией. U>далее вам поможет гугл
Тут будет проблема использования Нужно обфусцировать только код и оставить оригинальные имена ф-ций/классов. В общем случае эффект будет слабоват, поэтому скорее всего такое никому на... не нужно
TW>>Или есть какой-то другой путь? G>А в чем смысл? Если тебе уж так уж важно спрятать реализацию — сделай в виде lib-ы. Ну само собой h-ник нужно будет иметь
Вставлю свои 5-ть копеек. Всё дело в том что современные средства дизассемблирования сейчас достигли очень хороших результатов.
Недавно вот помогал товарищу, колупаться в сторонней DLL, ну дык IDA + HexRays очень хорошо делают своё дело, т.е. в буквальном
смысле хорошо читаемый C-псевдокод получается.
Если человек "в теме" задачи которую решает алгоритм то восстановить этот алгоритм возможно.
Скорее, dll.
Потому что в статической библиотеке есть все глобальные имена, в том числе те, которые нужны только для внутренних нужд.
Линкеру-то надо это всё состыковывать, и он не знает — что программист прячет, а что публикует.
А вот dll экспортирует только явно указанные символы.
Здравствуйте, Кодт, Вы писали:
К>А вот dll экспортирует только явно указанные символы.
1) Топикстартер хотел инклюдить одиин большой cpp
2) Можно завернуть потроха в пространство имён.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
К>>А вот dll экспортирует только явно указанные символы.
E>1) Топикстартер хотел инклюдить одиин большой cpp
Тогда пусть всё локальное пообъявляет как static, и склеит в один большой сpp.
E>2) Можно завернуть потроха в пространство имён.
Тоже мне бином ньютона. Имя пространства будет подвёрстано к каждому глобальному имени. Линкеру-то всё равно надо свёрстывать кучу объектников статической либы между собой. А что видит линкер, то видит и декомпилятор.
Как раз проблема сделать h-ник
Там всё очень связано
Здравствуйте, Glоbus, Вы писали:
G>Здравствуйте, TailWind, Вы писали:
TW>>Есть ли возможность зашифровать исходники программы? TW>>Компилятор cl из 2008 студии
TW>>Задача из разветвлённой системы cpp файлов сделать один, чтобы внутри него ничего нельзя было прочитать. Чтобы этот файл можно было подключить через #include и использовать объявленные там классы.
TW>>Пользоваться будем одним компилятором TW>>В принципе подошёл бы и .obj файл TW>>Но надо как-то сделать .h файл TW>>Как не понятно — проект огромный
TW>>Или есть какой-то другой путь?
G>А в чем смысл? Если тебе уж так уж важно спрятать реализацию — сделай в виде lib-ы. Ну само собой h-ник нужно будет иметь
Здравствуйте, coba, Вы писали:
C>Здравствуйте, TailWind, Вы писали:
TW>>Или есть какой-то другой путь?
C>можешь предложить некоторым пользователям этого форума переписать твои исходники в своем неповторимом стиле с использованием boost::mpl )
если у вас с mpl какието трудности то это лично ваши трудности...
в С++ есть более мощные средства сделать код нечитаемым (была тут гдето ссылка на статейку (в юморе скорее всего) о том как писать код так чтоб ты был единственным человеком который может его сопровождать (с целью не быть уволеным никогда %))... вопщем гуглить в сторону антипаттернов
Здравствуйте, coba, Вы писали:
C>можешь предложить некоторым пользователям этого форума переписать твои исходники в своем неповторимом стиле с использованием boost::mpl )
Ты не понял. Прогу в таком стиле фиг дезассемблируешь. Вернее дезассемблируешь, но исходные шаблонные навороты фиг получишь
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском