• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook pagefor updates, or we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.)

rylCoder 2.7.0

Initiate Mage
Joined
Oct 14, 2005
Messages
2
Reaction score
1
Re: [release] rylCoder 2.7.0

Alpha, can you release Xor Keys to ROW files???

I can open, npcscript.mcf of 1753 and 2240 version, but i cant open the same file of ROW.
 
Newbie Spellweaver
Joined
Aug 31, 2007
Messages
27
Reaction score
0
Re: [release] rylCoder 2.7.0

Alpha, can you release Xor Keys to ROW files???

I can open, npcscript.mcf of 1753 and 2240 version, but i cant open the same file of ROW.

Already here, if bother to use 'Search'. Tyfix have shared them.:sneaky2:
 
Newbie Spellweaver
Joined
Jun 6, 2006
Messages
12
Reaction score
3
Re: [release] rylCoder 2.7.0

*bump*

I needed to batch convert GCMDS files, and doing it manually in rylCoder would take forever. I added some code to do this if anyone wants it...

This uses "xor.gcmds-batch-in" and xor.gcmds-batch-out" from the hackfile cfg

CRylCoder.vb
Code:
    Public Shared Sub sharedDataOverWrite(ByVal file As String)
        Dim lines As String() = {}
        If Not IO.File.Exists(file) Then Return
        Try
            lines = IO.File.ReadAllLines(file)
        Catch ex As Exception
            Return
        End Try
        For Each line As String In lines
            Try
                line = line.Trim()
                If line <> String.Empty AndAlso Not line.StartsWith("//") Then
                    Dim splice1 As String() = line.Split("=")
                    Dim splice2 As String() = splice1(0).Trim().Split(".")
                    Dim type As String = splice2(0)
                    Dim fileType As String = splice2(1)
                    Dim index As Integer = 0
                    If UBound(splice2) > 1 Then index = splice2(2)
                    Dim data As String = splice1(1).Trim()
                    Select Case fileType
                        Case "mcf"
                            If type = "xor" Then
                                CMcfCoder.xorKey = parseByteArray(data)
                            End If
                        Case "gcmds"
                            If type = "xor" Then
                                CGcmdsCoder.key = parseByteArray(data)
                            End If
                        Case "gcmds-batch-in"
                            If type = "xor" Then
                                CGcmdsCoder.batchinkey = parseByteArray(data)
                            End If
                        Case "gcmds-batch-out"
                            If type = "xor" Then
                                CGcmdsCoder.batchoutkey = parseByteArray(data)
                            End If
                        Case "gsf"
                            If type = "xor" Then
                                CGsfCoder.xorDat(index) = data
                            ElseIf type = "off" Then
                                CGsfCoder.typeCodes(index) = data
                            End If
                        Case "global"
                            If type = "usageNotice" Then
                                If Not data = "1" AndAlso Not data = "0" Then Throw New ArgumentException("Value can be 1 or 0")
                                frmNpcEdit.enableServerNotice = (data = "1")
                            ElseIf type = "syntaxHighlight" Then
                                If Not data = "1" AndAlso Not data = "0" Then Throw New ArgumentException("Value can be 1 or 0")
                                frmNpcEdit.syntaxHighlightEnabled = (data = "1")
                            End If
                    End Select
                End If
            Catch ex As Exception
                Dim sw As IO.StreamWriter = IO.File.AppendText(file)
                sw.WriteLine("//" & Date.Now.ToString())
                sw.WriteLine("//" & vbTab & "Line: " & line)
                sw.WriteLine("//" & vbTab & "Exception: " & ex.Message)
                sw.WriteLine("//" & vbTab & "Source: " & ex.StackTrace.Replace(vbNewLine, vbNewLine & "//" & vbTab & vbTab))
                sw.Flush()
                sw.Close()
            End Try
        Next
    End Sub
Public Class CGcmdsCoder

#Region "Data"
    Friend Shared key As Byte() = {&H5A, &H5F, &H61, &H6C, &H6C, &H5F, &H41, &H5F, &H33, &H44}
    Friend Shared batchinkey As Byte() = {&H5A, &H5F, &H61, &H6C, &H6C, &H5F, &H41, &H5F, &H33, &H44}
    Friend Shared batchoutkey As Byte() = {&H52, &H4F, &H57, &H47, &H6C, &H6F, &H62, &H61, &H6C, &H4B, &H65, &H79}
#End Region

