Comments 24
Мне понравилась идея с control flow, но похоже вам действительно нужно менять алгоритм почаще, а то строки следующего вида кажутся очевидными:
int num7 = -19581;
switch (0)
{
case 0:
do
{
...
if (num7 == -18995)
{ .... }
...
}
while (false);
...
Да, но это вырожденный случай, как правило в switch оказывается не одна ветка а множество. При этом значение счетчика устанавливается в предыдущем шаге для следующего, чтобы усложнить анализ. Кроме того, в некоторые моменты, выполнение уходит за пределы switch блока, и обрабатывается другими инструкциями перехода. Там так же применяется переход на базе счетчика, с разделенной на разные блоки инциализацией и инструкцией перехода.
Ссылка на faq с главной страницы ведет на 404.
Трудно добраться до заметки про прайсинг. Было бы удобнее (мне по крайней мере) добавить в главное меню ссылку на прайсинг. Пусть даже с той же текстовкой про «Pricing in progress...», как в нынешнем неочевидном месте.
Трудно добраться до заметки про прайсинг. Было бы удобнее (мне по крайней мере) добавить в главное меню ссылку на прайсинг. Пусть даже с той же текстовкой про «Pricing in progress...», как в нынешнем неочевидном месте.
Большое спасибо, действительно мы слишком увлеклись работой над программой, и совсем забыли про обновление сайта. Битую ссылку поправили, страницу с нормальным прайсом сделаем в самое ближайшее время.
У вас что, пароли в открытом виде хранятся?
А WinRT приложения (Metro) обфусцировать умеет сервис?
* И по моему на сайте явно не хватает странички с тарифами, как например тут:
habrahabr.ru/info/advertising/corporate/
т.к. сначала желательно знать на сколько лучше ваше предложение, а уже потом решать пользоваться или нет.
* И по моему на сайте явно не хватает странички с тарифами, как например тут:
habrahabr.ru/info/advertising/corporate/
т.к. сначала желательно знать на сколько лучше ваше предложение, а уже потом решать пользоваться или нет.
Надежная защита говорите… Выложите кто-нибудь семпл обфусцированного сервисом файла.
Для примера выкладываю обфусцированную OpenSource программу NClass
Обфускация проведена со всеми параметрами по умолчанию, без явных исключений, все алгоритмы защиты включены:
public.66bit.ru/files/2013.02.15/2abc87810a9a9963d7ee81e3434a36b5/NClass.rar (смотреть в ILSpy, Reflector и т.п.)
Оригинальный код: nclass.sourceforge.net/
Обфускация проведена со всеми параметрами по умолчанию, без явных исключений, все алгоритмы защиты включены:
public.66bit.ru/files/2013.02.15/2abc87810a9a9963d7ee81e3434a36b5/NClass.rar (смотреть в ILSpy, Reflector и т.п.)
Оригинальный код: nclass.sourceforge.net/
Защита более чем надёжна. 100%
Ох сколько уже попыток было…
Пара вопросов по how it works:
1. Обычно производители или владельцы кода испытывают диссонанс когда они защищают свой код, а тут раз… и надо его в третьи руки(а у многих(корпоративных) даже в соглашениях о неразглашении прописан прямой запрет передачи) передавать код третьей стороне. Как эта проблема решена в вашем SaaS решении?
2. Интересно конечно, как же происходит поиск референсных сборок, если они допустим не системные, а от стороннего вендора, или кастомные? Бывают проекты на 1-10 гигов (если учитывать все референсные сборки).
Вопросов конечно больше, но вот SaaS (или около-SaaS) решения в области защиты кода часто упираются в этот тупик.
Спасибо заранее.
Пара вопросов по how it works:
1. Обычно производители или владельцы кода испытывают диссонанс когда они защищают свой код, а тут раз… и надо его в третьи руки(а у многих(корпоративных) даже в соглашениях о неразглашении прописан прямой запрет передачи) передавать код третьей стороне. Как эта проблема решена в вашем SaaS решении?
2. Интересно конечно, как же происходит поиск референсных сборок, если они допустим не системные, а от стороннего вендора, или кастомные? Бывают проекты на 1-10 гигов (если учитывать все референсные сборки).
Вопросов конечно больше, но вот SaaS (или около-SaaS) решения в области защиты кода часто упираются в этот тупик.
Спасибо заранее.
Приложения на Windows Forms обфусцирует отлично, но вот на WPF под управлением .NET Framework 4.0 — главную форму приложения открывает, но стоит только нажать на ссылку, подгружающую фрейм — сразу же ПО вылетает без суда и следствия…
Все дело в том, что в WPF используется множество механизмов неявного связывания по имени. Наш обфускатор распознает и корректно обрабатывает многие из этих случаев, но во-первых, разумеется, мы могли что-то и упустить, а во-вторых местами неявное связывание слишком уж неявное чтобы его выявить и обработать :) Особенно в этом плане опасны случаи генерации WPF содержимого непосредственно из кода приложения.
Чтобы выявить проблемную область, мы рекомендуем перенаправить поток ошибок в текстовый файл (по типу: you.exe 2> log.err), а затем скормить его стек трейс декодеру. Он подскажет с чем связана ошибка, дальше как правило достаточно добавить атрибут ObfuscationAttribute.
Как альтернативный вариант: если Вы дадите нам пример незащищенной сборки в которой проявляется ошибка, мы сможем диагностировать проблему и помочь Вам исправить её.
Спасибо за отзыв!
Чтобы выявить проблемную область, мы рекомендуем перенаправить поток ошибок в текстовый файл (по типу: you.exe 2> log.err), а затем скормить его стек трейс декодеру. Он подскажет с чем связана ошибка, дальше как правило достаточно добавить атрибут ObfuscationAttribute.
Как альтернативный вариант: если Вы дадите нам пример незащищенной сборки в которой проявляется ошибка, мы сможем диагностировать проблему и помочь Вам исправить её.
Спасибо за отзыв!
Кстати да, не работает как раз то, что приложение генерирует автоматически. Если элемент физически (?) создан на форме и его стиль прописан через свойства объекта — он работает.
Если дополнительно для него прописан стиль, определяющий наведение мыши — работает.
Но если какой-либо компонент создается непосредственно из кода — как раз эти «узкие» места обфускатор и не обработал.
Прочтя множество информации из поисковых систем, данной проблемой страдают практически все обфускаторы. Точнее, я не нашел рабочего варианта для BAML.
Единственным подходящим решением было использование "ILProtector" для защиты WPF, НО из всего приложения на нем НЕ РАБОТАЛА всего одна форма — нажимая кнопку открывается окно, в окне пользователь авторизуется на веб-сайте (компонент WebBrowser), при переходе по ссылке ПО должно считывать адресную строку и проверять на наличие определенного параметра. Если параметр найден — передавать его на основную форму приложения и закрывать текущее окно.
Собственно, обработчик WebBrowser_LoadCompleted и не срабатывает после применения ПО «ILProtector».
Но хотелось бы не просто защищать, а именно обфусцировать проект.
У моего проекта сильно поджимали сроки, поэтому не было времени изучению данного аттрибута. Но для себя прочту по нему информацию, как и по другим областям.
Если у самого не получится решить проблему, тогда к Вам обращусь. А если решу сам — напишу как решил.
Если дополнительно для него прописан стиль, определяющий наведение мыши — работает.
Но если какой-либо компонент создается непосредственно из кода — как раз эти «узкие» места обфускатор и не обработал.
Прочтя множество информации из поисковых систем, данной проблемой страдают практически все обфускаторы. Точнее, я не нашел рабочего варианта для BAML.
Единственным подходящим решением было использование "ILProtector" для защиты WPF, НО из всего приложения на нем НЕ РАБОТАЛА всего одна форма — нажимая кнопку открывается окно, в окне пользователь авторизуется на веб-сайте (компонент WebBrowser), при переходе по ссылке ПО должно считывать адресную строку и проверять на наличие определенного параметра. Если параметр найден — передавать его на основную форму приложения и закрывать текущее окно.
Собственно, обработчик WebBrowser_LoadCompleted и не срабатывает после применения ПО «ILProtector».
Но хотелось бы не просто защищать, а именно обфусцировать проект.
Чтобы выявить проблемную область, мы рекомендуем перенаправить поток ошибок в текстовый файл (по типу: you.exe 2> log.err), а затем скормить его стек трейс декодеру. Он подскажет с чем связана ошибка, дальше как правило достаточно добавить атрибут ObfuscationAttribute.
У моего проекта сильно поджимали сроки, поэтому не было времени изучению данного аттрибута. Но для себя прочту по нему информацию, как и по другим областям.
Как альтернативный вариант: если Вы дадите нам пример незащищенной сборки в которой проявляется ошибка, мы сможем диагностировать проблему и помочь Вам исправить её.
Если у самого не получится решить проблему, тогда к Вам обращусь. А если решу сам — напишу как решил.
Но хотелось бы не просто защищать, а именно обфусцировать проект.
Здесь почти наверняка проблема именно в переименовании.
Если у самого не получится решить проблему, тогда к Вам обращусь. А если решу сам — напишу как решил.
Да, обязательно напишите что получится. И, в любом случае, мы будем рады помочь Вам советом.
Sign up to leave a comment.
AppFuscator — облачная защита .NET