0

現在、いくつかの .wav ファイルを使用してステガノグラフィーを試みています。

私がやりたいのは、サウンド ファイルを配列に開き、その配列を変更するプログラムを作成することですが、それで行き詰まっています。

現在私は持っています:

#include <stdio.h>
#include "scc110wav.h"

int main ()
{
    unsigned char *soundData = LoadWavAudioFile("3stepoct.wav");

    int byte;

    for (byte = 0; byte <= 5554944; byte++){
        printf("%d\n", soundData[byte]);
    }
}

現在できることは、配列を印刷することだけですが、配列の値を変更する方法はありません。特に配列が非常に大きいため、最終的に配列を印刷する必要がないことはわかっていますが、ファイルの感触をつかみたいので、リスニングなしで配列値をASCII値に変更できます音の変化の多くを検出します。

4

3 に答える 3

3

soundDataではないので、オペレーターをconst使用してストリームのバイトにアクセスし、このデータで必要なことを行うことができます。[]

于 2012-12-12T11:44:01.180 に答える
1

私の理解では、wav ファイルを再生できるように変更する必要がある場所が混乱しています。これが問題である場合は、以下のリンクから wave ファイル形式についてすべて学ぶことができます

Waveファイル形式についてはこちら

チャンクサイズなどに関する他の詳細をそのままにしておくことで、データ部分を変更できます。

于 2012-12-12T12:33:05.707 に答える
0

指定子を使用soundData[byte]してforループ内で を出力%dすると、 に格納されている文字の ASCII 値が出力されます。そのため、通常の配列と同様に、いつでもsoundData[byte]格納されているデータに簡単にアクセスして変更できます。配列内の変更を妨げるsoundData[byte]ものunsigned char *は何もありません。

bytefromのデータ型を変更することを検討することをお勧めします。これは、ループで使用されているintためlong long、最大ストレージ値の制限を超えているためです。したがって、基本的には何度もロールオーバーします。5554944forint

オーディオ ファイル内のデータにアクセスする方法を理解したら、入力ストリームに実装する優れたステガノグラフィ アルゴリズムを実際に確認する必要があります。最も単純なものは、LSB ベースのアルゴリズムです。

于 2012-12-12T12:33:47.930 に答える