Advertisement
Guest User

Untitled

a guest
Aug 21st, 2014
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.23 KB | None | 0 0
  1. byte[] zero = new byte[16] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
  2.                
  3. // sprawdzanie, czy za zerami jest ramdisk czy pozostalosc zImage
  4.                 fs.Seek(boz_offset, SeekOrigin.Begin); //boz (bunch of zeroes)
  5.                 byte[] tmp = new byte[2];
  6.                 byte[] gz_magic = new byte[2] { 0x1F, 0x8B };
  7.                 int after_zero_offset = boz_offset;
  8.                 int last_offset = 0;//Convert.ToInt32(fs.Position);
  9.                 int check_cycle = 1;
  10.  
  11.                 do
  12.                 {
  13.                     if (last_offset == after_zero_offset)
  14.                     {
  15.                         do
  16.                         {
  17.                             fs.Read(read_bytes, 0, 16);
  18.                             if (read_bytes.SequenceEqual(zero))
  19.                             {
  20.                                 last_offset = boz_offset;
  21.                                 break;
  22.                             }
  23.                             boz_offset = last_offset + 16;
  24.                             fs.Seek(boz_offset, SeekOrigin.Begin);
  25.                         }
  26.                         while (!read_bytes.SequenceEqual(zero));
  27.                     }
  28.                     do
  29.                     {
  30.                         fs.Read(read_bytes, 0, 16);
  31.                         if (!read_bytes.SequenceEqual(zero))
  32.                         {
  33.                             last_offset = after_zero_offset;
  34.                             break;
  35.                         }
  36.                         if (check_cycle == 1)
  37.                         {
  38.                             after_zero_offset = after_zero_offset + 16;
  39.                         }
  40.                         else
  41.                         {
  42.                             after_zero_offset = last_offset + 16;
  43.                         }
  44.                         fs.Seek(after_zero_offset, SeekOrigin.Begin);
  45.                     }
  46.                     while (read_bytes.SequenceEqual(zero));
  47.  
  48.                     fs.Seek(last_offset, SeekOrigin.Begin);
  49.                     fs.Read(tmp, 0, 2);
  50.  
  51.                     check_cycle = check_cycle + 1;
  52.                 }
  53.                 while (!tmp.SequenceEqual(gz_magic));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement