Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- byte[] zero = new byte[16] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
- // sprawdzanie, czy za zerami jest ramdisk czy pozostalosc zImage
- fs.Seek(boz_offset, SeekOrigin.Begin); //boz (bunch of zeroes)
- byte[] tmp = new byte[2];
- byte[] gz_magic = new byte[2] { 0x1F, 0x8B };
- int after_zero_offset = boz_offset;
- int last_offset = 0;//Convert.ToInt32(fs.Position);
- int check_cycle = 1;
- do
- {
- if (last_offset == after_zero_offset)
- {
- do
- {
- fs.Read(read_bytes, 0, 16);
- if (read_bytes.SequenceEqual(zero))
- {
- last_offset = boz_offset;
- break;
- }
- boz_offset = last_offset + 16;
- fs.Seek(boz_offset, SeekOrigin.Begin);
- }
- while (!read_bytes.SequenceEqual(zero));
- }
- do
- {
- fs.Read(read_bytes, 0, 16);
- if (!read_bytes.SequenceEqual(zero))
- {
- last_offset = after_zero_offset;
- break;
- }
- if (check_cycle == 1)
- {
- after_zero_offset = after_zero_offset + 16;
- }
- else
- {
- after_zero_offset = last_offset + 16;
- }
- fs.Seek(after_zero_offset, SeekOrigin.Begin);
- }
- while (read_bytes.SequenceEqual(zero));
- fs.Seek(last_offset, SeekOrigin.Begin);
- fs.Read(tmp, 0, 2);
- check_cycle = check_cycle + 1;
- }
- while (!tmp.SequenceEqual(gz_magic));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement