Site Game


Unirse al foro, es rápido y fácil

Site Game
Site Game
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.
Site Game


No estás conectado. Conéctate o registrate

Anticheat de seguridad para sistema de cuentas en mod Fenix.

Ir abajo  Mensaje [Página 1 de 1.]

Slymnes

Slymnes
Administrador
Administrador

Buenos dias a toda la comunidad. En mis visitas a los Servidores Mod FenixAO, mas aun en los Mod Gathering que conyeba el sistema de cuentas, encontre un inconveniente en el ingreso al Personaje, algo que ya estaba en la liberacion de las cuentas, no me habia dado cuenta hasta que lo libere pero no tenia el suficiente tiempo para pensar en dicho acto.

Revelo los secretos.

Se ha probado colocando un Text Box y un command botton en el frmCuent, cuando uno ingresa a una cuenta, puede entrar con un Personaje especifico, pero no existia la seguridad por Personaje, solo por Cuenta.
Visto ahi, dentro del Command Botton, colocandole un

Código:
call senndata ("NOMBREPAQUETE" & text1.text


De esta forma, se puede ingresar con cualquier usuario desde un cuenta distinta.

Ahi esta el secreto.

Ahora bien, como les he dicho a los GMs del Servidor Fenius, estoy aportando los codigos para tener la password de la cuenta incorporada al Personaje.

Nota: En los codigos aparecen como la base, luego si ha cambiado el nombre del llamado de los paquetes, deberan ser adaptados por ustedes.

En el Servidor.

Buscamos esto:

Código:
Sub ConnectUser(UserIndex As Integer, Name As String)


Lo reemplazamos por esto:

Código:
Sub ConnectUser(UserIndex As Integer, Name As String, Password As String)


Mas abajo, en este mismo Sub, buscamos esto:

Código:
'¿Existe el personaje?
If FileExist(CharPath & UCase$(Name) & ".chr", vbNormal) = False Then
Call SendData(ToIndex, UserIndex, 0, "ERREl personaje no existe.")
Call CloseSocket(UserIndex)
Exit Sub
End If


Abajo, agregamos esto:

Código:
'¿Es el passwd valido?
If UCase$(Password) <> UCase$(GetVar(CharPath & UCase$(Name) & ".chr", "INIT", "Password")) Then
Call SendData(ToIndex, UserIndex, 0, "ERRPassword incorrecto.")
Call CloseSocket(UserIndex)
Exit Sub
End If


Dentro del

Código:
Sub ConnectNewUser


Buscamos esto:

Código:
UserList(UserIndex).Password =


Cambiamos toda esa linea por esta:

Código:
UserList(UserIndex).Password = UserList(UserIndex).AccountedPass


Mas abajo, buscamos esto:

Código:
Call ConnectUser(UserIndex, Name)


Lo reemplazamos por esto:

Código:
Call ConnectUser(UserIndex, Name, UserList(UserIndex).AccountedPass)


Nota: Este codigo aparece 2 veces, reemplazarlo las mismas veces.

Por ultimo, revisar en el:

Código:
Sub SaveUser(UserIndex As Integer, UserFile As String)


Que se encuentre esta linea:

Código:
Call WriteVar(UserFile, "INIT", "Password", UserList(UserIndex).Password)


Edit 27/07 19:09:

Por si las dudas, agrego esto:

Código:
Call ConnectUser(UserIndex, tName)


Reemplazar por este:

Código:
Call ConnectUser(UserIndex, tName, UserList(UserIndex).AccountedPass)


Esto es todo. Espero que les sirva, desde ya, muchas gracias.

Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.