みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Windowsのシステム文字コードについて

unicodeの制御文字RLOを挟むことによって、Windows上でファイル名を偽装できる(”aaa_txt.exe” > ”aaa_exe.txt”と見せてexeファイルをテキストファイルだと誤認させる)という記事をネットで見ました。で、怖くなってウィンドウズの文字コードがどうなっているのか調べていくと、
・内部的にはunicode
・表示は言語に合わせて(日本語なら)Shift-JIS
だと知りました。

つまり ”aaa_exe.txt”と表示されていても、本当は”aaa_txt.exe”というファイル名だから、ダブルクリックすると実行されると...
で、自分で空のファイルを作って上記のように名前を偽装してダブルクリックしてみたら、普通にテキストエディタが起動しました。。。問題ないじゃん。

ファイルをダブルクリックしたときにwindowsに渡されるファイル名は以下のどれなのでしょうか?
1. Unicodeでaaa_(RLO)txt.exe
2. Unicodeでaaa_exe.txt
3. Shift-JISでaaa_exe.txt

投稿日時 - 2016-08-02 11:20:27

QNo.9209885

暇なときに回答ください

質問者が選んだベストアンサー

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のテキストファイルなのでメモ帳が開く)

投稿日時 - 2016-08-02 12:43:10

お礼

ご回答ありがとうございます。おっしゃる通りでした。拡張子を表示させるのを忘れていました。
ついでに(RLO)を入れたファイル名で拡張子を表示したりしなかったりしてみると「拡張子とその手前」の”exe.”が出たり消えたりするのでなるほどなと思いました。

これは気を付けなければいけませんね。いずれにしても大変よくわかりました。ありがとうございました。

投稿日時 - 2016-08-02 13:12:50

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問