11.07.2015 Views

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

72ВзломХАКЕР 04 /171/ 2013С появлением Windows Phone 8 разработчикимогут писать приложения на С/С++. Однако использованиеэтих языков ограничено написаниемкода, который работает с WinPhoneRT или DirectX,а также с другими нативными библиотеками. Код,который не подходит под эти требования, и весьпользовательский интерфейс по-прежнему должныбыть написаны с использованием управляемыхязыков.Нас не может не радовать наличие нативногокода: говорим «привет» таким багам, как Bufferoverflow, use-after-free и подобные.ВНУТРЕННОСТИ WP-ПРИЛОЖЕНИЯЧто же представляют собой Windows Phoneприложения? Готовое приложение — это файлс расширением XAP (аналогично Silverlightприложениям).Внутри находятся сборки, ресурсыи несколько специальных файлов манифестов.Манифест приложения аналогичентакому же файлу в Silverlight-приложениях. Манифестприложения Windows Phone содержитспецифичную информацию, например включаетв себя список возможностей.Файловая структура приложения• Сборка приложения• Ресурсы• AppManifest.xaml• WMAppManifest.xml• WMInteropManifest.xml** — опционален в WP7, отсутствует в WP8WP-приложение на устройствеКогда ты устанавливаешь приложение,XAP-файл распаковывается и все его содержимоесохраняется в отдельную папкуПОПАДАЕМ В МАГАЗИНИтак, у тебя есть приложение и желание начать распространятьего. Сначала нужно отправить приложение на сертификациюв Windows Phone Store. В процессе сертификацииMicrosoft проводит множество проверок. Самая интереснаязаключается в том, что код приложения подвергают статическомуанализу, чтобы выяснить, какие возможности приложениена самом деле использует. Ты можешь отправитьприложение, указав полный список возможностей, однаково время сертификации будут оставлены только те возможности,которые реально используются.В конце сертификации Microsoft подписывает все сборки,потом подписывается XAP-файл (добавляется файл с подобиемконтрольной суммы), а затем изменяется формат самогоXAP-файла таким образом, что он не может быть открытна просмотр.ПОПАДАЕМ НА УСТРОЙСТВОКогда ты устанавливаешь приложение, XAP-файл распаковываетсяи все его содержимое сохраняется в отдельную папкуприложения. Вот как приложения хранятся на устройстве.В корне диска существует папка Applications. Внутри нее естьпапка Install, которая содержит папки для каждого приложения.Название каждой папки — это уникальный идентификатор приложенияв Windows Phone Store, который берется из манифестфайла.Как мы упоминали выше, каждое приложение имеетсвое собственное изолированное хранилище. Они хранятсяв папке Data, которая также содержит отдельные папки под каждоеприложение. Вот так выглядит распакованное приложениена Windows Phone 7 устройстве.\Applications\Install\\Install\- Содержимое из XAP- WMAppPRHeader.xml (подпись)\Data\\Data\IsolatedStorageПути в Windows Phone 8 отличаются — они больше похожина обычные виндовые пути (C:\Data\Programs\\Install\), но общая идея раздельного хранения приложенийи хранилищ остается.В БОЙДля начала немного теории по поводу анализа защищенностимобильного приложения. В процессе анализа просматриваютсятри вещи: приложение, канал связи и сервер. При анализеканала связи и сервера все как обычно: подмены сер-Развитие Windows PhoneСтруктура приложения WPКРАТКООБ ИНСТРУМЕНТАЦИИЭто техника добавления собственногокода в программу/окружение для мониторингаили изменения некоторого поведенияисследуемой программы. СборкиWindows Phone приложений содержат промежуточныйCIL-код, который выполняетсяCLR. Именно этот код модифицируетсядля того, чтобы внести в него дополнительнуюфункциональность. Например, у насесть метод, который складывает два числаи возвращает результат. Ниже версияэтого же метода, проинструментированнаятаким образом, что результат методавыводится в консоль.Инструментация CLI

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!