东京大学 情报理工学院 招生海报

看了这些帖子:

1、http://blog.csdn.net/mtawaken/article/details/8145282

2、http://bbs.saraba1st.com/2b/thread-858664-2-1.html


原图: 


图片中的0、1其实隐藏着有用的信息。

感觉灰常有意思,自己也动手跟着做着。

orc部分没做,直接拿来正确的识别结果:


文件ori 的内容如下:

00011111100010110000100000000000000000000000000000000000000000000000001000000011011011010101000011001011010011
10110000100100000000010100001111010101001100011110100001010101101010110101100000001110000000000011010100001101
10000101000100010011011010001110001000010110001100010011000110101100010011000011010010011010011000001101100010
11100000011010011010101001010111100001110100010011011001110101100000001011000011110111010010111101110010111000
11010110000001010010011000101110111111000000000011111111110000111000111101110000111000011110001100010110010011
01000011001000100110010011110011001001110010111001111101111001111010010011011110111110111001111101111111010111
11000111111000000001101100001000011110110010000001100001010100101011010010011010110011000010010010000010000010
10010100100001100011011000110010000110001101010110010001010101111001000101010010101100001100111100010011110111
10000101001010111110010000000001010000111010010001100010101101100001100110100010010011011110111111010010001000
01000110000111001011100001001100101110010000101010000101111100011100111101001111101110011011010110100000001011
10111101011101010110010010110000011011000010101111011010111010000111101101001110010110010110111001000111011011
11111110000100111110111110011110111100001100110111000001110100001001001001000001010100101100011010000101100011
00010011010110110000110011100110101001001100101001000111110000010110000000100010011011010101011100111000000100
11101011110110011001010101011001011010110111011111111010110000111010100100100110001111101011000010011100110110
10101001111011010101000111110000011110100011110110100001010101110111010101001110010001110101000101000101000001
01010010110001101011010110001100000111001001010000011000100110000110001000110010111111100101101010011110011101
10011110011000111100101110000101010101000110101101111010001000111001110100100001111110011111010101000110010101
00110010001111111011111000000100111001111001110101010001101110011000100100010110010111010011111000101100001011
11100010100010011000110110111010011001001001111011010010111000001111000011100100100100010011101011010001110010
01100101001101100001101100110000111111010010101000011010011000000111110100011000100001101010010110100110110110
01010001010000101001110011010110000101110001111010000101001011100100110100001001000001101000110101111110001010
01010000100100011000011000110110110111110100000010011110111001100000010011100100100101100010000010111111100101
10110110111000100000100010100000100001100001001110011101001000101000000110001110011000011101111100101000111101
01000011010010100100011000001000010001111011110001101010100110001111110100001101110100100001101101100010101101
11000010111011101011111111011110010000100010100101101101100100110101111000001101110010100000011100110101011000
01111011110010100000000010110111111110101010100011000010011100000110111110000000010000000000000000

每8个0或1组成一个字节。程序如下:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>


/*
 * 读取01,每8位组成一个字节。
 * gcc -Wall main.c -o main
 */

#define BITS 1

int main(int argc, char *argv[])
{
	int fdin, fdout;
	char bit;
	char byte;
	int rnum;
	int loc;

	if(argc != 3){
		fprintf(stderr, "%s <infile> <outfile>\n", argv[0]);
		exit(-1);
	}

	fdin = open(argv[1], O_RDONLY);
	if(-1 == fdin){
		perror("open infile");
		exit(-1);
	}
	fdout = open(argv[2],O_CREAT | O_RDWR);
	if(-1 == fdout){
		perror("open outfile");
		exit(-1);
	}

	loc = 7;
	byte = 0;
	while((rnum = read(fdin, &bit, BITS)) != 0){
		if( bit == '0' || bit == '1'){
			printf("get bit %c\n", bit);
			byte = byte | ((bit - '0') << (loc--));	
			if(loc < 0){
				printf("get one byte: %c, 0x%x\n", byte, byte);
				write(fdout, &byte, BITS);
				loc = 7 ;
				byte = 0;
			}
		}
	}

	close(fdin);
	close(fdout);
	return 0;
}




将上面的程序编译得: $gcc -Wall main.c -o main

然后 $ ./main ori first

得到first文件,判断first文件的类型可以用file命令。当然也可以将它的前3个字节google之。

$file first

first: gzip compressed data, from Unix, max compression

$mv first first.gz

$gzip -d first.gz 

 解压之后得到一个名为first的文件,继续判断类型

$ file first 
first: compiled Java class data, version 50.0 (Java 1.6)

可以使用jd-gui反编译次文件。

$mv first first.class

打开jd-gui,选取first.class



将first.class 该为 i.class, 然后运行:

$java i

www.i.u-tokyo.ac.jp/fun/hikari-loveletter

进入这个网页,可以听一首歌。这里就不再分析了。

详细解答在这里: http://blog.csdn.net/mtawaken/article/details/8145269

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值