隐藏的密文



听说有一种软件,可以将一定的密文隐藏在图形文件中,我没有用过,不过这个想法很好,嗯……我的意思是正好作为我的练习。

于是我打开winhex,试了各种不同后缀的图形文件,发现很少有油水可以榨取:jpg和gif还说得过去,本来就是压缩过的嘛,那个bmp(dib)简直是财迷到了极点,根本没有什么地方可用。最后呢,还是发现.pcx有些地方可用,经过我一番捣鼓(说起来简单,实际耗了我好几个小时。啊?为什么是几个小时?因为我笨啊!这个都不知道。),发现文件尾有2d0h个字节可用。不要小看这七百多个字节,如果是情书,全写上肉麻的话足可以当杀伤性武器用了。不过为了避免惨剧的发生,最好还是把这类东西藏起来,藏哪儿呢?.pcx中!看我的代码:


#include<stdio.h>

class MessageInPcx

{

protected:

FILE *in, *out;

FILE *input;

long filesize(FILE *stream)

{

long curpos, length;

curpos = ftell(stream);

fseek(stream, 0L, SEEK_END);

length = ftell(stream);

fseek(stream, curpos, SEEK_SET);

return length;

}

void DoTheJob(char filename[12])

{

if((input = fopen(filename, "rb"))==NULL)

return;

for(int i=0; i<(filesize(in)-715); i++)

putc(getc(in), out);

for(i=0; i<715; i++)

{

if(!feof(input))

putc(getc(input), out);

else

putc('\0', out);

}

fcloseall();

}

public:

MessageInPcx()

{

out = fopen("out.pcx", "wb");

}

void setpcx(char filename[12])

{

in = fopen(filename, "rb");

}

void operator <<= (char filename[12])

{

DoTheJob(filename);

return;

}

};

void main()

{

MessageInPcx out;

out.setpcx("hehe.pcx");

out <<= "a.txt";

}


可以把MessageInPcx直接拿来用,编译时有一个warning,不管它!

 ​