Esempio n. 1
0
        private void getDirectories(TreeNode tn)
        {
            int num = 0;

            while (true)
            {
                this.br.BaseStream.Seek(this.pirs_start + (long)(num * 64), SeekOrigin.Begin);
                MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry();
                MainForm.PirsEntry entry     = this.getEntry();
                if (!(entry.Filename.Trim() == ""))
                {
                    if (entry.Size == 0 && entry.Cluster == 0 && (int)entry.Parent == (int)Convert.ToUInt16(tn.Tag))
                    {
                        TreeNode treeNode = new TreeNode(entry.Filename);
                        treeNode.Tag         = (object)num;
                        treeNode.ToolTipText = string.Format("0x{0:X4}", treeNode.Tag);
                        tn.Nodes.Add(treeNode);
                        this.getDirectories(treeNode);
                    }
                    ++num;
                }
                else
                {
                    break;
                }
            }
        }
Esempio n. 2
0
        private void extractFolder(ushort tag, string foldername, string pathname)
        {
            ushort tag1 = (ushort)0;

            while (true)
            {
                this.br.BaseStream.Seek(MainForm.PIRS_BASE + this.pirs_offset + (long)((int)tag1 * 64), SeekOrigin.Begin);
                MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry();
                pirsEntry = this.getEntry();
                if (!(pirsEntry.Filename.Trim() == ""))
                {
                    if (pirsEntry.Cluster == 0 && pirsEntry.Size == 0 && (int)pirsEntry.Parent == (int)tag)
                    {
                        this.extractFolder(tag1, pirsEntry.Filename, pathname + "\\" + foldername);
                    }
                    else if (pirsEntry.Cluster != 0 && (int)pirsEntry.Parent == (int)tag)
                    {
                        this.extractFile((long)pirsEntry.Cluster, (long)pirsEntry.Size, pathname + "\\" + foldername + "\\" + pirsEntry.Filename);
                    }
                    ++tag1;
                }
                else
                {
                    break;
                }
            }
        }
Esempio n. 3
0
        private void getFiles(TreeNode tn)
        {
            int num1 = 0;

            while (true)
            {
                this.br.BaseStream.Seek(this.pirs_start + (long)(num1 * 64), SeekOrigin.Begin);
                MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry();
                MainForm.PirsEntry entry     = this.getEntry();
                if (!(entry.Filename.Trim() == ""))
                {
                    if (entry.Cluster == 0 && entry.Size == 0 && (int)entry.Parent == (int)Convert.ToUInt16(tn.Tag))
                    {
                        ListViewItem listViewItem = new ListViewItem();
                        listViewItem.Text = entry.Filename;
                        listViewItem.SubItems.Add(entry.Size.ToString());
                        listViewItem.SubItems.Add(entry.Cluster.ToString());
                        listViewItem.SubItems.Add(entry.DateTime1.ToString());
                        listViewItem.SubItems.Add("");
                        listViewItem.ImageIndex = 0;
                        listViewItem.Tag        = (object)num1;
                        this.listView.Items.Add(listViewItem);
                    }
                    ++num1;
                }
                else
                {
                    break;
                }
            }
            int num2 = 0;

            while (true)
            {
                this.br.BaseStream.Seek(this.pirs_start + (long)(num2 * 64), SeekOrigin.Begin);
                MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry();
                pirsEntry = this.getEntry();
                if (!(pirsEntry.Filename.Trim() == ""))
                {
                    if (pirsEntry.Cluster != 0 && (int)pirsEntry.Parent == (int)Convert.ToUInt16(tn.Tag))
                    {
                        ListViewItem listViewItem = new ListViewItem();
                        listViewItem.Text = pirsEntry.Filename;
                        listViewItem.SubItems.Add(pirsEntry.Size.ToString());
                        listViewItem.SubItems.Add(pirsEntry.Cluster.ToString());
                        listViewItem.SubItems.Add(pirsEntry.DateTime1.ToString());
                        listViewItem.SubItems.Add("");
                        listViewItem.ImageIndex  = 1;
                        listViewItem.ToolTipText = string.Format("Offset : 0x{0:X8}", (object)this.getOffset((long)pirsEntry.Cluster));
                        this.listView.Items.Add(listViewItem);
                    }
                    ++num2;
                }
                else
                {
                    break;
                }
            }
        }
        public void GetSongDta(string path)
        {
            int num1 = 0;

            while (true)
            {
                this.br.BaseStream.Seek(this.pirs_start + (long)(num1 * 64), SeekOrigin.Begin);
                MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry();
                MainForm.PirsEntry entry     = this.getEntry();
                if (entry.Filename == "songs.dta")
                {
                    var filename = Path.Combine(path, Guid.NewGuid().ToString());
                    extractFile(entry.Cluster, entry.Size, filename);
                    return;
                }

                if ((entry.Filename.Trim() == ""))
                {
                    break;
                }

                ++num1;
            }

            int num2 = 0;

            while (true)
            {
                this.br.BaseStream.Seek(this.pirs_start + (long)(num2 * 64), SeekOrigin.Begin);
                MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry();
                pirsEntry = this.getEntry();
                if (pirsEntry.Filename == "songs.dta")
                {
                    var filename = Path.Combine(path, Guid.NewGuid().ToString());
                    extractFile(pirsEntry.Cluster, pirsEntry.Size, filename);
                    return;
                }

                if ((pirsEntry.Filename.Trim() == ""))
                {
                    break;
                }

                ++num2;
            }
        }
