Cliente:
Creamos un Modulo, con el nombre "MD5" y le ponemos de código:
- 'Argentum Online 0.11.2
- '
- 'Copyright (C) 2002 Márquez Pablo Ignacio
- 'This program is free software; you can redistribute it and/or modify
- 'it under the terms of the GNU General Public License as published by
- 'the Free Software Foundation; either version 2 of the License, or
- 'any later version.
- '
- 'This program is distributed in the hope that it will be useful,
- 'but WITHOUT ANY WARRANTY; without even the implied warranty of
- 'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- 'GNU General Public License for more details.
- '
- 'You should have received a copy of the GNU General Public License
- 'along with this program; if not, write to the Free Software
- 'Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- '
- 'Argentum Online is based on Baronsoft's VB6 Online RPG
- 'You can contact the original creator of ORE at aaron@baronsoft.com
- 'for more information about ORE please visit http://www.baronsoft.com/
- '
- '
- 'You can contact me at:
- 'morgolock@speedy.com.ar
- 'www.geocities.com/gmorgolock
- 'Calle 3 número 983 piso 7 dto A
- 'La Plata - Pcia, Buenos Aires - Republica Argentina
- 'Código Postal 1900
- 'Pablo Ignacio Márquez
- ' MD5.bas - wrapper for RSA MD5 DLL
- ' derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm
- ' Functions:
- ' MD5String (some string) -> MD5 digest of the given string as 32 bytes string
- ' MD5File (some filename) -> MD5 digest of the file's content as a 32 bytes string
- ' returns a null terminated "FILE NOT FOUND" if unable to open the
- ' given filename for input
- ' Bugs, complaints, etc:
- ' Francisco Carlos Piragibe de Almeida
- ' piragibe@esquadro.com.br
- ' History
- ' Apr, 17 1999 - fixed the null byte problem
- ' Contains public domain RSA C-code for MD5 digest (see MD5-original.txt file)
- ' The aamd532.dll DLL MUST be somewhere in your search path
- ' for this to work
- Private Declare Sub MDFile Lib "aamd532.dll" (ByVal f As String, ByVal r As String)
- Private Declare Sub MDStringFix Lib "aamd532.dll" (ByVal f As String, ByVal T As Long, ByVal r As String)
- Public Function MD5String(p As String) As String
- ' compute MD5 digest on a given string, returning the result
- Dim r As String * 32, T As Long
- r = Space(32)
- T = Len(p)
- MDStringFix p & "Tu-Contraseña", T, r
- MD5String = r
- End Function
- Public Function MD5File(f As String) As String
- ' compute MD5 digest on o given file, returning the result
- Dim r As String * 32
- r = Space(32)
- MDFile f, r
- MD5File = r
- End Function
Buscamos:
- #If SeguridadAlkon Then
- 'Obtener el HushMD5
- Dim fMD5HushYo As String * 32
- fMD5HushYo = MD5.GetMD5File(App.path & "\" & App.EXEName & ".exe")
- Call MD5.MD5Reset
- MD5HushYo = txtOffset(hexMd52Asc(fMD5HushYo), 55)
- Debug.Print fMD5HushYo
- #Else
- MD5HushYo = "0123456789abcdef" 'We aren't using a real MD5
- #End If
Lo remplazamos por:
- 'Obtener el HushMD5
- Dim fMD5HushYo As String * 32
- fMD5HushYo = MD5File(App.path & "\" & App.EXEName & ".exe")
- MD5HushYo = txtOffset(hexMd52Asc(fMD5HushYo), 55)
Buscamos:
- #If SeguridadAlkon Then
- UserPassword = MD5.GetMD5String(txtPasswd.Text)
- Call MD5.MD5Reset
- #Else
- UserPassword = txtPasswd.Text
- #End If
Lo remplazamos por:
- #If SeguridadAlkon Then
- UserPassword = MD5String(txtPasswd.Text)
- #Else
- UserPassword = txtPasswd.Text
- #End If
Remplazamos el Modulo "modHexaStrings" por:
- 'Argentum Online 0.11.2
- '
- 'Copyright (C) 2002 Márquez Pablo Ignacio
- 'This program is free software; you can redistribute it and/or modify
- 'it under the terms of the GNU General Public License as published by
- 'the Free Software Foundation; either version 2 of the License, or
- 'any later version.
- '
- 'This program is distributed in the hope that it will be useful,
- 'but WITHOUT ANY WARRANTY; without even the implied warranty of
- 'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- 'GNU General Public License for more details.
- '
- 'You should have received a copy of the GNU General Public License
- 'along with this program; if not, write to the Free Software
- 'Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- '
- 'Argentum Online is based on Baronsoft's VB6 Online RPG
- 'You can contact the original creator of ORE at aaron@baronsoft.com
- 'for more information about ORE please visit http://www.baronsoft.com/
- '
- '
- 'You can contact me at:
- 'morgolock@speedy.com.ar
- 'www.geocities.com/gmorgolock
- 'Calle 3 número 983 piso 7 dto A
- 'La Plata - Pcia, Buenos Aires - Republica Argentina
- 'Código Postal 1900
- 'Pablo Ignacio Márquez
- Option Explicit
- Public Function hexMd52Asc(ByVal MD5 As String) As String
- Dim i As Integer, L As String
- MD5 = UCase$(MD5)
- If Len(MD5) Mod 2 = 1 Then MD5 = "0" & MD5
- For i = 1 To Len(MD5) \ 2
- L = mid(MD5, (2 * i) - 1, 2)
- hexMd52Asc = hexMd52Asc & Chr(hexHex2Dec(L))
- Next i
- End Function
- Public Function hexHex2Dec(ByVal hex As String) As Long
- Dim i As Integer, L As String
- For i = 1 To Len(hex)
- L = mid(hex, i, 1)
- Select Case L
- Case "A": L = 10
- Case "B": L = 11
- Case "C": L = 12
- Case "D": L = 13
- Case "E": L = 14
- Case "F": L = 15
- End Select
- hexHex2Dec = (L * 16 ^ ((Len(hex) - i))) + hexHex2Dec
- Next i
- End Function
- Public Function txtOffset(ByVal Text As String, ByVal off As Integer) As String
- Dim i As Integer, L As String
- For i = 1 To Len(Text)
- L = mid(Text, i, 1)
- txtOffset = txtOffset & Chr((Asc(L) + off) Mod 256)
- Next i
- End Function
Servidor:
Creamos un Modulo, con el nombre "MD5" y le ponemos de código:
- 'Argentum Online 0.11.2
- '
- 'Copyright (C) 2002 Márquez Pablo Ignacio
- 'This program is free software; you can redistribute it and/or modify
- 'it under the terms of the GNU General Public License as published by
- 'the Free Software Foundation; either version 2 of the License, or
- 'any later version.
- '
- 'This program is distributed in the hope that it will be useful,
- 'but WITHOUT ANY WARRANTY; without even the implied warranty of
- 'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- 'GNU General Public License for more details.
- '
- 'You should have received a copy of the GNU General Public License
- 'along with this program; if not, write to the Free Software
- 'Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- '
- 'Argentum Online is based on Baronsoft's VB6 Online RPG
- 'You can contact the original creator of ORE at aaron@baronsoft.com
- 'for more information about ORE please visit http://www.baronsoft.com/
- '
- '
- 'You can contact me at:
- 'morgolock@speedy.com.ar
- 'www.geocities.com/gmorgolock
- 'Calle 3 número 983 piso 7 dto A
- 'La Plata - Pcia, Buenos Aires - Republica Argentina
- 'Código Postal 1900
- 'Pablo Ignacio Márquez
- ' MD5.bas - wrapper for RSA MD5 DLL
- ' derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm
- ' Functions:
- ' MD5String (some string) -> MD5 digest of the given string as 32 bytes string
- ' MD5File (some filename) -> MD5 digest of the file's content as a 32 bytes string
- ' returns a null terminated "FILE NOT FOUND" if unable to open the
- ' given filename for input
- ' Bugs, complaints, etc:
- ' Francisco Carlos Piragibe de Almeida
- ' piragibe@esquadro.com.br
- ' History
- ' Apr, 17 1999 - fixed the null byte problem
- ' Contains public domain RSA C-code for MD5 digest (see MD5-original.txt file)
- ' The aamd532.dll DLL MUST be somewhere in your search path
- ' for this to work
- Private Declare Sub MDFile Lib "aamd532.dll" (ByVal f As String, ByVal r As String)
- Private Declare Sub MDStringFix Lib "aamd532.dll" (ByVal f As String, ByVal T As Long, ByVal r As String)
- Public Function MD5String(p As String) As String
- ' compute MD5 digest on a given string, returning the result
- Dim r As String * 32, T As Long
- r = Space(32)
- T = Len(p)
- MDStringFix p & "Tu-Contraseña", T, r
- MD5String = r
- End Function
- Public Function MD5File(f As String) As String
- ' compute MD5 digest on o given file, returning the result
- Dim r As String * 32
- r = Space(32)
- MDFile f, r
- MD5File = r
- End Function
Remplazamos el Modulo "modHexaStrings" por:
- 'Argentum Online 0.11.20
- 'Copyright (C) 2002 Márquez Pablo Ignacio
- '
- 'This program is free software; you can redistribute it and/or modify
- 'it under the terms of the GNU General Public License as published by
- 'the Free Software Foundation; either version 2 of the License, or
- 'any later version.
- '
- 'This program is distributed in the hope that it will be useful,
- 'but WITHOUT ANY WARRANTY; without even the implied warranty of
- 'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- 'GNU General Public License for more details.
- '
- 'You should have received a copy of the GNU General Public License
- 'along with this program; if not, write to the Free Software
- 'Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- '
- 'Argentum Online is based on Baronsoft's VB6 Online RPG
- 'You can contact the original creator of ORE at aaron@baronsoft.com
- 'for more information about ORE please visit http://www.baronsoft.com/
- '
- '
- 'You can contact me at:
- 'morgolock@speedy.com.ar
- 'www.geocities.com/gmorgolock
- 'Calle 3 número 983 piso 7 dto A
- 'La Plata - Pcia, Buenos Aires - Republica Argentina
- 'Código Postal 1900
- 'Pablo Ignacio Márquez
- 'Modulo realizado por Gonzalo Larralde(CDT) <gonzalolarralde@yahoo.com.ar>
- 'Para la conversion a caracteres de cadenas MD5 y de
- 'semi encriptación de cadenas por ascii table offset
- Option Explicit
- Public Function hexMd52Asc(ByVal md5 As String) As String
- Dim i As Integer, L As String
- md5 = UCase$(md5)
- If Len(md5) Mod 2 = 1 Then md5 = "0" & md5
- For i = 1 To Len(md5) \ 2
- L = Mid(md5, (2 * i) - 1, 2)
- hexMd52Asc = hexMd52Asc & Chr(hexHex2Dec(L))
- Next i
- End Function
- Public Function hexHex2Dec(ByVal hex As String) As Long
- Dim i As Integer, L As String
- For i = 1 To Len(hex)
- L = Mid(hex, i, 1)
- Select Case L
- Case "A": L = 10
- Case "B": L = 11
- Case "C": L = 12
- Case "D": L = 13
- Case "E": L = 14
- Case "F": L = 15
- End Select
- hexHex2Dec = (L * 16 ^ ((Len(hex) - i))) + hexHex2Dec
- Next i
- End Function
- Public Function txtOffset(ByVal Text As String, ByVal off As Integer) As String
- Dim i As Integer, L As String
- For i = 1 To Len(Text)
- L = Mid(Text, i, 1)
- txtOffset = txtOffset & Chr((Asc(L) + off) Mod 256)
- Next i
- End Function
Explicación:
Podrán ver que en el Modulo "MD5" dice "Tu-Contraseña", "Tu-Contraseña" deben remplazarlo por la contraseña que deseen en el servidor, pero tiene que coincidir Cliente/Servidor.
Si tienen personajes creados, para que funcione, deben hacer "Reset de Personajes" - Osea borrarlos.
Saludos







641![Dragon Ancestral [3] Dragon Ancestral [3]](./images/ranks/Rango32.gif)

![Legendario Inmortal [2] Legendario Inmortal [2]](./images/ranks/Rango37.gif)
![Dragon Ancestral [1] Dragon Ancestral [1]](./images/ranks/Rango30.gif)
