Круиз-контроль и обфускация, Каким образом?
-
01-07-2019 - |
Вопрос
это мой первый вопрос к stackoverflow, так что вот он...
Я использую круиз-контроль для своей схемы непрерывной интеграции, я хочу использовать запутывание, чтобы добавить еще один уровень защиты к моим сборкам.Дело в том, что я не знаю, как это сделать, так как я не смог найти статей, описывающих это.Также принимаются предложения, включающие другие инструменты CI, такие как NAnt.
Коммерческие инструменты также являются одним из вариантов, поэтому не стесняйтесь включать их в свой ответ.Приложения, которые я создаю и которые хочу запутать, в основном написаны на Compact Framework 2.0, Dot Net 2.0-3.5.
На данный момент cruise control проверяет наличие изменений в репозитории, затем на основе сценария для конкретного решения загружает и создает проект с помощью devenv, после запуска проекта установки копирует файл установки в другую папку и это более или менее все.Поэтому мне нужно где-то запутать этот процесс..
Решение
@konstantinos.konstantinidis.myopenid.com:похоже, ваша проблема связана с проектом установки, а не с сервером непрерывной интеграции.
У вас есть проект установки, собирающий основные выходные данные для проекта.
Измените его, чтобы использовать ссылки на файлы для выходных данных.Это немного больше настроек в проекте установки, но я думаю, что вы все равно можете добиться той же функциональности.
Таким образом, вы можете извлекать свои запутанные сборки из любого промежуточного каталога, в который ваш инструмент запутывания сбрасывает их.
Другие советы
Приятно слышать, что кто-то использует CruiseControl.NET.Это хороший инструмент.Вы можете использовать инструмент командной строки для обфускации как RemoteSoft .NET Obfuscator и интегрировать вызов инструмента в сценарий сборки.Смотрите пример выполнения файла ниже из CruiseControl.NET wiki.
http://www.remotesoft.com/salamander/obfuscator.html
<exec>
<executable>make</executable>
<baseDirectory>D:\dev\MyProject</baseDirectory>
<buildArgs>all</buildArgs>
<buildTimeoutSeconds>10</buildTimeoutSeconds>
<successExitCodes>0,1,3,5</successExitCodes>
<environment>
<variable>
<name>MyVar1</name>
<value>Var1Value</value>
</variable>
<variable name="MyVar2" value="Var2Value"/>
...
</environment>
</exec>