Esempio n. 5
0
 private MainForm.PirsEntry getEntry()
 {
     MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry();
     pirsEntry.Filename = this.wr.readString(this.br, 38U);
     if (pirsEntry.Filename.Trim() == "")
     {
         return(pirsEntry);
     }
     pirsEntry.Unknow    = this.wr.readInt32(this.br);
     pirsEntry.BlockLen  = this.wr.readInt32(this.br);
     pirsEntry.Cluster   = this.br.ReadInt32() >> 8;
     pirsEntry.Parent    = this.wr.readUInt16(this.br);
     pirsEntry.Size      = this.wr.readInt32(this.br);
     pirsEntry.DateTime1 = this.dosDateTime(this.wr.readInt32(this.br));
     pirsEntry.DateTime2 = this.dosDateTime(this.wr.readInt32(this.br));
     return(pirsEntry);
 }
        public void GetSongDta(string path)
        {
            int num1 = 0;
              while (true)
              {
              this.br.BaseStream.Seek(this.pirs_start + (long)(num1 * 64), SeekOrigin.Begin);
              MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry();
              MainForm.PirsEntry entry = this.getEntry();
              if (entry.Filename == "songs.dta")
              {
                  var filename = Path.Combine(path, Guid.NewGuid().ToString());
                  extractFile(entry.Cluster, entry.Size, filename);
                  return;
              }

              if ((entry.Filename.Trim() == ""))
              {
                  break;
              }

              ++num1;
              }

              int num2 = 0;
              while (true)
              {
              this.br.BaseStream.Seek(this.pirs_start + (long) (num2*64), SeekOrigin.Begin);
              MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry();
              pirsEntry = this.getEntry();
              if (pirsEntry.Filename == "songs.dta")
              {
                  var filename = Path.Combine(path, Guid.NewGuid().ToString());
                  extractFile(pirsEntry.Cluster, pirsEntry.Size, filename);
                  return;
              }

              if ((pirsEntry.Filename.Trim() == ""))
              {
                  break;
              }

              ++num2;
              }
        }
