2016-07-11 2 views
-2

Я с использованием открытых статических полей в моей C# приложения:Hack общественные статические поля запущенного приложения .net, когда у вас есть не исходный код

ли возможно для кого-то, кто имеет не исходный код из приложение (obfuscated), чтобы изменить эти поля в приложении runtime? (например, с помощью функции присоединения VS)

+0

Если они общедоступны, кто-то может ссылаться на ваше приложение и делать все, что захочет в полях. Не делайте их общедоступными, если вы не хотите, чтобы люди обращались к ним. Но это совсем другой вопрос .... –

ответ

2

Да, им даже не требуется прикреплять отладчик. Поскольку поля являются общедоступными, все, что нужно сделать, это добавить вашу программу в качестве ссылки на нее, тогда они могут просто вызвать вашу основную функцию от своих, и они могут манипулировать всеми общедоступными переменными, которые они хотят.

+0

будет ли защищать их внутренний модификатор? – Jalil

+1

В этом конкретном случае, да, но если кто-то выясняет, какое имя поля, они могут просто использовать отражение для доступа к любому внутреннему, защищенному или частному полю. –

+0

, даже если сборка запутана? – Jalil

0

Хотя я никогда лично не пробовал это, я бы предположил, что вы могли бы декомпилировать DLL с помощью .NET Reflector, а затем отладить от запущенного процесса с недавно созданным «исходным кодом».

0

Используя что-то вроде dotPeek и прикрепляя отладчик, это должно быть возможно. По крайней мере, это будет непросто из-за обфускации.

Надеюсь, это поможет!

 Смежные вопросы

  • Нет связанных вопросов^_^