• ベストアンサー

NTFS 代替データストリームを検出

windows xpやvistaでファイル名を指定してそのファイルのNTFS代替データストリームを検出(名前を取得する)するAPI関数があったら教えてください。

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

  • ベストアンサー
回答No.1

まず,2003/Vista以降についてはそのものとなるAPIがあります。 MSDN: FindFirstStreamW Function (Windows) http://msdn.microsoft.com/en-us/library/aa364424.aspx MSDN: FindNextStreamW Function (Windows) http://msdn.microsoft.com/en-us/library/aa364430.aspx MSDN: FindClose Function (Windows) http://msdn.microsoft.com/en-us/library/aa364413.aspx MSDN: WIN32_FIND_STREAM_DATA Structure (Windows) http://msdn.microsoft.com/en-us/library/aa365741.aspx 使い方はFindFirstFile/FindNextFile/FindCloseの流れと同じです。 ただし,APIの名称を見てわかる通り,W系しかないため,A系の中で使う場合は注意が必要です。 次に,XPおよびそれ以前についてですが,直接的なAPIは存在しません。 Backup APIを使って調べる事になります。 MSDN: プログラマから見た NTFS 2000 Part1: ストリームとハード リンク http://msdn.microsoft.com/ja-jp/library/ms810604.aspx MSDN: BackupRead Function (Windows) http://msdn.microsoft.com/en-us/library/aa362509.aspx MSDN: BackupSeek Function (Windows) http://msdn.microsoft.com/en-us/library/aa362510.aspx MSDN: WIN32_STREAM_ID Structure (Windows) http://msdn.microsoft.com/en-us/library/aa362667.aspx Backup APIに関しては,少なくともNT4時代まで遡って使う事ができます。 NT 3.51およびそれ以前は使った事がないのでわかりません。 # 上記MSDNのコミュニティによる追記では,NT 3.1まで遡れるようですが。

johnsmith_
質問者

お礼

とても詳しい情報をありがとうございます。

