Запутывающий Silverlight XAP - PullRequest
       5

Запутывающий Silverlight XAP

3 голосов
/ 22 сентября 2008

Мне интересно, какой эффективный способ скрыть наш код Silverlight. Я знаю, что есть некоторые обфускаторы, но похоже, что люди тоже могут это взломать. У кого-нибудь есть успехи в этом направлении?

Ответы [ 6 ]

4 голосов
/ 23 сентября 2008

Pragma No-Cache на странице, на которой размещено приложение silverlight, не позволит браузеру кэшировать xap, вместо этого он будет читать его при потоковой передаче с веб-сервера. Это усложнит пипсу получение xap. Запутывание будет еще труднее.

Также убедитесь, что приложение размещено в https, чтобы аутентификация проходила вне основного приложения. Таким образом, поток xap кодируется на пути вниз.

4 голосов
/ 22 сентября 2008

Вы действительно не можете скрыть все, что передается клиенту. Если люди хотят понять это, они будут.

Вам нужно поместить любой собственный код в ваш бэкэнд, чтобы клиентские машины не могли его получить.

2 голосов
/ 22 сентября 2008

Нет. Клиентский браузер должен уметь читать код, поэтому он может быть взломан.

1 голос
/ 11 октября 2010

Вы можете усложнить работу потенциального хакера, загрузив запутанные фрагменты вашего приложения во время выполнения, например, используя MEF. Само собой разумеется, что интересно, если ваше приложение достаточно велико, чтобы это могло ускорить время запуска, а не мешать работе пользователя.

Это не помешает доблестному хакеру получить ваш код (в руке ни один метод не может предотвратить это, так как плагин Silverlight должен уметь его выполнять), но хитрость значительно усложнит его задачу.

предотвращение кеширования браузером XAP бесполезно, как использование HTTPS, поскольку злоумышленнику гораздо проще использовать что-то сложное, например, firebug, чтобы получить XAP, чем искать его в кэше браузера или использовать Man in the Middle Атака.

Я полагаю, что если бы у вас было много мотивации, вы могли бы:

  • запутывать каждую сборку
  • использовать динамически загруженные XAP
  • шифрует динамически загруженный сервер XAP и расшифровывает его на стороне клиента с помощью динамически генерируемого ключа, отправляемого веб-службой (не в том же запросе. И не используйте ключ повторно.)

Это не помешает злоумышленнику получить ваш код, но ему придется проанализировать ваш исходный (запутанный) xap, чтобы понять код дешифрования, получить ключ, получить зашифрованный (тоже обфусцированный) динамически загруженный XAP, расшифровать его , а затем умудриться разблокировать его, затем понять, как он включается в приложение. Это не то же самое, что использование HTTPS, потому что здесь процесс шифрования и дешифрования выполняется в приложении, так что такие инструменты, как firebug или fiddler, становятся бесполезными.

Хем. Ничто не может помешать кому-либо читать ваш код. НО вы можете сделать это не стоит своего времени. Вам не нужно использовать все идеи здесь, и я уверен, что вы можете найти другие, но убедитесь, что реализация таких мер также стоит вашего времени.

В любом случае, было довольно забавно написать это: p

1 голос
/ 16 сентября 2010

Вот небольшая статья о том, как скрыть файл xap

http://www.rudigrobler.net/Blog/obfuscating-silverlight

0 голосов
/ 11 октября 2010

Вы не можете скрыть (по крайней мере, нетривиально) файлы XAP. Но вы можете их запутать. Запутывание не является окончательным ответом, но это начало и может дать довольно хорошую защиту.

...