Плюсы: Обфускаторы делают дизассемблированный код тяжелым для изучения, превращая IsLicensed() в x(). Некоторые обфускаторы используют баги ILDASM для защиты от дизассемблинга в нем (Salamander). Некоторые обфускаторы даже конвертируют код в native код, делая бесполезным дизассемблинг (Salamander). Некоторые обфускаторы шифруют и пакуют ваш exe и иже с ним referenced сборки в один exe-файл, так что размер программы может уменьшиться 2-4 раза и не поддается дизассемблингу (Thinstall).
Минусы Продукт остается дизассемблируемым. Собрать сборку после дизассемблинга не составит труда. IL код – доступный для чтения и понимания по сравнению c ассемблерным. «Защита» обфускаторов, которые используют баги ILDASM будут бессильны перед дизассемблерами других разработчиков.
Защита обфускаторов, которые используют шифрование символьной части метаданных, строковых и бинарных ресурсов мешает пользователям продукта, отлаживать и тестировать свои продукты. Кроме этого – это риск, так как некоторые символьные данные используются в Reflection – для получения типа (GetType(“MyType”)), или загрузки ресурса (GetManifestResourceStream(“MyResource”)).
Зачастую обфускаторы имеют кучу настроек, непонятных или сложных для понимания обычному юзеру. Неинформированность юзера может привести к тому что его обфусцированная программа будет работать не так как хотелось и иногда приводить к крэшу, да еще и не отлавливаемому отладчиком. Цена – порядок цен – от 40 до 1500 долларов за программу. И цена может ничего не говорить о качестве обфускации. Может так статься что 40-долларовый обфускатор защитит ваш куда лучше чем более дорогой.
Насчет 4-его плюса. Защищенная таким образом прога «жестко привязана» к используемому .Net Framework, и сервис-пак установленный вами, «порушит» корректность работы защищенной программы. Да и такая защита возможна только для Intel-процессоров.
Насчет 5-го плюса. Да действительно защита сильна и лишена недостатков 4-го плюса. Продукт загружает из ресурса нужные сборки в память и managed exe файл и передает ему управление, занимаясь только разруливанием проблем со сборками, типами, ресурсами (через AssemblyResolve, TypeResolve, ResourceResolve). Но – не все сборки нужны сразу, загрузка их требует дешифровки и распаковки – дополнительного времени и нагрузки на процессор. Не все производят exe-файлы. А Thinstall будет работать только с exe, так как dll-сборки уже не имеют как раньше процессорного DllMain, из которой это было возможно производить. Но – взломать ее проблем также не составляет труда. Есть такая программа ProcDump – она может продампить запущенный процесс и соответственно легко получить расшифрованными и распакованными защищенный exe и referenced сборки. Thinstall будет иметь проблемы с загрузкой в память managed C++ сборки.
Некоторые обфускаторы создают замкнутую систему обфусцированных сборок, где необфусцированными остаются сборки сторонних производителей и MS-вские. Но и здесь все далеко от совершенства – обфускатор не знает как используются ресурсы сборки, поэтому может привести вашу программу к нерабочему состоянию. Хотя в данном случае качество обфускации становится идеальным – ни к чему не подкопаться. Опять же – это возможно только для exe-программ. Если вам необходимо защищать библиотеку классов, то вам необходимо будет оставлять необфусцированными публичные члены классов и публичные классы – отсюда крэкер может начать свою работу. Обфускаторы и их возможности:
RemoteSoft Slamander Obfuscator - Имеет навороченный навигатор, позволяющий лазать не только по метаданным, но и по структуре PE-файла, анализировать ресурсы, бинарные данные. Богатые возможности для анализа метаданных. Нет анализа callgraph методов. Есть свой дизассемблер, но дизассемблирует сразу весь класс, не меньше - приходится ждать. Может использоваться как редактор сорцов. Неплохой символьный обфускатор, декларируемая защита от дизассемблера не работает - у меня спокойно открывался метод, обфусцированный им. Не работает с проектами и с наборами сборок. Навигатор (explorer) имеет плагинную архитектуру что позволяет подключать модули от Salamander к нему. Применяют overload induction - т.е максимально короткие и часто применяемы названия для членов сборки. Также предлагают Protector - который превращает ваши методы в native embedded code - не дизассемблируются, но зависимы от текущей версии .Net Framework. Попробовать не дают :)) Декларируемая оптимизация сборок не была произведена (работает ли на самом деле?). Написан в native code
Preemptive Solutions Dotfuscator - Community Edition этого обфускатора распространяется с VS .Net 2003. Бедный интерфейс (Дельфи?). обфусцирует как и все, трудно настраиваемый, трудно понимаемый, но интегрирован в VS как addin. Не стал устанавливать, от греха подальше. Работает с телами методов запутывая control flow, т.е как раз всяческие for и while. Почему именно dotfuscator распространяется с VS - вопрос не ко мне. Работает с проектами через интеграцию со студией. Возможно другие версии его покруче - но Community Edition мне не понравилась.
9Rays.Net ILObfuscator - новая версия 2.5 разительно отличается от предыдущей 2.0. Очень много качественных изменений. Во-первых появился GUI. Что многим облегчает задачу работы со сборками. ILOGUI - это и навигатор по сборкам, дизассемблер, система работы с проектом обфускации, в ней можно просматривать и экстрагировать ресурсы, содержащиеся в сборке. Чем отличается от других? Managed code - С# и managed С++, работа с набором сборок, а значит и кросс-обфускация, позволяющая достичь максимального уровня обфускации, неплохой и понятный GUI c VS IDE-like MDI интерфейсом, с ILO поставляется SDK, позволяющим вам создать свою собственную систему обфускации, удобная работа со свойствами проекта, есть коллекции замен и исключений, гибкие возможности по запутыванию - скажем фича по запутыванию namespaces (можно выбрать один из варантов), также предлагаются на выбор варианты наименования обфусцированных классов. Есть функция оптимизации сборки после обфускации, правда только для managed сборок, без embedded native code. ILO самообфусцирован - вы можете убедиться в качестве его обфускации. Из заявленных на следующую версию фичей - поддержка solutions - т.е наборов проектов, генерация карт обфускации и импорт их при обфускации проектов, эти фичи уже позволят фиксировать результат обфускации и использовать его в следующей обфускации проекта и уменьшать время тестирования сборки после обфускации и максимально обфусцировать проект. Кроме этого обещано функцию оптимизации дополнить фичей удаления неиспользуемых членов сборок и вставить функцию анализа проекта для выявления оных, дополнить навигацию закладками и history.
Lesser Software LSW IL-Obfuscator - простая и быстрая программа, которая для многих подойдет. Немного настроек, все понятно и просто. Берет как Il-файлы, так и скомпилированные сборки. Правда не все - иногда выдает какую-то странную ошибку и скопилированную сборку не подымает. Такое впечатление что он ее сначал дизассемблирует. Не работает с наборами сборок, но поддерживает замены и исключения из обфускации. Native code. Но за $40.
Thinstall (теперь уже тоже от Lesser Software) - эта штуковина как раз работает только с exe -файлами. Создает самоустанавливающийся exe-файл, со всеми файлами на борту, закрывая от дизассемблирования сборки. Такой файл не без усилий, но вскрывается, не стоит обманываться. Как признаются сами производители - лучше всего использовать вместе с обфускатором.
Wise Owl Demeanor - не юзал, не дают. Много чего может - и удаляет ненужную информацию из метаданных, шифрует строковые переменные, работает с мультимодульными сборками (редко используемая вещь) и интегрируется с VS.Net. Но стоит немеряно $1250. Оценить сей шедевр не дают.
Так с чего же начать?
С проектирования системы (программы или библиотеки классов), которую вы собираетесь написать. Да, если вы хотите написать максимально защищенный код, вам придется учитывать ряд факторов при проектировании вашего продукта.
Не стоит путать проектирование с программированием. Какие факторы необходимо учитывать. Обфускатор не Господь Бог, всего не может, поэтому стоит пойти его возможностям навстречу. Типичной обфускацией является символьная (учитывая все плюсы и минусы упомянутые выше)– когда обфускатор только и всего изменяет названия типов, полей, методов, свойств и событий на бессмысленные. Скажем тип Obfuscator переименовывается в 0, а его метод Run() – тоже в 0, а параметры методов просто перенумеруются – 0,1,2,3,4. После подобной обфускации теряется логическая связь между классами, дизассемблированной код – трудночитаем.
Если вы собираетесь обфусцировать замкнутую систему – тогда вам подойдет полная обфускация, когда изменяются все названия членов сборки, и в этом случае концы найти на порядок гораздо труднее чем в случае, когда кое-какие методы, типы у вас остаются не обфусцированными (такое возможно при обфускации exe-файлов не использующих Reflection).
К слову сказать кроме символьной обфускации есть еще обфускация алгоритмов методов – когда простейшее умножение I*3 может быть представлено более сложным алгоритмом, например – I*((1+1/2)*2) или запутаны while и for. Но мы будем говорить только о символьной обфускации, применительно к обфускации .Net сборок.
В дальнейшем обфускацию я буду обзывать О!, для краткости. Редко можно встретить полностью замкнутые, автономные системы, поэтому типичным случаем будет являться частичная О!. Хотя идеальной задачей для более качественной О! будет являться как раз написание максимальной замкнутой системы сборок. Вот вам и первый фактор.
Узнай историю своего рода прямо сейчас!<a href=http://eqvkabke.co.cc/familiya-pecherskaya-chechel.html>!</a>!
2010-10-31 10:27:55
drrVacansS
В наше время, очень тяжело найти хорошую работу, с достойной заработной платой. Не отчаивайтесь, посмотрите в наших базах. Мы собираем только лучшие вакансии, на рынке труда России.
Труд (работа) устраняет скуку, порок и нищету. Нет ничего более невыносимого, чем безделье. Время быстро утекает сквозь пальцы опущенных рук. Работать нужно с умом, а не до ночи. Каждое дело требует завершения, а любое безделье не должно быть начато. Работа - лучший отдых от безделья. От всех неприятностей, от всех бед можно найти только одно избавление - в работе. Нужда в деньгах работать заставляет.
Новые браузерные онлайн игры. В эту разновидность покера можно сыграть во всех известных покеррумах, например, в дружелюбном к новичку руме покер старс. Дениска его за пятьсот долларов купил. Разработайте собственную стратегию и не дайте никому уйти.
2010-10-14 21:05:29
KipelilmNes
Судьба забрала у колтона уайта все, чем он дорожил. И все попытки связаться с банком проходят так что они якобы разочаровались во мне как в клиенте их банка. Арканоиды - волшебный шар, робошар, аквабол, гиперболоид, тайна ацтеков, страйкбол, техношар, крэкаут, космоноид, арканоид, необол. Стариков них ответа птица тройка кроме слова номинациях щит меч.
2010-10-14 17:18:25
KipelilmNes
В онлайн игре есть специальный магазин, в котором продаются различные полезные предметы, помогающие развиваться и успешно состязаться с опытными игроками. Так же добавить реквием - бета тест себе в закладки, для этого нажмите. Мой свет погас, когда последний след остыл кто бы мог подумать, что в обычный осенний вечер, ничем не. Далее я напечатал на принтере несколько объявлений - на заднее стекло своей машины ищу самую лучшую жену на двух листах а, на боковые стекла просто ищу жену на одном листе.
2010-10-04 21:13:33
drVacansS
Нужно любить то, что делаешь, и тогда труд - даже самый грубый - возвышается до творчества. И топорная работа может быть ювелирной, если плотник - мастер своего дела. Труд не есть добродетель, но необходимое условие добродетельной жизни. Всякий вид работы приятнее, чем покой. Нет никакого позора в работе: позорно безделье. Безделье гарантирует бедность. Ничто так не тушит безделье, как зажжённый энтузиазм. Чтобы жить - надо уметь что-нибудь делать.
<a href=http://vakansii-russ.ru/wordpress-198.html>Работа север вахта</a> <a href=http://vakansiy-rus.ru/wordpress-341.html>Работа в маскве</a> <a href=http://vakansii-ru.ru/wordpress-494.html>работа для девушек в москве</a> <a href=http://vakansiy-ru.ru/wordpress-537.html>Работа для иногородних в москве</a> <a href=http://mynmy.ru/wordpress-240.html>Работа сегодня вакансии</a> <a href=http://vakansiy-russ.ru/wordpress-425.html>Работа сварщиком в москве</a> <a href=http://vakansiy-rf.ru/wordpress-368.html>Предложение вакансий</a> <a href=http://vakansii-rus.ru/wordpress-578.html>Работа супервайзер</a> <a href=http://vakansii-rf.ru/wordpress-111.html>Работа в королеве мытищах</a> <a href=http://vakans-ru.ru/wordpress-85.html>Вакансии вахтовым методом в москве</a>
2010-08-06 06:58:16
clubsexparty.ru
Всем привет!
Смотрите новый каталог интим услуг в России и СНГ - <a href=http://clubsexparty.ru>clubsexparty.ru</a>
На нашем сайте вы увидете информацию о самых разных интим услугах, таких как: <a href=http://clubsexparty.ru/rolevye-igry/ankety-prostitutok-kieva-v-vozraste.html>анкеты проституток Киева в возрасте</a>, <a href=http://clubsexparty.ru/intim-uslugi/strapon-u-metro-ploschad-vosstaniya.html>страпон у метро Площадь Восстания</a> и <a href=http://clubsexparty.ru/intim-uslugi/lesbi-g-lvove.html>лесби г. Львове</a>.
Самыми обсуждаемыми темами вчера были: <a href=http://clubsexparty.ru/intimchat/elitnye-prostitutki-v-rayone-metro-ulica-goda.html>элитные проститутки в районе метро Улица 1905 года</a> и <a href=http://clubsexparty.ru/rolevye-igry/blyadi-nedaleko-ot-metro-ulica-skobelevskaya.html>бляди недалеко от метро Улица Скобелевская</a>.
Присоединяйтесь !
2010-04-22 14:32:34
Michaaeella
Мы постарались собрать в этом разделе самые эффективные диеты. У нас Вы сможете подобрать диету максимально подходящую Вам. Все диеты имеют подробное описание. Если у Вас есть свой рецепт эффективной диеты, то Вы можете прислать описание Вашей диеты и мы опубликуем ее. Если вы хотите поделиться Вашей диетой заходите сюда
Сейчас известно довольно много диет. Время от времени появляются новые. Мы постарались собрать все диеты, что бы Вы могли выбрать ту диету которая Вам больше подходит. В нашем каталоге диет Вы можете найти более 200 диет. Но помните, что похудение- это средство, а цель- это здоровье! И в этом вам поможет правильное питание.
Вот только некоторые из них:
какие упражнения делать чтобы похудеть
Голландская диета
помогает ли йога похудеть
проект правильное питание
молодые диет
и еще одна:
http://bit.ly/97h2kk - огонь диета
2010-04-02 00:19:14
NMMarka
Здравствуйте друзья, меня зовут Алексей. Как-то ползая по сетке интернет, я наткнулся на один сайт <a href=http://clickcash.hollosite.com></a>. Он мне понравился тем, что это был склад, <a href=http://convict.rbcmail.ru></a> красивых обнаженных женщин, я бы даже сказал больше, смесь плейбоя и пентхауса.
Следовательно у меня к вам один вопрос, как вы относитесь к красивому женскому телу? Разве вы воспитаны не так, вас это раздражает, напрягает, вы думаете, что это за разврат. Тогда закройте это уведомление, а лучше вообще его удалите, дабы не смущало.
Если вы читаете дальше, вероятно со мной остались настоящие ценители красивых <a href=http://cloew.rbcmail.ru></a> обнаженных женских тел. Вспомните друзья во все времена, поэты воспевали женскую красоту <a href=http://gossyga.110mb.com></a>, скульпторы лепили статуи, художники передавали красоту обнаженных женских <a href=http://ccmc.110mb.com></a> тел в своих картинах. Про <a href=http://polkodse.110mb.com></a> женскую красоту дозволено галдеть бесконечно.
И в конце своего письма хочу вам сказать. Друзья вы зарабатываете каждый по своему, я же выбрал заработоk <a href=http://mukid.110mb.com></a>, который заключается вот в чём. Вы заходите на мой сайт, нажимаете на вход, попадаете на другой сайт , и на нём просматриваете красивое обнаженное женское тело, за это платят деньги.
2010-04-01 07:06:19
DavidiJA
Повторяют именно то, что уже слышал, а <a href=http://clickcashs.100webspace.net>девочки</a> это делаю как <a href=http://clickcashs.100webspace.net/sitemap.html>на зло</a>