静静听这么好听的歌

可以拿到LSB.txt。。。。
是完全不会的题。
一番查找发现是利用matlab写的。
用matlab编写逆向脚本。

fid=fopen('33.wav','rb');
a=fread(fid,inf,'uchar');
n=length(a)-44;
fclose(fid);
io=imread('kkk.bmp');
[row col]=size(io);
wi=io(:);
if row*col>n
 error('文件太小');
end
watermarkedaudio=a;
watermarklength=row*col;
for k=1:row*col
 watermarkedaudio(44+k)=bitset(watermarkedaudio(44+k),1,wi(k));
end
figure;
subplot(2,1,1);plot(a);
subplot(2,1,2);plot(watermarkedaudio);
fid = fopen('2.wav', 'wb');
fwrite(fid,watermarkedaudio,'uchar');
fclose(fid);

上面是原脚本,把一个图片写到了。音频中。

clc;
clear;

marklength=38800;
row=388;                   
fid=fopen('静静听这么好听的歌.wav','r');
oa=fread(fid,inf,'uint8');
status=fseek(fid,44,'bof');
a=fread(fid,marklength,'uint8');
for i=1:marklength
    w1(i)=bitget(a(i),1);
end
w1=w1';
m=Vector2Matrix(w1,row);
imwrite(m,'flag.bmp','bmp');
figure;
imshow('flag.bmp');title('extracted watermark');
function A=Vector2Matrix(oi,row)
%将数组转换成二位数组,row为行数
cl=length(oi)/row;
A=zeros(row,cl);
for i=1:row
    for j=1:cl
        A(i,j)=oi(cl*(i-1)+j);
    end
end

推荐文章