MM,为何不把 grub.mbr 这446个字节做入EXE中,这样可以防止 grub.mbr 这个文件丢失或破坏,同时工具更简洁(只需)一个EXE文件。这446个字节是:
const BYTE Grub_MBR[] =
{
0xEB,0x06,0x80,0x05,0x20,0x39,0xFF,0xFF,0xE8,0x00,0x00,0x5B,0xC1,0xEB,0x04,0x8C,
0xC8,0x01,0xC3,0x8E,0xDB,0x53,0x6A,0x19,0xCB,0xF6,0x06,0x02,0x00,0x04,0x74,0x0F,
0x31,0xC0,0x8E,0xC0,0xBF,0xFC,0x05,0x66,0xB8,0x44,0x55,0x43,0x45,0x66,0xAB,0x68,
0x00,0x20,0x17,0xBC,0x00,0x90,0x31,0xC9,0x51,0xBA,0x80,0x00,0x52,0xB4,0x08,0xF9,
0xCD,0x13,0x5A,0x58,0x16,0x07,0x72,0x17,0x80,0xE1,0x3F,0xF9,0x74,0x11,0x91,0xB4,
0x02,0x89,0xC5,0x31,0xDB,0x41,0x52,0xF9,0xCD,0x13,0x5A,0x72,0x02,0xF6,0xDC,0x0E,
0x1F,0x9C,0x31,0xF6,0x31,0xFF,0xB9,0xDF,0x00,0xFC,0xF3,0xA5,0xBB,0xFC,0x19,0x66,
0xB8,0x47,0x52,0x55,0xAA,0xEA,0x7A,0x00,0x00,0x20,0x16,0x1F,0x66,0x39,0x07,0x75,
0x54,0x9D,0x72,0x3C,0x0E,0x1F,0xAD,0x88,0xE6,0xAD,0x89,0xC1,0x24,0x3F,0x74,0x1F,
0x29,0xE8,0x48,0xF6,0xD8,0xBF,0x03,0x00,0xB4,0x02,0x68,0x00,0x0D,0x07,0x31,0xDB,
0x60,0xCD,0x13,0x61,0x73,0x0A,0x60,0x31,0xC0,0xCD,0x13,0x61,0x4F,0x75,0xE9,0xF9,
0xE8,0xC5,0x09,0x77,0x28,0x83,0xC6,0x0C,0x81,0xFE,0xFE,0x01,0x72,0xC6,0x77,0x15,
0xBE,0xB2,0x31,0xB4,0x08,0x99,0x52,0xCD,0x13,0x58,0x72,0x09,0x99,0x91,0x24,0x3F,
0x74,0x03,0x41,0xEB,0xC0,0xBE,0x51,0x01,0xE8,0x6F,0x00,0xEB,0xFE,0x1E,0x06,0x66,
0x60,0x8C,0xC3,0xFA,0x0F,0x01,0x16,0x60,0x0A,0x0F,0x20,0xC0,0x0C,0x01,0x0F,0x22,
0xC0,0xBE,0x08,0x00,0x8E,0xC6,0x66,0x31,0xF6,0x66,0x31,0xFF,0x66,0xB9,0x00,0x24,
0x00,0x00,0xFC,0xF3,0x66,0xA5,0xBE,0x10,0x00,0x8E,0xC6,0x24,0xFE,0x0F,0x22,0xC0,
0x8E,0xC3,0xB9,0x00,0x02,0x31,0xF6,0x56,0xBF,0x00,0x7C,0x57,0x06,0x1F,0x56,0x07,
0xFC,0xF3,0xA5,0xBF,0x10,0x7E,0xBE,0x00,0x0A,0xB9,0x1E,0x00,0xFC,0xF3,0x66,0x2E,
0xA5,0x06,0x1F,0xFB,0xCB,0xFA,0xB8,0x00,0x20,0x8E,0xD0,0xBC,0xDC,0x8F,0xFB,0x66,
0x61,0x07,0x1F,0xE9,0x6F,0xFF,0xB4,0x0E,0xCD,0x10,0x2E,0xAC,0x3C,0x00,0x75,0xF6,
0xC3,0x0D,0x0A,0x4D,0x69,0x73,0x73,0x69,0x6E,0x67,0x20,0x4D,0x42,0x52,0x2D,0x68,
0x65,0x6C,0x70,0x65,0x72,0x2E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9A,0x16,0xFB,0x3B,0x00,0x00,
};
你可以再加上适当的校验(如奇偶校验或MD5校验或总和校验)这446个字节,写MBR之前先校验一下再将这446个字节写入硬盘。
一般少量重要的数据本人习惯用上面的方式做到EXE,大量不重要的数据就放到资源文件中。
[ 本帖最后由 lxl1638 于 2007-12-17 12:41 AM 编辑 ] |