Может ли приложение WinRT использовать обфускацию?
Все приложения Metro должны быть проверены перед распространением через Windows 8 AppStore. Означает ли это, что нельзя будет использовать обфускацию кода? Или это все еще возможно, и только некоторые конкретные аспекты будут контролироваться во время такой проверки?
3 ответа:
Вот некоторые факты:
- Marketplace для WP7 позволяет запутывать приложения C# (даже MS он советует и я не вижу никаких причин, почему Windows AppStore будет запрещать такие приложения.
- почти наверняка некоторые поставщики предоставят совместимый C++ обфускатор.
- Вы должны заботиться о своих клиентах, а не о крекерах. :)
- Многие хаки для запутывания кода будут запрещены.
Помните, если у вас есть какая-то логика, которую вы хотите скрыть, сделайте webservice и использовать его в вашем клиентском приложении. Лучше потратьте свое время на создание лучшего приложения, исправление ошибок и т. д.
Нет кости, если у кого-то есть доступ к двоичным файлам, это только вопрос времени, когда кто-то взломает его.
Это ответ кресла с некоторыми вещами, которые приходят на ум:
Даже приложение C++ все еще может быть аназлировано, если оно зависит от динамической привязки к среде выполнения или API, что имеет место с приложениями WinRT. Теоретически одобрение Microsoft может включать автоматическое или управляемое человеком тестирование вашего приложения с использованием специальной песочницы и / или крючков ОС, способных обнаруживать, если ваше приложение пытается выполнить определенные Запрещенные операции.
Под капотом, C++ приложения для WinRT они больше похожи на собственные приложения C++, чем на C++/CLI, поэтому обфускация не нужна в той степени, в какой она нужна для C#, при прочих равных условиях.
Вы по-прежнему можете создавать приложения C#, предназначенные для WinRT, но ваш код все равно будет компилироваться в CIL и выполняться в среде CLR (более или менее), вызывая WinRT через обертки, предоставляемые Microsoft. Поскольку это CIL, вопрос об обфускации должен быть эквивалентен вопросу обфускации C# / .NET в целом.