関連するQ&A

  • 代替データストリームのあるフォルダ・ファイルの検出

    NTFSファイルシステムであれば、フォルダやあらゆる拡張子のファイルに代替データストリームを使用することが出来ますが、 代替データストリームにマルウェアが含まれている場合、そのフォルダまたはファイルをダブルクリックで実行すると、それと同時に代替データストリーム内のマルウェアを実行させるのは容易なのでしょうか? またマルウェア対策として、パソコン内にあるフォルダ・ファイルで代替データストリームのあるものを片っ端から検出したいと考えています。 検索すると AlternateStreamView 1.30 http://blog.layer8.sh/ja/2011/04/16/%E9%80%9A%E5 … という検出ソフトが見つかりました。 このソフトで代替データストリームがマルウェアの場合であっても普通に検出できるのでしょうか? (マルウェアによって代替データストリーム部分が隠されない) 代替データストリームがマルウェアであっても適切に検出できるより良いソフトがあれば教えてください。 ファイルだけではなく、フォルダの代替データストリームも検出できるソフトです。

  • 代替データストリームのあるフォルダの検出ソフト

    代替データストリームはファイルだけではなくフォルダにも埋めることが可能ということですが ウイルス・ルートキットに感染していないxpパソコンにフォルダーを移動させて フォルダーに代替データストリーム(ADS)があるかどうか調べたいと思います。 こちらにADS検出ツールがまとめて紹介されています。 http://www.forensicfocus.com/dissecting-ntfs-hidden-streams ただ、果たしてこれらのツールはファイルだけではなく、フォルダのADSも検出できるのかが私にはわかりません。 フォルダのADSを検出できるソフトをご存知の方がいらっしゃいましたらご教示ください。

  • 複数のデータストリーム?

    MS-Word のファイル(NTFS上)をUSB メモリにコピーしたところ、 「ストリーム損失の警告:このファイルには、いくつかのデータストリームが含まれていますが、対象のボリュームはこの機能をサポートしません。そのため、データによっては保存されないものがあります。」 というメッセージが出ます。 ネットで調べると、  プログラマから見た NTFS 2000 Part1: ストリームとハード リンク  http://www.microsoft.com/japan/msdn/windows/windows2000/ntfs5.asp このページに情報が書いてありました。いまいち理解し切れてないのですが。。 今のところ、ワードのファイルをUSBメモリにコピーした後、実害はなさそうなのですが、結局のところ、 (1)気にしなくて良いのでしょうか? (2)気にすべきなのは、どのようなワードファイルを作ったときなのでしょうか? おそらくプログラマでないと分からないと思ったので、このカテゴリに出させていただきました。

  • NTFS では、フォルダーやファイルの順番を変更できないのですか。

     長らく Windows 98 を使っていましたが、今度、Windows Xp のパソコンにしたら、ファイルシステムが NTFS になっていました。いろいろとインストールしても、使い方は FAT32 とほぼ同じなので、「ま、いいか」というような感じで使っています。  私は、ファイル管理ソフトを使っているのですが、それによって、よく使うファイルやフォルダーを前のほうに配置し、すぐに必要なものがアクセスできるようにしていました。ところが NTFS では、いつも必ず名前の文字コード順に並んでしまい、順番を変更しようにも変更できません。  何とか、Xp (NTFS) でフォルダーやファイルの順番を変更したいのですが、何か名案はありませんか。  ファイルをアクセス(更新)の時間順に並べるだけでもだいぶマシです。これなら自動的にできそうです。しかし、この方法ではフォルダーは並べ替えがうまくいきません。ファイル1個ずつ指定する方式でもかまいません。

  • NTFSのwindowsXPから見えるファイルシステム

    私はNTFSでXPを使用しています。 たまに他のXP以外のHDをスレーブに繋いだりして、データーのバックアップを取ったりしています。 windows系OSにはNT・95・98・2000等々有りますが、NTFSのXPから見えないファイルシステム・OSとかありますでしょうか? 宜しくお願い致します。

  • NTFSについて

    NTFSって64bitのファイルシステムなんですか? パーティションの最大容量は2TBと聞いたことがあるんですが,そうなのですか? bigdriveに対応していればFAT16の時のように パーティションを分けると144PBまで使えるんでしょうか? また,vistaでサポートされるWinFSとNTFSって 互換性はあるんですか? 検索機能などが強化されるようですが. XPでも使えるようになるんですよね?

  • NTFSについて

    知り合いが勝手に、USBメモリーをWINDOWS98で圧縮して、ドライブをFAT32にしてしまいました。 今まではXPで使っていたのですが、「リムーバルディスクG」となっていたのが「Eのホスト」と言う名前に変っていました。 NTFSにすれば直ると聞いたのですが、どうすればNTFSに変換出来ますか? お教え下さい。

  • FAT32からNTFSへの変換方法

    XPを使用しておりFAT32からNTFSへ変換したいと思ってます。 スタート-ファイル名を指定して実行-cmd入力まではたどり着いたのですが、このあとどうやってコンバートを行えばいいのでしょうか?? convert c: FS:NTFS と入力しましたがFS:NTFSが無効なパラーメータと表示されます。

  • NTFS下のOSやデータを認識しない

    毎度お世話になります。 Windows XPを使用しているPCで、フォーマットを認識できない事象が発生しました。 お恥ずかしいことにバックアップが正常に動作していなかったので、内部のデータを何とか救出できればと思っています。お知恵をお貸しください。 モデル: Dell OptiPlex 755 OS: Windows XP Professional 32bit HDD80GB / メモリ1GB 経緯: ・30MB程度のExcelファイルを展開しようとしたところPCがフリーズしたので、強制シャットダウン。 ・その後起動しようとした際、「Error Loading Operating System」の表示が出てOSが起動しなくなる。 ・OSのディスクで修復インストールをしようとしたが、既存のWindowsを認識しない。回復コンソールでも同様。 ・OSのインストール画面に進むと、本来NTFSと表示されている部分に「不明」の文字。 ・BIOSはHDDそのものは認識している。 ・HDDを取り出してHDDケースでUSB化してデータを取り出そうとするも、「フォーマットされていません」の表示。 ・「ファイナルデータ」で読み込もうとしたが、「サポートされていない形式です」と表示される。ドライブレターのないFAT16下にあるファイルは読み込んだ(DELLのシステムファイル)。 どうも印象としては、NTFSとして認識されていないが故に、本来NTFSフォーマット下にいるはずのOSやファイルが読み込めないような印象です。 知識に乏しくこれ以上のことは試しておりませんが、なんとか内部データを救出したいと願っています。 必要な情報がありましたらご指摘ください。 よろしくお願いいたします。

  • あるディレクトリ内のファイルをファイル名でソートして取得

    _FindFirst や FindFirstFile を使用すると指定フォルダの ファイル名を順番に取得できるのですが、ファイル名でソートされていません。 ファイル名でソートして取得する関数(API)はあるのでしょうか?

専門家に質問してみよう