Зашифровать исходники
От: TailWind  
Дата: 27.05.10 11:58
Оценка:
Есть ли возможность зашифровать исходники программы?
Компилятор cl из 2008 студии

Задача из разветвлённой системы cpp файлов сделать один, чтобы внутри него ничего нельзя было прочитать. Чтобы этот файл можно было подключить через #include и использовать объявленные там классы.

Пользоваться будем одним компилятором
В принципе подошёл бы и .obj файл
Но надо как-то сделать .h файл
Как не понятно — проект огромный

Или есть какой-то другой путь?
Re: lib?
От: Erop Россия  
Дата: 27.05.10 12:03
Оценка: +1
Здравствуйте, TailWind, Вы писали:


TW>Или есть какой-то другой путь?


lib?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: Зашифровать исходники
От: Glоbus Украина  
Дата: 27.05.10 12:35
Оценка:
Здравствуйте, TailWind, Вы писали:

TW>Есть ли возможность зашифровать исходники программы?

TW>Компилятор cl из 2008 студии

TW>Задача из разветвлённой системы cpp файлов сделать один, чтобы внутри него ничего нельзя было прочитать. Чтобы этот файл можно было подключить через #include и использовать объявленные там классы.


TW>Пользоваться будем одним компилятором

TW>В принципе подошёл бы и .obj файл
TW>Но надо как-то сделать .h файл
TW>Как не понятно — проект огромный

TW>Или есть какой-то другой путь?


А в чем смысл? Если тебе уж так уж важно спрятать реализацию — сделай в виде lib-ы. Ну само собой h-ник нужно будет иметь
Удачи тебе, браток!
Re: Зашифровать исходники
От: uzhas Ниоткуда  
Дата: 27.05.10 12:56
Оценка:
Здравствуйте, TailWind, Вы писали:

TW>Или есть какой-то другой путь?

процесс превращения кода в неузнаваемый, но комплируемый код называют обфускацией.
далее вам поможет гугл
Re[2]: Зашифровать исходники
От: saf_e  
Дата: 27.05.10 15:35
Оценка: +1
Здравствуйте, uzhas, Вы писали:

U>Здравствуйте, TailWind, Вы писали:


TW>>Или есть какой-то другой путь?

U>процесс превращения кода в неузнаваемый, но комплируемый код называют обфускацией.
U>далее вам поможет гугл

Тут будет проблема использования Нужно обфусцировать только код и оставить оригинальные имена ф-ций/классов. В общем случае эффект будет слабоват, поэтому скорее всего такое никому на... не нужно

Варианты решения уже предложили выше
Re[2]: Зашифровать исходники
От: nen777w  
Дата: 27.05.10 20:45
Оценка: +1
TW>>Или есть какой-то другой путь?
G>А в чем смысл? Если тебе уж так уж важно спрятать реализацию — сделай в виде lib-ы. Ну само собой h-ник нужно будет иметь

Вставлю свои 5-ть копеек. Всё дело в том что современные средства дизассемблирования сейчас достигли очень хороших результатов.
Недавно вот помогал товарищу, колупаться в сторонней DLL, ну дык IDA + HexRays очень хорошо делают своё дело, т.е. в буквальном
смысле хорошо читаемый C-псевдокод получается.
Если человек "в теме" задачи которую решает алгоритм то восстановить этот алгоритм возможно.
Re[2]: lib?
От: Кодт Россия  
Дата: 27.05.10 21:39
Оценка:
Здравствуйте, Erop, Вы писали:

E>lib?


Скорее, dll.
Потому что в статической библиотеке есть все глобальные имена, в том числе те, которые нужны только для внутренних нужд.
Линкеру-то надо это всё состыковывать, и он не знает — что программист прячет, а что публикует.

А вот dll экспортирует только явно указанные символы.
Перекуём баги на фичи!
Re[3]: lib?
От: Erop Россия  
Дата: 27.05.10 22:29
Оценка:
Здравствуйте, Кодт, Вы писали:

