我的解码器有问题,想知道是否有人可以帮助我?
基本上,我正在尝试为我的隐写编码器构建一个解码器,编码器在声音文件中每个字节的 LSB 上放置一些消息
解码器的工作是收集这些比特并从中创建一条新消息
该代码旨在执行以下操作:
代码:全选
转到消息数组位置。
将 bitindex 设置为 0 直到 7 // (8 位到一个字节)
转到声音阵列位置
如果 soundbit 相等,则将 0 添加到新字节,否则将 1 添加到新字节的末尾
执行一次左移
递增位索引
通过使用各种printf
's,我可以告诉你它在崩溃前运行了大约 3/4 次。
希望有意义的实际循环如下所示:
{
int mIndex, sIndex, bitIndex, mask;
char *message[9];
mask = 1;
mIndex = 0;
unsigned char *soundFile = LoadWavAudioFile("boomedit.wav");
int soundFileSize = GetSizeOfWavFile();
bitIndex = 0;
for(mIndex = 0; mIndex < 8; mIndex++)//index for message
{
printf("1\n");
for(sIndex = 0; sIndex < soundFileSize; sIndex++)//index for soundfile
{
printf("2\n");
for(bitIndex = 0; bitIndex < 8;)
{
printf("3\n");
int test;
if((soundFile[sIndex] & mask) > 0)//is message bit > 0
{
printf("++++++++++++++++\n");
*message[mIndex] = (soundFile[sIndex] | 1);//adds a one to message byte
*message[mIndex] = *message[mIndex] <<1; //shift bits 1 placce left
printf("*****************\n");
}
else
{ //no change the LSB to 0
printf("------------------\n");
*message[mIndex]= soundFile[sIndex] & 254; //adds a zero at end o
*message[mIndex] = *message[mIndex] <<1; //shifts bits 1 place to left
printf("******************\n");
}
bitIndex++;
}
}
}
printf("\n hiddden letters:%s\n", *message); //print message
printf("\nalert 5\n");
}
希望有帮助的任何事情都会有所帮助。