Comments 43
При разработке игр и приложений на Windows Phone разработчикам не следует забывать о том, что их код можно будет просмотреть и после компиляции.
Ну, дык пускай смотрят. Мне, например, не жалко бы было.
Вопрос всегда о данных… Не думаю, что банк будет рад тому, что их код можно легко «почитать».
До определенной степени спасет обфускатор, самое главное это валидация сборки. Но, к сожалению, не в курсе как это на WP.
Подписать сборку есть возможность. Это не происходит во вкладке в свойствах, но с консолью и постбилд событиями можно автоматизировать. Не помню как называется, но есть гибридные библиотеки для сервелата, винфона и дотнета — там, возможно, есть вкладка для подписи.
После хорошей обфускации даже вышеупомянутый пример было бы уже не так просто подредактировать. А банковский софт вообще не должен никуда уходить за пределы здания, если уж на то пошло…
Но все равно данные могут прочесть. Обфускация тут, максимум, даст ложную уверенность, что данные в безопасности.
Зачем мучаться с обфускацией, защищаясь от ничтожного количества пользователей-хакеров?
достаточно одного который уведет у банка кое что что ему не принадлежит.
Можете перечислить то, что можно увести из приложения? Может я чего не понимаю, но приложение на трубке — low trust, что автоматом выливается в невозможность хранения ценных данных в открытом виде и передачу чего либо по незащищенным каналам, предварительно не пройдясь шифрованием?
Какая чушь, что ж это за банк который не делает дополнительные проверки на сервере. И не использует https для общения с клиентом?
Обфускация производится не только для защиты. Это ещё и оптимизация (в зависимости от возможностей обфускатора): например, вынос (или, наоборот, инлайн) методов, удаление неиспользуемых переменных и мёртвого кода, сокращение названий классов, методов и свойств, сортировка классов и методов и пр. На мобильных устройствах пусть даже мелкая оптимизация, но для миллионов устройств, выливается в значительную экономию ресурсов.
Могу сказать, что уже существуют способы обхода проверки подписи для приложений WP7 — правда пока только для запуска их на эмуляторе. Но нам динамического анализа приложений на текущий момент и эмулятора хватает.
Что такое «чисто анализ»? Мы производим статическую инструментацию скомпилированного приложения для WP7 и анализируем его в процессе его работы на эмуляторе. При желании и логику работы приложения изменить можно.
Есть программы, которые тупо срубают подпись с пакета
Так погодите, автор же запустил приложение у себя. Правда, у него developer unlocked устройство.
А заливали вы как? Application Deployment'ом? По идее он и должен ее переподписывать.
Что имеется ввиду под подписью? Если подпись маркета — то ее просто удаляем (WMAppPRHeader.xml)
Если именно подпись каждой сборки — от этого тоже умеет спасать рефлексил. У меня обычный моцарт с самой стандартной прошивкой :)
Если именно подпись каждой сборки — от этого тоже умеет спасать рефлексил. У меня обычный моцарт с самой стандартной прошивкой :)
Приложения без подписи ставятся и работают? Андроид, например, требует подпись. Но, удалив оригинальное приложение, подписав его своей, можно поставить и оно будет успешно работать (если оно или другое не будет проверять ключ).
На разлоченом девайсе, редактированое приложение удаляет старое ставит себя. Тут нет подписки как в Android. Как я понял — вся подпись маркета — это файл WMAppPRHeader.xml содержимое которого выглядит следующим образом:
<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0">
<DATA>
<PROTECTINFO>
<KEYLEN>16</KEYLEN>
<ALGID>AESCTR</ALGID>
</PROTECTINFO>
<KID>lds1jRP2aDeWpl8X+H+MsA==</KID>
<LA_URL>http://microsoft.com/</LA_URL>
<CUSTOMATTRIBUTES xmlns="">
<S>dfGxu4ileP4+LWZdE6ds4wQ==</S>
<KGV>0</KGV>
</CUSTOMATTRIBUTES>
<CHECKSUM>tXG3tIfoarY=</CHECKSUM>
</DATA>
</WRMHEADER>
Реквестиру статью об общих методах защиты от такого воздействия.
Sign up to leave a comment.
Мини reverse engineering и модификация Windows Phone приложений