2013-10-05 2 views
0

В моей книге говорится следующее:Как ISV скрыть свой объектный код, когда вы можете декомпилировать?

«Клиентам класса не нужен доступ к исходному коду класса, чтобы использовать класс. Однако клиентам необходимо иметь возможность ссылаться на объектный код класса (т. е. скомпилированная версия класса ), что побуждает независимых поставщиков программного обеспечения (ISV) предоставлять библиотеки классов для продажи или лицензии. Провайдеры независимых поставщиков предоставляют в своих продуктах только заголовки и объектные модули . - было бы так, если бы был предоставлен код источника . Сообщество пользователей C++ выигрывает благодаря наличию большего количества доступных библиотек классов ISV ».

Не можете ли вы просто декомпилировать файлы .o, чтобы получить их реализацию?

+0

Да, вы можете декомпилировать двоичные файлы, но вы теряете много оригинальной структуры программы. – aaronman

+0

@aaronman. Вы не теряете * столько *, когда знаете, что делаете, и используете современные инструменты, такие как IDA (выглядит он называется HexRays в настоящее время). Безопасность через неясность - это миф, мы все это знаем, но что грустно, так это то, что некоторые люди, похоже, все еще учат его в качестве жизнеспособного решения (если я должен верить вопросу ОП). – syam

+0

@syam Да, это описано в книге «C++ How To Program (8-е издание)», и мы используем ее для моего курса ООП. Вас учили иначе, когда вы впервые начали учиться или вы пришли, чтобы узнать другой путь? – RandomPleb

ответ

1

Вы можете, но в целом трудно понять декомпилированный код.

Однако существуют хорошие дизассемблеры - HexRays производит вполне понятный код, но это очень дорого.

Смежные вопросы