発見!
initrd.boot のヘッダ部は、include/image.h の
typedef struct image_header { uint32_t ih_magic; /* Image Header Magic Number */ uint32_t ih_hcrc; /* Image Header CRC Checksum */ uint32_t ih_time; /* Image Creation Timestamp */ uint32_t ih_size; /* Image Data Size */ uint32_t ih_load; /* Data Load Address */ uint32_t ih_ep; /* Entry Point Address */ uint32_t ih_dcrc; /* Image Data CRC Checksum */ uint8_t ih_os; /* Operating System */ uint8_t ih_arch; /* CPU architecture */ uint8_t ih_type; /* Image Type */ uint8_t ih_comp; /* Compression Type */ uint8_t ih_name[IH_NMLEN]; /* Image Name */ } image_header_t;これのよう。
-bash-2.05b$ cd tools/ -bash-2.05b$ ls Makefile bddb easylogo envcrc.c gen_eth_addr.c img2srec.c logos mpc86x_clk.c scripts Makefile.win32 bmp_logo.c env gdb img2brec.sh inca-swap-bytes.c mkimage.c ncb.c updater -bash-2.05b$ make mkimage Makefile:107: /config.mk: そのようなファイルやディレクトリはありません ln -s ../common/environment.c environment.c ln -s ../lib_generic/crc32.c crc32.c M -Wall -pedantic -idirafter ../include -DTEXT_BASE= -DUSE_HOSTCC environment.c img2srec.c mkimage.c crc32.c envcrc.c gen_e th_addr.c bmp_logo.c > .depend /bin/sh: line 1: M: command not found make: [.depend] エラー 127 (無視されました) make: *** ターゲット `/config.mk' を make するルールがありません。中止。 -bash-2.05b$そらあかんわな。
Makefile の 107 行目は、
-bash-2.05b$ head -107 Makefile | tail -1 include $(TOPDIR)/config.mk -bash-2.05b$と TOPDIR が使われていて、それが未定義のよう。
-bash-2.05b$ cd .. -bash-2.05b$ TOPDIR=`pwd` -bash-2.05b$ export TOPDIR -bash-2.05b$ cd tools/ -bash-2.05b$ !make make mkimage gcc -g -Wall -pedantic -idirafter ../include -DTEXT_BASE= -DUSE_HOSTCC -O -c mkimage.c gcc -g -Wall -pedantic -idirafter ../include -DTEXT_BASE= -DUSE_HOSTCC -O -c crc32.c gcc -Wall -pedantic -idirafter ../include -DTEXT_BASE= -DUSE_HOSTCC -O -o mkimage mkimage.o crc32.o strip mkimage -bash-2.05b$いけたみたい
-bash-2.05b$ ./mkimage -l /usr/local/BootServer/tftpboot_1.00/firm/initrd.boot Image Name: RAM Disk Created: Mon Oct 17 20:12:04 2005 Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 7255111 Bytes = 7085.07 kB = 6.92 MB Load Address: 0x00000000 Entry Point: 0x00000000 -bash-2.05b$ ./mkimage -l /usr/local/BootServer/tftpboot/firm/initrd.boot Image Name: RAM Disk Created: Sat Dec 17 16:43:56 2005 Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 7248200 Bytes = 7078.32 kB = 6.91 MB Load Address: 0x00000000 Entry Point: 0x00000000 -bash-2.05b$ということで、mkimage で間違いない。
RAMDisk Image を作って mkimage すれば PC-P1LAN の initrd をいじくれそう。
← initrd.boot のヘッダ部 |
ハックの記録 PC-P1LAN をハックしよう |
→ 最初の一歩 |