Advertisement
Guest User

Untitled

a guest
Oct 19th, 2016
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Imports System.IO
  2.  
  3. Module Module1
  4.  
  5.     Sub Main()
  6.         Using reader As BinaryReader = New BinaryReader(File.Open("C:\param.sfo", FileMode.Open))
  7.             Dim sfoMagic As Integer = reader.ReadInt32() 'PSF
  8.            Dim sfoVersion As Integer = reader.ReadInt32() 'Version
  9.            Dim sfoKeyofs As Integer = reader.ReadInt32() 'Key table start offset
  10.            Dim sfoValofs As Integer = reader.ReadInt32() 'Data table start offset
  11.            Dim sfoCount As Integer = reader.ReadInt32() 'Index table entry count
  12.            For i As Integer = 0 To sfoCount - 1
  13.                 Dim sfoNameofs As Integer = reader.ReadInt16()
  14.                 Dim sfoFmt As Integer = reader.ReadInt16()
  15.                 Dim sfoValsize As Integer = reader.ReadInt32()
  16.                 Dim sfoTotalsize As Integer = reader.ReadInt32()
  17.                 Dim sfoDataofs As Integer = reader.ReadInt32()
  18.                 Dim curOfs As Integer = reader.BaseStream.Position
  19.                 reader.BaseStream.Seek(sfoKeyofs + sfoNameofs, SeekOrigin.Begin)
  20.                 Dim c As Byte = reader.ReadByte()
  21.                 Dim name As String = ""
  22.                 Dim value As String = ""
  23.                 While c <> 0
  24.                     name &= Chr(c)
  25.                     c = reader.ReadByte()
  26.                 End While
  27.                 If name = "TITLE_ID" Then
  28.                     Console.WriteLine(name)
  29.                     reader.BaseStream.Seek(sfoValofs + sfoDataofs, SeekOrigin.Begin)
  30.                     For j As Integer = 0 To sfoValsize - 1
  31.                         value &= Chr(reader.ReadByte())
  32.                     Next
  33.                     Console.WriteLine(value)
  34.                 End If
  35.                 If name = "TITLE" Then
  36.                     Console.WriteLine(name)
  37.                     reader.BaseStream.Seek(sfoValofs + sfoDataofs, SeekOrigin.Begin)
  38.                     For j As Integer = 0 To sfoValsize - 1
  39.                         value &= Chr(reader.ReadByte())
  40.                     Next
  41.                     Console.WriteLine(value)
  42.                 End If
  43.                 If name = "CONTENT_ID" Then
  44.                     Console.WriteLine(name)
  45.                     reader.BaseStream.Seek(sfoValofs + sfoDataofs, SeekOrigin.Begin)
  46.                     For j As Integer = 0 To sfoValsize - 1
  47.                         value &= Chr(reader.ReadByte())
  48.                     Next
  49.                     Console.WriteLine(value)
  50.                 End If
  51.  
  52.                 reader.BaseStream.Seek(curOfs, SeekOrigin.Begin)
  53.             Next
  54.         End Using
  55.     End Sub
  56.  
  57. End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement