ファイルにファイルを埋め込むにはどうしたらいいんでしょうか。
また、埋め込んだファイルを取り出すにはどうしたらいいんでしょうか。
難しい質問かもしれませんが教えていただければ嬉しいです。
APIを使ってもかまいません。
> ファイルにファイルを埋め込むにはどうしたらいいんでしょうか。
> また、埋め込んだファイルを取り出すにはどうしたらいいんでしょうか。
具体的にどのようなことがしたいのでしょうか?
また、似たようなアプリケーションとか例をあげれたらあげてください。
# 2ファイルを1ファイルにするとかそのようなことなのか?
http://sapporo.cool.ne.jp/dsgdsrg/densi.lzh
↑こんな感じです。
お願いします。
> http://sapporo.cool.ne.jp/dsgdsrg/densi.lzh
> ↑こんな感じです。
一応みてみましたが、私のOSがXpなので文字化けして何がなんだかわかりません。
お読みください.txt
の
> ■内容
> どんなファイルでもファイルを埋め込む事ができます。
> ただし理論上ですが・・・(笑
で、理論上といっているのでそのように自分で考えてファイルを埋め込んでいるように
みせているだけでしょう。
# もちろんそんなAPIないと思うけど。
自分なりにファイルの形式のルールを決めて保存すればいいのかと思います。
> 一応みてみましたが、私のOSがXpなので文字化けして何がなんだかわかりません。
Lhasaでは解凍できませんでした。
ただ,Microsoft圧縮(LZH形式)フォルダとして開くことが出来たので実行してみました。
> で、理論上といっているのでそのように自分で考えてファイルを埋め込んでいるように
> みせているだけでしょう。
まさにその通りです。
ファイル名が含まれ,さらにバイナリによる分離ポイントがあって,
元ファイルがそのまま,埋め込んだファイルは何らかの方法で符号化されていました。
> ファイル名が含まれ,さらにバイナリによる分離ポイントがあって,
> 元ファイルがそのまま,埋め込んだファイルは何らかの方法で符号化されていました。
それでもいいので教えください。
> それでもいいので教えください。
すこしはご自分で考えてみてはいかかがでしょうか?
プログラミングとはそういうものなのでしょう。
少しヒントだけ。
単にファイルAにファイルBの内容を追記するだけだと、ドコから
ファイルBの内容なのかわかりません。
では、どうすればそれがわかるようになりますか?
また、その情報はどこに入れるべきでしょうか?
例)
ファイルA.txt
--------------------------------
aaaaaaaaaaaaaaa
bbbbbbbbbbbbb
--------------------------------
ファイルB.txt
--------------------------------
aaaaaaaaaaa
bbbbbbbbbbbbb
--------------------------------
↓
作成したファイル
--------------------------------
aaaaaaaaaaaaaaa
bbbbbbbbbbbbbaaaaaaaaaaa
bbbbbbbbbbbbb
--------------------------------
これだとドコからファイルBの内容が始まるかわからない!
OLE の構造化ストレージを使うのが楽かも。
NT ならサブストリームって手もある。
ただ、あれか? いわゆる偽装ツールを作りたいってことなのか?
例えば、WAVE ファイルに機密ファイルを隠して、WAVE の方は普通に聞ける、みたいな。
>>例えば、WAVE ファイルに機密ファイルを隠して、WAVE の方は普通に聞ける、みたいな。
そうそう、そういうことです。
ステガノグラフィがやりたいのですか?
単純な方法としては,埋め込む先はPCM形式のWAVEファイルやフルカラー画像ファイルにして,
人の耳や目では気付かないほどの差でしかない,下位の数ビットに値を埋め込む,というのがあります。
# というか,基本的な原理な気もしますが……。
ビットマップファイルの場合、あるビットマップファイルの後に適当なデータをくっつけても、WinXPでエクスプローラからダブルクリックでは表示されました。
ヘッダにデータ長が入っていて、そのデータ長を参照して処理をするプログラムであれば、おそらくほかのデータであっても同様なことができると思います。
ただし、YuOさんの言っている「ステガノグラフィ」(電子透かしのことでしょうか?)のように、見つけづらいといった特徴はまったくありませんので。
> ヘッダにデータ長が入っていて、そのデータ長を参照して処理をするプログラムであれば、おそらくほかのデータであっても同様なことができると思います。
ビットマップだと、
・ヘッダの後、イメージデータの前
・各行を4の倍数バイトにそろえるためのパディングの中
・RLE 圧縮で読み飛ばしモードになっている所
とかに埋め込めそう。
LZH とか EXE も隙間が多そうだね。
> 見つけづらいといった特徴はまったくありませんので。
後ろにくっつけるだけよりは見つかりにくいと思うけど、電子透かしって分けには行かないな。
ツイート | ![]() |