#c_sharp #обфускация
Собственно, кто какие способы защиты от декомпиляции программы и кто какие способы обфуксации кода написанного на c# знает?
Ответы
Ответ 1
Но я вижу, что здесь только издеваются, так что, закройте кто-нибудь тему @MadKeks никто над вами не издевается, не преувеличивайте. Дело в том, что необходимость в обфускации программ на C# сама по себе довольно сомнительна - очень существенная часть C# кода - это веб-приложения, веб-сервисы и прочий код, который работает на сервере, а следовательно, конечный пользователь его не видит и покопаться в нем не сможет даже с помощью ildasm'a или Reflector'a. Большая часть оставшегося софта - это программы, используемые очень ограниченным кругом лиц (внутрикорпоративные десктоп-приложения например), а следовательно, никому не придет в голову воровать их исходный код, не представляющий особой ценности. К примеру, на своей первой работе я получил в сопровождение кучу адского говнокода, нарушающего все возможные и невозможные каноны чистоты кода и в каккой-то степени благодаря этому уже являвшийся обфусцированным (справедливости ради, мои навыки на тот момент как раз того и стоили - из под моих пальцев вытекал точно такой же кривой говнокод). Так вот что тогда, что сейчас я бы не только не стал этот код воровать с помощью декомпиляции, я бы не стал брать его даже даром из исходников. В подобной защите, вероятно, нуждается серьезное проприетарное ПО, скажем, какой-нибудь Photoshop, но оно на C# обычно не пишется. Учитывая, что исходники практически на все случаи жизни можно отыскать на всяческих гитхабах и битбакетах, пляски с бубном для получения исходников становятся еще более сомнительными. Стоит также отметить вот что: на моей памяти 99% процентов случаев, когда программист волновался по этому поводу сводились к тому, что это был юный и неопытный разработчик, искренне уверенный в том, что его хелловорлды способны потрясти мир и произвести революцию в области софта, а потому срочно нуждаются в защите и сокрытии своих исходников. По мере профессионального взросления у них это обычно проходило. Впрочем, при желании материалов на эту тему можно найти достаточно. Например вот и вот UPD статья по обфускации в .NET обфускация в JS Стоит кстати заметить, что обфускация во многом зависит от средств конкретного языкаОтвет 2
В дополнение к ответу @DreamChild (с которым на 100% согласен), а также в рамках популяризации новых веяний в разработке на .NET, упомяну ещё одну альтернативу. С выходом Developer Preview Project N, вы можете скомпилировать ваше .NET-приложение в нативный код, и даже прилинковать к нему всю стандартную библиотеку (ну да, выйдет файл размером в типичное C++-приложение). Так что вскрыть его будет не легче, чем C++-программу (и даже труднее, т. к. спецы во взломе C++-кода должны ещё привыкнуть к коду, генерируемому AOT-компилятором .NET, и его системным библиотекам). Ещё раз повторюсь, что это занятие (обфускация) по моему мнению пустая трата времени.
Комментариев нет:
Отправить комментарий