Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2015, 11:15   #1
Berlin
 
Аватар для Berlin
 
Регистрация: 11.06.2011
Сообщений: 4
По умолчанию Несколько вопросов по C# обфускации (SmartAssembly, internal функции)

Здравствуйте! Экспериментирую с различными обфускаторами, чтобы защитить свой код от повторного использования. Основная задача - сделать анализ с целью повторного использования настолько трудоемким, чтобы дешевле было написать свой код, а не использовать мой. Уточню - не преследую цель сделать анализ НЕвозможным,- просто, максимально усложнить! Пока остановился на SmartAssembly (версии 6). Деобфусцировал с помощью de4dot. Результат оценивал в Reflector. В связи с этим есть ряд вопросов. В вопросах подразумевается, что анализируемый exe или dll был ранее обфусцирован SmartAssembly.

Вопросы:
1. Можно ли с помощью какого либо метода (деобфускация, создание дампа процесса, отладка или что либо другое) без значительных трудозатрат восстановить исходный код (можно без имен переменных) internal и private функций с условием, что они не вызываются из public функций? Если можно, то как?
2. Аналогичный вопрос по поводу исходных имен параметров функций и локальных переменных, используемых в internal и private функциях.
3. Какой обфускатор посоветуете использовать вместо SmartAssembly (только чтобы лицензия была не дороже 150-200$)?

Несколько наблюдений (исходя из моих экспериментов):
1. De4dot не восстанавливает имена локальных переменных после SmartAssembly (только переименовывает исходя из их типов http://prntscr.com/78puxr для облегчения анализа). А вот структуру кода нормально восстанавливает. Еще восстанавливает имена параметров публичных функций.
2. internal и private функций я не нашел http://prntscr.com/78pvh4 в восстановленном с помощью De4dot файле. Причем, их код не находится даже если вызываешь прямо из него (из кода internal или private функции) public функцию http://prntscr.com/78pxcf (в то время как ее вызов из публик функции виден http://prntscr.com/78pxf8 и http://prntscr.com/78pxhs)
3. Однако если приватная функция вызывается публичной, то ее можно обнаружить http://prntscr.com/78q5pm и распознать структуру .
Berlin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько вопросов shrek1993 Visual C++ 3 05.08.2012 18:53
Несколько вопросов по C++ Antitime Общие вопросы C/C++ 10 26.01.2012 15:00
несколько вопросов spydark91 Общие вопросы Delphi 2 18.07.2011 13:48
Несколько вопросов. Miron86 Компоненты Delphi 3 09.09.2009 18:25
Несколько вопросов pix_l Общие вопросы Delphi 1 29.03.2009 22:26