Esempio n. 7
0
 private void getFiles(TreeNode tn)
 {
     int num1 = 0;
       while (true)
       {
     this.br.BaseStream.Seek(this.pirs_start + (long) (num1 * 64), SeekOrigin.Begin);
     MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry();
     MainForm.PirsEntry entry = this.getEntry();
     if (!(entry.Filename.Trim() == ""))
     {
       if (entry.Cluster == 0 && entry.Size == 0 && (int) entry.Parent == (int) Convert.ToUInt16(tn.Tag))
       {
     ListViewItem listViewItem = new ListViewItem();
     listViewItem.Text = entry.Filename;
     listViewItem.SubItems.Add(entry.Size.ToString());
     listViewItem.SubItems.Add(entry.Cluster.ToString());
     listViewItem.SubItems.Add(entry.DateTime1.ToString());
     listViewItem.SubItems.Add("");
     listViewItem.ImageIndex = 0;
     listViewItem.Tag = (object) num1;
     this.listView.Items.Add(listViewItem);
       }
       ++num1;
     }
     else
       break;
       }
       int num2 = 0;
       while (true)
       {
     this.br.BaseStream.Seek(this.pirs_start + (long) (num2 * 64), SeekOrigin.Begin);
     MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry();
     pirsEntry = this.getEntry();
     if (!(pirsEntry.Filename.Trim() == ""))
     {
       if (pirsEntry.Cluster != 0 && (int) pirsEntry.Parent == (int) Convert.ToUInt16(tn.Tag))
       {
     ListViewItem listViewItem = new ListViewItem();
     listViewItem.Text = pirsEntry.Filename;
     listViewItem.SubItems.Add(pirsEntry.Size.ToString());
     listViewItem.SubItems.Add(pirsEntry.Cluster.ToString());
     listViewItem.SubItems.Add(pirsEntry.DateTime1.ToString());
     listViewItem.SubItems.Add("");
     listViewItem.ImageIndex = 1;
     listViewItem.ToolTipText = string.Format("Offset : 0x{0:X8}", (object) this.getOffset((long) pirsEntry.Cluster));
     this.listView.Items.Add(listViewItem);
       }
       ++num2;
     }
     else
       break;
       }
 }
Esempio n. 8
0
 private MainForm.PirsEntry getEntry()
 {
     MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry();
       pirsEntry.Filename = this.wr.readString(this.br, 38U);
       if (pirsEntry.Filename.Trim() == "")
     return pirsEntry;
       pirsEntry.Unknow = this.wr.readInt32(this.br);
       pirsEntry.BlockLen = this.wr.readInt32(this.br);
       pirsEntry.Cluster = this.br.ReadInt32() >> 8;
       pirsEntry.Parent = this.wr.readUInt16(this.br);
       pirsEntry.Size = this.wr.readInt32(this.br);
       pirsEntry.DateTime1 = this.dosDateTime(this.wr.readInt32(this.br));
       pirsEntry.DateTime2 = this.dosDateTime(this.wr.readInt32(this.br));
       return pirsEntry;
 }
Esempio n. 9
0
 private void getDirectories(TreeNode tn)
 {
     int num = 0;
       while (true)
       {
     this.br.BaseStream.Seek(this.pirs_start + (long) (num * 64), SeekOrigin.Begin);
     MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry();
     MainForm.PirsEntry entry = this.getEntry();
     if (!(entry.Filename.Trim() == ""))
     {
       if (entry.Size == 0 && entry.Cluster == 0 && (int) entry.Parent == (int) Convert.ToUInt16(tn.Tag))
       {
     TreeNode treeNode = new TreeNode(entry.Filename);
     treeNode.Tag = (object) num;
     treeNode.ToolTipText = string.Format("0x{0:X4}", treeNode.Tag);
     tn.Nodes.Add(treeNode);
     this.getDirectories(treeNode);
       }
       ++num;
     }
     else
       break;
       }
 }
Esempio n. 10
0
 private void extractFolder(ushort tag, string foldername, string pathname)
 {
     ushort tag1 = (ushort) 0;
       while (true)
       {
     this.br.BaseStream.Seek(MainForm.PIRS_BASE + this.pirs_offset + (long) ((int) tag1 * 64), SeekOrigin.Begin);
     MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry();
     pirsEntry = this.getEntry();
     if (!(pirsEntry.Filename.Trim() == ""))
     {
       if (pirsEntry.Cluster == 0 && pirsEntry.Size == 0 && (int) pirsEntry.Parent == (int) tag)
     this.extractFolder(tag1, pirsEntry.Filename, pathname + "\\" + foldername);
       else if (pirsEntry.Cluster != 0 && (int) pirsEntry.Parent == (int) tag)
     this.extractFile((long) pirsEntry.Cluster, (long) pirsEntry.Size, pathname + "\\" + foldername + "\\" + pirsEntry.Filename);
       ++tag1;
     }
     else
       break;
       }
 }