К>А вот dll экспортирует только явно указанные символы.

1) Топикстартер хотел инклюдить одиин большой cpp
2) Можно завернуть потроха в пространство имён.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: lib?
От: Кодт Россия  
Дата: 27.05.10 22:56
Оценка:
Здравствуйте, Erop, Вы писали:

К>>А вот dll экспортирует только явно указанные символы.


E>1) Топикстартер хотел инклюдить одиин большой cpp

Тогда пусть всё локальное пообъявляет как static, и склеит в один большой сpp.

E>2) Можно завернуть потроха в пространство имён.

Тоже мне бином ньютона. Имя пространства будет подвёрстано к каждому глобальному имени. Линкеру-то всё равно надо свёрстывать кучу объектников статической либы между собой. А что видит линкер, то видит и декомпилятор.
Перекуём баги на фичи!
Re[2]: Зашифровать исходники
От: TailWind  
Дата: 27.05.10 23:15
Оценка: -1
Как раз проблема сделать h-ник
Там всё очень связано

Здравствуйте, Glоbus, Вы писали:

G>Здравствуйте, TailWind, Вы писали:


TW>>Есть ли возможность зашифровать исходники программы?

TW>>Компилятор cl из 2008 студии

TW>>Задача из разветвлённой системы cpp файлов сделать один, чтобы внутри него ничего нельзя было прочитать. Чтобы этот файл можно было подключить через #include и использовать объявленные там классы.


TW>>Пользоваться будем одним компилятором

TW>>В принципе подошёл бы и .obj файл
TW>>Но надо как-то сделать .h файл
TW>>Как не понятно — проект огромный

TW>>Или есть какой-то другой путь?


G>А в чем смысл? Если тебе уж так уж важно спрятать реализацию — сделай в виде lib-ы. Ну само собой h-ник нужно будет иметь
Re: Зашифровать исходники
От: TailWind  
Дата: 28.05.10 00:04
Оценка: :))) :)
pricompiled headers подходят
Re: Зашифровать исходники
От: coba  
Дата: 28.05.10 11:36
Оценка: :))) :))
Здравствуйте, TailWind, Вы писали:

TW>Или есть какой-то другой путь?


можешь предложить некоторым пользователям этого форума переписать твои исходники в своем неповторимом стиле с использованием boost::mpl )
http://agilemanifesto.org/iso/ru/
Re[2]: Зашифровать исходники
От: zaufi Земля  
Дата: 28.05.10 14:58
Оценка: +1
Здравствуйте, coba, Вы писали:

C>Здравствуйте, TailWind, Вы писали:


TW>>Или есть какой-то другой путь?


C>можешь предложить некоторым пользователям этого форума переписать твои исходники в своем неповторимом стиле с использованием boost::mpl )

если у вас с mpl какието трудности то это лично ваши трудности...
в С++ есть более мощные средства сделать код нечитаемым (была тут гдето ссылка на статейку (в юморе скорее всего) о том как писать код так чтоб ты был единственным человеком который может его сопровождать (с целью не быть уволеным никогда %))... вопщем гуглить в сторону антипаттернов
Re[2]: Зашифровать исходники
От: Erop Россия  
Дата: 28.05.10 16:25
Оценка: 6 (1)
Здравствуйте, coba, Вы писали:

C>можешь предложить некоторым пользователям этого форума переписать твои исходники в своем неповторимом стиле с использованием boost::mpl )

Ты не понял. Прогу в таком стиле фиг дезассемблируешь. Вернее дезассемблируешь, но исходные шаблонные навороты фиг получишь
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: Зашифровать исходники
От: kvasya  
Дата: 28.05.10 17:35
Оценка: :)
Здравствуйте, TailWind, Вы писали:

TW>Или есть какой-то другой путь?


Как оффтопик:
Спаггети сварганить и можно исходники отдавать спокойно .. мы уже месяц legacy спагетти жуем.. мозги кипят, мат-перемат... брр...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.