» Главная
eXcode.ru » Статьи » .NET
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 6





Плюсы и минусы обфускации




Плюсы и минусы

Плюсы:
Обфускаторы делают дизассемблированный код тяжелым для изучения, превращая 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 сборок.

В дальнейшем обфускацию я буду обзывать О!, для краткости. Редко можно встретить полностью замкнутые, автономные системы, поэтому типичным случаем будет являться частичная О!. Хотя идеальной задачей для более качественной О! будет являться как раз написание максимальной замкнутой системы сборок. Вот вам и первый фактор.

К началу статьи





Добавил: LedWormДата публикации: 2007-04-04 22:31:21
Рейтинг статьи:5.00 [Голосов 1]Кол-во просмотров: 9779

Комментарии читателей

Всего комментариев: 17

2018-01-13 11:47:36
Aaojqlw
Платим за лайки! - Оплата по требованию!

Наш сервис предоставляет настоящие лайки на фотографии заказчиков, которые готовы платить за качество.

Именно для этого мы и набираем удалённых сотрудников, которые будут выполнять работу, то есть ставить лайки и зарабатывать за это деньги.

Чтобы стать нашим удалённым сотрудником и начать ставить лайки, зарабатывая при этом 45 рублей за 1 поставленный лайк,

Вам достаточно просто зарегистрироваться на нашем сервисе. > http://click-likes.tk/ <

Вывод заработанных средств ежедневно в течении нескольких минут.

2013-04-11 15:22:57
SefsHoollef
nyKpl <a href="http://collectionsacguess.weebly.com">collection sac guess</a> NwcKzr JpxXxm <a href="http://boutiqueisabelmarant.weebly.com">sneakers isabel marant</a> KvxEti OaxDtt <a href="http://isabelmarantprix.weebly.com">isabel marant prix</a> YfjUdo BupOen <a href="http://sacsamainsguess.webnode.fr">sac а main guess</a> EvoVlb YqiLel <a href="http://sacoche-longchamps-fr.webnode.fr">sac longchamp le pliage</a> NypPsa XsdYbq <a href="http://collection-isabel-marant-fr.webnode.fr">collection isabel marant</a> LfnCsz
LRUA <a href="http://longchampcuir.weebly.com/">longchamp soldes</a> yeTur ZhfSzi OqnRlk UufEie<a href="http://isabelmarantsneakersoldes.weebly.com/">isabel marant pas cher</a>OuvHpv <a href="http://basketisabellemarant.weebly.com/">basket isabel marant</a> PpcGctU <a href="http://guesscollection.weebly.com/">sacs guess</a>txPug Msn<a href="http://sacslongchamp.ucoz.com/">sacs longchamp solde</a> QdkOytFqs Tt <a href="http://longchamp2013.ucoz.com/">longchamp sale</a> uCmt dYwn
DegJow<a href="http://longchampsacspliage.weebly.com">sac longchamp le pliage</a> IhcSee BwnJzk <a href="http://bagslongchampuk.webs.com/">longchamp le pliage</a> AjeCpp QvqZew<a href="http://longchamplepliagesacs.weebly.com">sac longchamp le pliage pas cher</a> PebPrt LdoKye <a href="http://sneakersisabelmarantsolde.weebly.com">isabel marant soldes</a> SlxFkp HzwXko <a href="http://sackorsmichaelkors.weebly.com">sac kors michael kors</a> HusIol KkbHke <a href="http://longchamplepliagefrance.weebly.com">longchamp le pliage</a> EhrJpf <a href="http://sacslongchampsolde.tripod.com">longchamp le pliage</a> DslGwq PsvRtx
If you love designer <a href="http://isabellemarantchaussures2013.devhub.com">isabelle marant imitation</a> and have a few laying throughout the house the very best associated with both worlds with consign <a href="http://saclongchamppliagesolde.devhub.com">longchamp soldes</a>. A good thing regarding consignment <a href="http://sacsmichaelkorsfr.weebly.com">michael kors sac pas cher</a> made on your sales and get other custom <a href="http://guessfemmefr.weebly.com">guess femme pas cher</a>, which means you obtain a particular portion from the purchase from the <a href="http://longchamppascherfr.weebly.com">sac longchamp</a> these people manage all the facets of selling your own purse for you personally. The advantage to utilizing a consignment store.

2010-11-12 06:51:45
dorriskrausS
Ищи свою фамилию в списке, и узнавай все тайны! Обновление списка фамилий:

<a href=http://eqtundee.co.cc/21.html>фамилия ПЫШНАЯ</a> <a href=http://ensenknee.co.cc/99.html>фамилия ПАРАДИЗ</a> <a href=http://ksoykqgiex.co.cc/63.html>фамилия МАТУХОВА</a> <a href=http://ksofqeviex.co.cc/familiya-marshikina.html>фамилия МАРШИКИНА</a> <a href=http://euprpbfe.co.cc/31.html>фамилия ПОЛИКАНОВ</a> <a href=http://ksoskkaxiex.co.cc/11.html>фамилия КУМАРЕВ</a> <a href=http://gaivsnboze.co.cc/10.html>фамилия СКАРГОВСКИЙ</a> <a href=http://ksouwsaiex.co.cc/familiya-kudryavskiy.html>фамилия КУДРЯВСКИЙ</a> <a href=http://gaidhrbfoze.co.cc/15.html>фамилия СОМИНИЧ</a> <a href=http://emqvrxghe.co.cc/76.html>фамилия ПРИПОПЕНЬ</a> <a href=http://ksostaemiex.co.cc/familiya-makoshin.html>фамилия МАКОШИН</a> <a href=http://xevnpuhqku.co.cc/familiya-osanushkina.html>фамилия ОСАНУШКИНА</a> <a href=http://xerwwgmffu.co.cc/40.html>фамилия НИКТИНА</a> <a href=http://ksofqewmiex.co.cc/familiya-mamosova.html>фамилия МАМОСОВА</a> <a href=http://ksongmzciex.co.cc/6.html>фамилия МЕРЬЕМОВА</a> <a href=http://ksotbkxyiex.co.cc/89.html>фамилия НАРЕЖНЫЙ</a> <a href=http://ksoskckiex.co.cc/34.html>фамилия ЛАСКУРИНСКИЙ</a> <a href=http://edwmnnde.co.cc/familiya-pogashev.html>фамилия ПОГАШЕВ</a> <a href=http://ksotbkxyiex.co.cc/familiya-nachinkin.html>фамилия НАЧИНКИН</a> <a href=http://eeueanzze.co.cc/69.html>фамилия СЕМЕНКОВ</a> <a href=http://aloybqpcyip.co.cc/familiya-korachantseva.html>фамилия КОРАЧАНЦЕВА</a> <a href=http://exgwwnpye.co.cc/66.html>фамилия РАЗВОРОТНЕВА</a> <a href=http://ksofqewmiex.co.cc/11.html>фамилия МАЛЫКИН</a> <a href=http://xetcnueau.co.cc/familiya-obernaya.html>фамилия ОБЕРНАЯ</a> <a href=http://eqvkabke.co.cc/85.html>фамилия ПЕЧЕННИКОВ</a> <a href=http://ksofqeviex.co.cc/87.html>фамилия МАРЬЯНСКАЯ</a> <a href=http://gaimdqysoze.co.cc/familiya-sindinskiy.html>фамилия СИНДИНСКИЙ</a> <a href=http://ksotukriex.co.cc/familiya-mihalevich.html>фамилия МИХАЛЕВИЧ</a> <a href=http://ksofvdgwiex.co.cc/35.html>фамилия КРИСЯТЕЦКИЙ</a> <a href=http://ksoqfvxiex.co.cc/familiya-lazaryants.html>фамилия ЛАЗАРЬЯНЦ</a>

Узнай историю своего рода прямо сейчас!<a href=http://eqvkabke.co.cc/familiya-pecherskaya-chechel.html>!</a>!

2010-10-31 10:27:55
drrVacansS
В наше время, очень тяжело найти хорошую работу, с достойной заработной платой. Не отчаивайтесь, посмотрите в наших базах. Мы собираем только лучшие вакансии, на рынке труда России.

<a href=http://www.connectusers.com/community/profile/vacans>Вакансии</a>

Труд (работа) устраняет скуку, порок и нищету. Нет ничего более невыносимого, чем безделье. Время быстро утекает сквозь пальцы опущенных рук. Работать нужно с умом, а не до ночи. Каждое дело требует завершения, а любое безделье не должно быть начато. Работа - лучший отдых от безделья. От всех неприятностей, от всех бед можно найти только одно избавление - в работе. Нужда в деньгах работать заставляет.

<a href=http://www.connectusers.com/community/profile/vacans>Вакансии</a>

2010-10-15 14:11:14
KipelilmNes
Новые браузерные онлайн игры. В эту разновидность покера можно сыграть во всех известных покеррумах, например, в дружелюбном к новичку руме покер старс. Дениска его за пятьсот долларов купил. Разработайте собственную стратегию и не дайте никому уйти.

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 - огонь диета
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Как вы относитесь к интернет-магазинам?
Не доверяю
18% (16)
Ни разу не пользовался и не буду
16% (15)
Пользовался единожды
12% (11)
Пользуюсь регулярно
26% (24)
Пользовался бы, но нет денег
18% (16)
А что такие бывают?
2% (2)
Обычные магазины лучше!
8% (7)

Проголосовало: 91
Одна женщина другой: - У моего сына столько девушек!!! Только и слышу, то он с Клавой трахается, то с Аськой! И когда только успевает, ведь все время за компьютером!
Рейтинг: 3/10 (3)
Посмотреть все анекдоты