- ベストアンサー
Windowsのシステム文字コードについて
- Windows上でファイル名を偽装することができるUnicodeの制御文字RLOについて
- Windowsの文字コードは内部的にはUnicodeであり、表示は言語に合わせてShift-JISであることが分かった
- ファイルをダブルクリックしたときにWindowsに渡されるファイル名についての疑問
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
1.ですね。 >(”aaa_txt.exe” > ”aaa_exe.txt”と見せてexeファイルをテキストファイルだと誤認させる)という記事をネットで見ました。 ここで「認識」しているのは、人間です。 人間が、メールなどに添付されてきた「aaa_(RLO)txt.exe」を、「aaa_exe.txt」だと思って、メモ帳で開こうと、そのままダブルクリックしてしまうと。 でもWindowsにとっては、「aaa_(RLO)txt.exe」は、拡張子exeの実行ファイルとして認識するので、そのプログラムを実行しようとます。 その実行ファイルが、マルウェアである可能性があるという訳です。 >自分で空のファイルを作って上記のように名前を偽装してダブルクリックしてみたら、 >普通にテキストエディタが起動しました。。。問題ないじゃん。 それは「exeをtxtに偽装した」のではなく「txtをexeに偽装した」、あるいは拡張子が表示されていないのではありませんか? 中身が空のexeファイルを作成した場合、ダブルクリックすると「(ファイル名)は有効なWin32アプリケーションではありません」と言うexe実行エラーが出ます。 そのエラーが出ることを確認し、RLOを挿入後ダブルクリックしても、メモ帳は開くことなく、やはりexe実行エラーが出ます。 ただしダイアログのファイル名表示中にRLOが入るので、 「(ファイル名)はでンョシーケリプア 23niW な効有は exe.txt ありません。」と言うような表示になります。(※私はWindows7上で実験) きちんと拡張子を表示すれば、あなたが実験でに作ったファイル名は「aaa_(RLO)txt.exe.txt」であって、表示上は「aaa_exe.txt」になっている、と言うことのような気がします。 (偽装しようがしまいが、拡張txtのテキストファイルなのでメモ帳が開く)
お礼
ご回答ありがとうございます。おっしゃる通りでした。拡張子を表示させるのを忘れていました。 ついでに(RLO)を入れたファイル名で拡張子を表示したりしなかったりしてみると「拡張子とその手前」の”exe.”が出たり消えたりするのでなるほどなと思いました。 これは気を付けなければいけませんね。いずれにしても大変よくわかりました。ありがとうございました。