Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Несколько вопросов по C# обфускации (SmartAssembly 
:(
    Опции темы
MasTaKslova
Дата 25.5.2015, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.6.2011
Где: Харьков

Репутация: нет
Всего: нет



Здравствуйте! Экспериментирую с различными обфускаторами, чтобы защитить свой код от повторного использования. Основная задача - сделать анализ с целью повторного использования настолько трудоемким, чтобы дешевле было написать свой код, а не использовать мой. Уточню - не преследую цель сделать анализ НЕвозможным,- просто, максимально усложнить! Пока остановился на 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 и распознать структуру .
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0393 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.