Microsoft Store で配布されているアプリがネイティブアプリかストアアプリ(UWP)かを見分ける方法

ストア形式といえば、忘れ去れてている感がある Microsoft Store ですが、現状ではサン土木すで制限された UWP アプリの他にネイティブ Windows アプリを登録できます。

UWP アプリは、「UWP」は「ユニバーサル Windows プラットフォーム」の略で、iPhone の App Store や Android の Google Play で配布されているアプリのように、安全にダウンロード&インストールしたのち、安全にプログラムが実行される(ユーザーがアプリの権限を不許可にしたりして制限ができるなど)アプリのことです。Windows 8 からの Microsoft 肝いり企画だったわけですが、Mobile Windows の廃止により、その価値は激減しています。

実行ファイルを配布するときに、どれを選ぶのかがややこしいのですが、

  • ストアでUWPアプリ
    一番制限がきついパターンだが、一番安全に配布できる
  • ストアでWindows アプリ
    一応セキュリティ審査/署名があるが、実行はネイティブなので、UWP アプリより少し制限が緩い
  • インストーラーを作って配布
    従来の一般的な配布。ただし、ストアよりも目に惹かれないので、できればストア配布を推奨…とされる
  • EXEファイルを直接配布
    社内での配布の場合はこれで十分なことが多い。 

久しく制限のきつい開発環境≒大手IT会社のハコヅメ環境をやっていないので、今の実情はわからないのですが、社内でツールの制限をかけるときに「何処からダウンロードするのか?」「どのツールを使うのか?」が求めらえるところでしょう。

例えば Line Desktop は Windows アプリ

Microsoft Store で「Line」を検索すると「LINE Desktop」がでてきます。このアプリは従来ならば UWP アプリで作るところですが、このアプリはネイティブの Windows アプリです。

判別が難しいのが難点なのですが、追加情報のところの「このアプリでは次のことができます」の中で「すべてのシステムリソースを使用する」となっていると、ネイティブな Windows アプリです。

一見すると、このアプリが Windows の秘密機能をあれこれやってキーロガーとか個人情報とかを抜きとるように見えますが(実際、できるんだけど)、実はそうではありません。ネイティブの Windows アプリなので「特に制限されてない」だけです。制限はされていませんが、一般的な Windows アプリと同様に、Administor 権限とか System 権限が必要なものは、それが使えるユーザー(管理ユーザー)でしか動きません。

一方で電卓アプリは UWP アプリ

一方で電卓アプリは、UWP アプリとして登録されています。

同じように機能の制限を見ると、「インターネット接続にアクセスする」ことだけが許可されています。

この文言は非常に解り辛いのですが、

  • 「すべてのシステムリソースを使用する」の表示があれば、Windows アプリ
  • それ以外の制限が書いてあれば、UWP アプリ

という違いがあります。前述した通り、UWP アプリとして作られている電卓アプリのほうが安全です。

プロセスを比較する

タスクマネージャで両者のプロセスを見ていきましょう。

LINE Desktop の場合は、各種のプロエスが動いています。

プロセスのプロパティを見ると、「C:\Users\masuda\AppData\Local\LINE\bin\current」のような場所で動いています。

エクスプローラーでフォルダーを見ると、Qt フレームワークを使って書かれていることがわかります。他にも DLL があって、一般的な Windows アプリと同じです。

同じように「電卓」をみてみましょう。

プロパティを見てみると、「C:\Program Files\WindowsApps\Microsoft.WindowsCalculator_11.2405.2.0_x64__8wekyb3d8bbwe」のように、C:\Program Files\WindowsApps フォルダーの配下にアプリケーションが配置されています。

この WindowsApps フォルダーがサンドボックスの役割をしています。このフォルダーは閲覧が制限されていて Powershell などを管理者モードにしないと見ることができません。

ls コマンドなどで、インストールされているアプリの正式名を知ることができます。このそれぞれのフォルダーに UWP アプリの実体が含まれています。

ためしに Temas のフォルダーを見ていきましょう。

この中で使われている DLL や JS コードなどを見ることで、ああ JavaScript で作られているな、とか判断したりするわけです。

カテゴリー: 開発 パーマリンク