VB2010 и .NET Framework 4 (защита своих программ)

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Arum
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 09.08.2011 (Вт) 0:50
Откуда: Питер

VB2010 и .NET Framework 4 (защита своих программ)

Сообщение Arum » 09.08.2011 (Вт) 1:19

Добрый день, уважаемые форумчане.
Очень заинтересовал вопрос -
всегда баловался, писал проги под vb6, не знал проблем, тут, чёрт дернул пересесть на vb.net (VS2010).
Сделал прогу и через трое суток, после публикации, ее код преобразуют обратно в удобочитаемый, да так, что видно, даже, названия моих переменных и все модули разложены по отдельным файлам с аналогичным названием, как они и были названы у меня.
(пример декомпилированного кода, каким он стал)
Код: Выделить всё
            if (connectTo != "check_mail")
            {
                switch (connectTo)
                {
                    case "captcha_1":
                        if (!MyProject.Forms.frmMain.tmrConnect.Enabled)
                        {
                            if (_VARIABLES.OptionReport[3])
                            {
                                _FUNCTION.TXT(ref "Thread " + Conversions.ToString(Index) + " - STOP");
 


Вот у меня и возник вопрос - неужели так легко преобразовать скомпилированный код на vb2010 (под .NET Framework 4), обратно в исходники? Это получается, как на vb6 скомпилить в PE код или, я, просто, где то галочку не поставил, "да, делать всё в Native!".
Можно ли хоть что то сделать, что бы прога не декомпилилась в C++ подобный исходник?
Прошу прощения, за такие наивные вопросы, просто, на .NET пересел всего две недели назад и толком всего не успел понять.
Последний раз редактировалось Arum 10.08.2011 (Ср) 1:04, всего редактировалось 2 раз(а).

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: VB2010 и .NET Framework 4

Сообщение iGrok » 09.08.2011 (Вт) 2:23

Arum писал(а):Можно ли хоть что то сделать, что бы прога не декомпилилась в C++ подобный исходник?

По большому счёту, нет.
А так, почитай про обфускацию, и поищи соответствующие решения для .NET
От знающего человека, которому по какой-то причине понадобился твой код, не спасёт ничто. Но обфускатор по крайней мере отобьёт желание копаться у кулхацкеров, которые вчера увидели .NET Reflector, и теперь хвастаются своими "умениями".
label:
cli
jmp label

Arum
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 09.08.2011 (Вт) 0:50
Откуда: Питер

Re: VB2010 и .NET Framework 4

Сообщение Arum » 09.08.2011 (Вт) 9:18

Благодарю за ответ, теперь, хоть знаю, в какую сторону копать.
Действительно, скачал .NET Reflector, попробовал свою же программу декомпилировать и пришел в ужас, увидев исходники. Ваша правда, что там много ума не надо и любой "кулхацкер" может сделать это за пару минут.
Теперь, буду разбираться с Dotfuscator, я так понял, это самое то, что нужно для усложнения декомпилирования.

Arum
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 09.08.2011 (Вт) 0:50
Откуда: Питер

Re: VB2010 и .NET Framework 4

Сообщение Arum » 10.08.2011 (Ср) 0:46

Если кому понадобится и возникла аналогичная проблема с защитой своих программ для VS2005-2010 (работающих под .NET Framework)
Dotfuscator в Википедии _http://ru.wikipedia.org/wiki/%CE%E1%F4%F3%F1%EA%E0%F6%E8%FF
Сайт _http://www.preemptive.com

Есть платная версия, есть бесплатная. Бесплатной хватит для того, что бы защитить свою программу, как сказал iGrok от " кулхацкеров, которые вчера увидели .NET Reflector"
Потому, регистрируемся, указывая реальный e-mail. Кнопки "MY ACCOUNT" -> "REGISTER" (на мейл придет SN)
Входим на свой аккаунт, жмем на менюшку "Evaluations". Указываем любые данные (они служат для генерации SN). После чего (только после заполнения ВСЕХ полей) откроется меню для скачивания Dotfuscator. Жмем кнопку DOWNLOAD.
Всё - Dotfuscator Version 4.9.7000 пойдет скачиваться. Эту версию дают на халяву.

Документацию можно посмотреть в msdn (на русском) _http://msdn.microsoft.com/ru-ru/library/ms227240(v=VS.90).aspx

Скажу от себя - с программой, разберется, даже, начинающий программер. Запустив ее (указав тот самый SN, который был выслан на e-mail) и не меняя настройки, указываем свой *.exe и на выходе получаем другой *.exe, на который если натравить .NET Reflector, везде будет желаемое "' This item is obfuscated and can not be translated."
Это бесплатная версия - что в платной, не знаю, но и этого достаточно для доморощенных хацкеров, кто научился кликать по ярлыку .NET Reflector и транслировать проги в исходники, теребя кнопку "Decompile".

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: VB2010 и .NET Framework 4 (защита своих программ)

Сообщение Nord777 » 10.08.2011 (Ср) 7:34

и на выходе получаем другой *.exe, на который если натравить .NET Reflector, везде будет желаемое "' This item is obfuscated and can not be translated."

А ты уверен, что кроме рефлектор'а больше ничего не существует? :wink:
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Arum
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 09.08.2011 (Вт) 0:50
Откуда: Питер

Re: VB2010 и .NET Framework 4 (защита своих программ)

Сообщение Arum » 10.08.2011 (Ср) 14:32

Nord777 писал(а):А ты уверен, что кроме рефлектор'а больше ничего не существует? :wink:

спасибо, уже не уверен :(
dotPeek и Spices.net спокойно вскрыли файл после Dotfuscator'a, вывернув наизнанку все внутренности проги.
Нашел другой обфускатор Xenocode.Postbuild.2009.for.NET
После обработки exe'шника, все декомпиляторы (что я нашел), показывают, что это 'is not a .NET module'
Хотя, теперь не покидает чувство паранойи. Наверняка можно вскрыть какой то другой прогой, до которой я не добрался.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: VB2010 и .NET Framework 4 (защита своих программ)

Сообщение FireFenix » 10.08.2011 (Ср) 15:39

Arum писал(а):
Nord777 писал(а):А ты уверен, что кроме рефлектор'а больше ничего не существует? :wink:

спасибо, уже не уверен :(
dotPeek и Spices.net спокойно вскрыли файл после Dotfuscator'a, вывернув наизнанку все внутренности проги.
Нашел другой обфускатор Xenocode.Postbuild.2009.for.NET
После обработки exe'шника, все декомпиляторы (что я нашел), показывают, что это 'is not a .NET module'
Хотя, теперь не покидает чувство паранойи. Наверняка можно вскрыть какой то другой прогой, до которой я не добрался.

IDA + Hex Rays
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Arum
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 09.08.2011 (Вт) 0:50
Откуда: Питер

Re: VB2010 и .NET Framework 4 (защита своих программ)

Сообщение Arum » 10.08.2011 (Ср) 21:39

FireFenix писал(а):IDA + Hex Rays
ну, боюсь (надеюсь), что до такого не дойдет. Прога то халявная. А тем кто обладает такими знаниями по дизассемблированию, сам напишет таких сотню и не будет париться с моей.
Суть была, именно в защите, от ж... руконогих кулхацкеров, кто "вчера научился пользоваться .NET Reflector" (слова iGrok, но он очень точно понял суть проблемы)

ps. Года четыре назад (может, больше) видел тут на форуме функцию, по запуску из байтового массива исполняемого файла. Поищу сейчас. Было бы шикарно. Основной файл *.exe достается частями из res, соединяется, дешифруется и запускается не записываясь на диск (и делает это всё другой файл, написаный на другом языке).
Понятно, что от знающих людей не спасет, но, от 99% "кулхацкеров" защитит.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: VB2010 и .NET Framework 4 (защита своих программ)

Сообщение iGrok » 11.08.2011 (Чт) 0:17

Arum писал(а):Года четыре назад (может, больше) видел тут на форуме функцию, по запуску из байтового массива исполняемого файла.

Это практически стандартный метод работы всех протекторов.
И даже есть некоторое кол-во универсальных утилит, которые его "вскрывают". Ну или как минимум, помогают вскрыть:
http://exelab.ru/art/?action=view&id=271

Не заморачивайся. Для твоих целей хватит и того, что уже нашёл. Хотя если для саморазвития и самообразования - то изучить такие вещи смысл есть.
label:
cli
jmp label


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

    TopList