frmManCrypt.vb (Add a button to this form, heres the code)
Code:
    Private Sub btnBatch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBatch.Click
        Me.btnBatch.Enabled = False
        Me.lblStatus.Text = "Batch Converting... Please wait a moment"

        ' ## - Get Dir Paths In and Out (no trailing slash) - ##
        Dim dirIn As String
        Dim dirOut As String
        dirIn = Me.txtFileIn.Text()
        dirOut = Me.txtFileOut.Text()

        If dirIn = "" Or Not My.Computer.FileSystem.DirectoryExists(dirIn) Then Exit Sub
        If dirOut = "" Then dirOut = dirIn
        If Not My.Computer.FileSystem.DirectoryExists(dirOut) Then Exit Sub
        ' ## - End - Get Dir Paths In and Out (no trailing slash) - ##

        ' Get Existing GCMDS key so we can change it back to this when were done
        Dim tmpKey As Byte()
        tmpKey = CGcmdsCoder.key

        ' Loop through all the files in the dir in path
        Dim x As Integer
        For x = 0 To (My.Computer.FileSystem.GetFiles(dirIn).Count - 1)
            Dim fIn As IO.FileStream
            Dim fileName As String
            Dim filePath As String
            Dim fileExt As String

            fileName = IO.Path.GetFileName(My.Computer.FileSystem.GetFiles(dirIn).Item(x))
            filePath = My.Computer.FileSystem.GetFiles(dirIn).Item(x)
            fileExt = UCase(IO.Path.GetExtension(fileName))

            If fileExt = ".GCMDS" Or fileExt = ".SKEY" Then
                ' ## - Read RAW GCMDS Data into Byte Array - ##
                fIn = My.Computer.FileSystem.GetFileInfo(filePath).OpenRead()

                Dim fInData(fIn.Length - 1) As Byte
                fIn.Read(fInData, 0, fIn.Length)
                fIn.Close()
                ' ## - End - Read RAW GCMDS Data into Byte Array - ##

                ' Setup output file
                Dim fOut As IO.FileStream
                fOut = My.Computer.FileSystem.GetFileInfo(dirOut & "\" & fileName).OpenWrite()
                fOut.SetLength(0)

                ' Switch GCMDS Key to "xor.gcmds-batch-in" (Import Mode)
                CGcmdsCoder.key = CGcmdsCoder.batchinkey

                ' Decode RAW GCMDS Data from Byte Array to String using "xor.gcmds-batch-in" key
                Dim sOut As String
                sOut = CGcmdsCoder.Decode(fInData)

                ' Switch GCMDS Key to "xor.gcmds-batch-out" (Export Mode)
                CGcmdsCoder.key = CGcmdsCoder.batchoutkey

                ' Re-Encode PlainText String file into GCMDS Data Structure using "xor.gcmds-batch-out" key
                Dim bOut As Byte() = {}
                bOut = CGcmdsCoder.Encode(Split(sOut, vbNewLine))

                fOut.Write(bOut, 0, bOut.Length)
                fOut.Close()
            End If

        Next

        ' Reset GCMDS Key to what is was before we started converting
        CGcmdsCoder.key = tmpKey

        Me.btnBatch.Enabled = True
        Me.lblStatus.Text = "Batch Convert Complete."
    End Sub

much faster then doing it by hand :p
 
Newbie Spellweaver
Loyal Member
Joined
Feb 14, 2007
Messages
77
Reaction score
13
Re: [release] rylCoder 2.7.0

Nice share yoshi now just rewrap the dll for x64 lol hehe
 
Newbie Spellweaver
Joined
Aug 25, 2004
Messages
10
Reaction score
0
Re: [release] rylCoder 2.7.0

i have some error like this

alphaest - rylCoder 2.7.0 - RaGEZONE Forums



can u help me to make it running??

Many people have this bug ! any solution i tried in 3 diferents pc always the same result ...!
cant see the pictures like in the guide what "OS" are u using? alphaest
i tried whit 1.1, 2.0 and 3.5 framework
and i have visual studio 2008:(:
 
MorbidA
Loyal Member
Joined
May 28, 2006
Messages
247
Reaction score
32
Re: [release] rylCoder 2.7.0

recompile wrapper class
 
Junior Spellweaver
Joined
May 8, 2007
Messages
100
Reaction score
0
Re: [release] rylCoder 2.7.0

hy, i can`t open script.mcf

the picture like this
alphaest - rylCoder 2.7.0 - RaGEZONE Forums


how to fixed??????


help pls
 
Newbie Spellweaver
Joined
Aug 31, 2007
Messages
27
Reaction score
0
Re: [release] rylCoder 2.7.0

and you are to stupid to use search. :p.

It take me 5 sec to find the shared file (XorKey).
 
MorbidA
Loyal Member
Joined
May 28, 2006
Messages
247
Reaction score
32
Re: [release] rylCoder 2.7.0

rylCoder_hack.cfg: (1022+)

//////////////////////////////
//
// Welcome to the rylCoder HaCkfiLe 2000 pro
//
// Implemented so far:
// xor.mcf = XX XX XX XX (byte array in hex, seperated with space)
// xor.gsf.N = XX XX XX XX (same, N is the zero-based index of key's)
// off.gsf.N = int32 (decimal, data start offset in gsf for file type idenifying, make sure there arent any dublicates)
// xor.gcmds = XX XX XX XX
//
// gsf file N index numbers:
// 0 : ItemScript
// 1 : MonsterProtoType
// 2 : Chemical
// 3 : Script1
// 4 : SkillScript
// 5 : SpecialCompensation
// 6 : MineralVein
//
//////////////////////////////

xor.gcmds = 76 0E 71 63 78 0D 7B 62

off.gsf.0 = 46609
off.gsf.1 = 46076
off.gsf.2 = 40291
off.gsf.3 = 46609
off.gsf.4 = 46072
off.gsf.5 = 17073
off.gsf.6 = 214233

xor.gsf.0 = 7F 8C 2C D1 44 72 F1 01 77 93 AF A0 41 68 68 CD 80 08 9D E9 E7 F0 D5 E2 9B 48 C5 C1 D0 2E 84 B5 9B 20 13 87 86 44 FB F8
xor.gsf.1 = 45 39 6B BB B9 3B C1 D3 61 58 DA 34 DE 31 DA E3 19 B0 90 5F 6F 32 D9 74 BC 35 A7 1C FD C5 D5 E8 20 D7 AE C1 EF D5 D4 62
xor.gsf.2 = 7F 8C 2C D1 44 72 F1 01 77 93 AF A0 41 68 68 CD 80 08 9D E9 E7 F0 D5 E2 9B 48 C5 C1 D0 2E 84 B5 9B 20 13 87 86 44 FB F8
xor.gsf.3 = 8A BE B8 6B EF AF D0 58 83 75 59 D1 2E E8 26 99 78 93 71 FE 56 E5 E6 43 75 7E FE CE C0 B0 79 7A 51 BB C0 85 DA 59 E7 65
xor.gsf.4 = 8A BE B8 6B EF AF D0 58 83 75 59 D1 2E E8 26 99 78 93 71 FE 56 E5 E6 43 75 7E FE CE C0 B0 79 7A 51 BB C0 85 DA 59 E7 65
xor.gsf.5 = 7F 8C 2C D1 44 72 F1 01 77 93 AF A0 41 68 68 CD 80 08 9D E9 E7 F0 D5 E2 9B 48 C5 C1 D0 2E 84 B5 9B 20 13 87 86 44 FB F8
xor.gsf.6 = 45 39 6B BB B9 3B C1 D3 61 58 DA 34 DE 31 DA E3 19 B0 90 5F 6F 32 D9 74 BC 35 A7 1C FD C5 D5 E8 20 D7 AE C1 EF D5 D4 62

xor.mcf = E7 DC E5 E2

/////////////////////////////
//
// Default values in rylCoder 2.5.1
//
// Do not edit this part of the hack file, you may need these values if you duck up
//
// mcf:
// Private Shared xorKey() As Byte = {&HAC, &H29, &H55, &H42}
//
// gsf:
// Private Shared typeCodes As Integer() = {17073, 60006, 41094, 17073, 50407, 84703, 214233}
// Private Shared xorDat As String() = { _
// "A3 49 DC EA 09 B7 01 A4 A1 11 11 8E 80 35 5B DD 38 D5 4E 36 0C A2 BB 05 36 57 2E 98 BE 88 3C 28 43 63 A0 E9 E1 6D 51 CB", _
// "4D 62 84 43 89 C7 89 83 65 29 53 95 7C C0 A1 0C DB D7 04 D8 6A D1 73 1D 21 67 86 8D A4 A0 34 BD 31 20 61 0E E9 63 B4 C0", _
// "A3 49 DC EA 09 B7 01 A4 A1 11 11 8E 80 35 5B DD 38 D5 4E 36 0C A2 BB 05 36 57 2E 98 BE 88 3C 28 43 63 A0 E9 E1 6D 51 CB", _
// "34 B5 B2 3D 7D 43 8C C0 21 25 CD B6 53 76 CE 5D D4 87 CA 84 81 CB 5E 04 BA 69 3E 65 DE 21 8A 63 62 71 90 87 0A 52 28 44", _
// "34 B5 B2 3D 7D 43 8C C0 21 25 CD B6 53 76 CE 5D D4 87 CA 84 81 CB 5E 04 BA 69 3E 65 DE 21 8A 63 62 71 90 87 0A 52 28 44", _
// "A3 49 DC EA 09 B7 01 A4 A1 11 11 8E 80 35 5B DD 38 D5 4E 36 0C A2 BB 05 36 57 2E 98 BE 88 3C 28 43 63 A0 E9 E1 6D 51 CB", _
// "4D 62 84 43 89 C7 89 83 65 29 53 95 7C C0 A1 0C DB D7 04 D8 6A D1 73 1D 21 67 86 8D A4 A0 34 BD 31 20 61 0E E9 63 B4 C0 " _
// }
//
// gcmds:
// Private Shared key As Byte() = {&H5A, &H5F, &H61, &H6C, &H6C, &H5F, &H41, &H5F, &H33, &H44}
//
//////////////////////////////

//////////////////////////////
//
// Log section
//
//////////////////////////////
//
 
MorbidA
Loyal Member
Joined
May 28, 2006
Messages
247
Reaction score
32
Re: [release] rylCoder 2.7.0

you're welcome
 
Initiate Mage
Joined
Feb 25, 2009
Messages
1
Reaction score
0
Re: [release] rylCoder 2.7.0

Ask how RYLCODE can open the traditional Chinese the NPC document? help me
 
Back
Top