All streams
Search
Write a publication
Pull to refresh
165
0
Антон Д @atd

Самоуверенный пользователь ПК

Send message
да, представляю. в одном из следующих постов собираюсь заодно произвести замеры производительности.

не думайте, что я так люблю обфускацию. просто меня заинтересовал данный вопрос, ну и деобфускация тоже.
решил привести свои мысли в порядок, всё записал, а накопилось аж на статью, вот решил поделиться ;)
ну аспротект не делает же виртмашину на дотнете/jav'e ;)
для нативного кода это уже довольно старая практика и машины уже оптимизированы.

я имел в виду именно виртуализованный managed-код
да, ваш софт тогда никто не купит ;)
теоретически можно сделать вирт.машину для функций проверки лицензии, но и имеющейся защиты достаточно. не секреты пентагона же защищаем ;)

а абсолютной защиты всё равно не бывает, если программа как-то выполняется, её всё равно можно реверсить, даже если не скопировать код, то понять что и зачем можно при любой защите.
можно. и используется. но это уже пакеры (будут рассмотрены в самом конце).
к тому же в .NET нет больших возможностей по модификации кода + в силу специфики платформы IL-код всё равно нужен, так что любой упаковщик снимается легко и непринуждённо.
Большинство обфускаторов выдаёт маппинг новых имён на старые.
И для самых популярных существуют stack decoder’ы, чтобы не заглядывать в маппинг вручную.
можно и так сделать. но я думаю, что тратить время на свой обфускатор стоит либо ради «теоретических изысканий» либо если программа ну очень ценная ;)
может. может ещё много чего отвалиться (всё что зависит от Reflection).
но некоторые обфускаторы прилагают все усилия, чтобы задетектировать такие ситуации, и либо «подложить соломку», либо не обфусцировать данные части программы.
Это результак Ctrl+K, D в студии, я думал что хабр не будет вставлять дополнительных переносов… :(
c оформлением у меня возникла проблема, картинки которые сейчас по правому краю, выстраивались в «лесенку». А тег <hr /> почему-то не распознавался хабром, пришлось вставить таблицы…
Это, так сказать, must have инструмент не только реверсера, но и обычного дотнет разработчика ;)
У нас на одном из сайтов тоже касперский увидел «вирус» в минимизированном js. И ещё avira. Отписали в техподдержку и тех и других, они исправили у себя сигнатуры.
понятно, просто не полностью понял задачу.
я может не особо опнимаю, но что мешает нам сделать Delegate.CreateDelegate(typeof(MethodDelegate), mi)
и потом пользоваться результатом?
да, «протекторы» тоже будут ;)
Да, есть такая проблема… Хотя если оценивать будут мои посты, а не меня самого, то это не страшно ;)
Пока что «за» и «против» примерно равное количество.
Да, кстати, не все они деньги гребут ;)
babel — конкурентноспособный обфускатор, выложенный по GPL
а phoenix — вообще «учебный» проект (в одном из своих постов Pistelli именно так о нём и говорил)
и это рассмотрим ;) только данный подход имеет свои минусы
Спасибо, жду реакции других хабровчан ;)

На самом деле насчёт защиты по серийным номерам и похожих вещей вы правы.
[спойлер] На данный момент основной целью применения обфускаторов я вижу защиту от такого:
Вы выпустили на свет программу, которая содержит какой-то код, который не так легко написать с нуля.
А ваш конкурент взял рефлектор, скопировал сорцы, отрефакторил, поменял внешний вид, и выпустил аналогичный продукт практически не затратив денег (или других ресурсов) на разработку.
Вот собственно и хочу сделать обзор на эту тему. От чего, как и реально ли они защищают.
тоогда спамеру достаточно разгадать её один раз и передать куки спам-боту…

Information

Rating
Does not participate
Location
Россия
Registered
Activity