[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[harden-mac:0754] Re: Resource-forkとデータの偽装



Tomio Arisaka です。

On 2006/02/24, at 23:44, Tomio Arisaka wrote:
さて、今回話題となったものは、データ・ファイル(jpg, mov等)を装った
Shell-Scriptです。

データファイルを装ったShell-Scriptは、「usro」リソースの仕組みを利用
してTerminal.appを起動アプリとしたものでした。
それでは、データファイルに偽装できるのはShell-Scriptだけでしょうか。
残念ながら、他にも存在します。
例えば、AppleScriptの実行ファイルは、データファイル(jpgやmov等)に
偽装できます。

AppleScriptの実行ファイルには、「アプリケーション」形式と「アプリケー
ション・バンドル」形式があります。前者の例を「AS_application․jpg.app」
後者の例を「AS_app_bundle․jpg.app」とします。
そして、両方のアプリケーションに任意のアイコンを貼付けます。
ここでは、イメージデータらしいアイコンを貼付けたとします。
(貼付けたアイコンは「icns」リソースとしてResource-forkに保存されます)

このとき、以下のような問題が発生します。

(a)Finderの環境設定で「すべてのファイル拡張子を表示」が無効になって
いる場合、Finder上では拡張子の「.app」が表示されないために、アプリケー
ションがデータファイルに見えます。
		AS_application․jpg.app	--->	AS_application․jpg
		AS_app_bundle․jpg.app	--->	AS_app_bundle․jpg

(b)Finder上での表示を「アイコン」にしている場合、アプリケーション・
バンドル「AS_app_bundle․jpg.app」から拡張子「.app」を取り除いたものが
データファイルに見えます。(リスト表示やカラム表示にしている場合は
フォルダに見えます)
		AS_app_bundle․jpg

(c)アプリケーション「AS_application․jpg.app」は、拡張子「.app」を
取り除くことで、ほぼ完全にデータファイルに偽装することができます。
(勿論「情報を見る」でアプリであることを確認できます)
		AS_application․jpg

これらの偽装ファイルは「usro」リソースに依存しません。
よって、ファイルの実行属性を取り去る(chmod ugo-x)しか無いようです。
(勿論、この方法は「usro」リソースを利用したShell-Scriptにも有効です)


MacのようなGUIでは、アプリケーションもデータもダブルクリックという
同一の起動動作を許すため、アプリケーションをデータに偽装する問題
からは避けられないような気がします。
��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������r���������������������������������m�����~�)"��v�ډ�it���������������������������������������������������=����È514D�����DM<0�&���