ZonaGamerZ

ZonaGamerz

Comunidad de Juegos Online! y mas..

Tutorial para crear un sistema Anti-Speedhack

Tutorial para crear un sistema Anti-Speedhack en Argentum Online, ...


Retroceder   ZonaGamerZ > Juegos Online > Argentum Online > Administración de servidores

Registrarse Álbums Ayuda Miembros Calendario Marcar Foros Como Leídos



Tags: , , ,

Respuesta

 

LinkBack Herramientas
  #1 (permalink)  
Antiguo 04-29-2007, 05:12 PM
Avatar de iTaChi
CholoTube
 
Fecha de Ingreso: Jul 2007
Mensajes: 4.471
Gracias: 496
Agradecido 1.246 veces en 375 Posts
iTaChi ha deshabilitado la reputación
Contactar con iTaChi a través de MSN
Tutorial para crear un sistema Anti-Speedhack

En este manual aprenderan a implementar un sistema que detecte Speed Hack en los usuarios.


Una pregunta que debe pasar por la mente de algunos es “¿Pero para eso hay que modificar el cliente, no?”, bueno esa es otra opcion, pero no la recomendable, por que hay programas externos que engañan a los frames por segundo(Cuadros por segundo) poniendo 1 o 2 frames mientras que va a 30 o 40.

Para resolver esto yo (Sicarul) he ideado un “Conteo de pasos” que cuenta cuantos pasos hace el usuario en un segundo, si hizo mas de “X” pasos en un segundo, sumar Otro contador, que al llegar a “Y” cantidad hace que el personaje sea automaticamente BANEADO.

Puede ser que estes un poco confundido pero empezemos a la practica:

Busca el “Type usercounters” que es como se muestra debajo:

Type UserCounters
IdleCount As Long
AttackCounter As Integer
HPCounter As Integer
STACounter As Integer
Frio As Integer
COMCounter As Integer
AGUACounter As Integer
Veneno As Integer
Paralisis As Integer
Ceguera As Integer
Estupidez As Integer
Invisibilidad As Integer
PiqueteC As Long
Pena As Long
SendMapCounter As WorldPos
Pasos As Integer
'[Gonzalo]
Saliendo As Boolean
Salir As Integer
'[/Gonzalo]
End Type

Y agregale en donde quieras (Antes de end type y despues de type usercounters) lo siguiente:

AntiSH As Integer
AntiSH2 As Integer

Nuevamente a usar la funcion buscar del Visual Basic ;)
En el modulo TCP, mas especificamente en el sub “HandleData” busca el Case “M”, normalmente es asi:

Case "M" 'Moverse

rdata = Right$(rdata, Len(rdata) - 1)

If Not UserList(UserIndex).flags.Descansar And Not UserList(UserIndex).flags.Meditando _
And UserList(UserIndex).flags.Paralizado = 0 Then
Call MoveUserChar(UserIndex, val(rdata))
ElseIf UserList(UserIndex).flags.Descansar Then
UserList(UserIndex).flags.Descansar = False
Call SendData(ToIndex, UserIndex, 0, "DOK")
Call SendData(ToIndex, UserIndex, 0, "||Has dejado de descansar." & FONTTYPE_INFO)
Call MoveUserChar(UserIndex, val(rdata))
ElseIf UserList(UserIndex).flags.Meditando Then
UserList(UserIndex).flags.Meditando = False
Call SendData(ToIndex, UserIndex, 0, "MEDOK")
Call SendData(ToIndex, UserIndex, 0, "||Dejas de meditar." & FONTTYPE_INFO)
UserList(UserIndex).Char.FX = 0
UserList(UserIndex).Char.loops = 0
Call SendData(ToPCArea, UserIndex, UserList(UserIndex).Pos.Map, "CFX" & UserList(UserIndex).Char.CharIndex & "," & 0 & "," & 0)
Call MoveUserChar(UserIndex, val(rdata))
Else
Call SendData(ToIndex, UserIndex, 0, "||No podes moverte porque estas paralizado." & FONTTYPE_INFO)
End If
If UserList(UserIndex).flags.Oculto = 1 Then

If UCase$(UserList(UserIndex).Clase) <> "LADRON" Then
Call SendData(ToIndex, UserIndex, 0, "||Has vuelto a ser visible." & FONTTYPE_INFO)
UserList(UserIndex).flags.Oculto = 0
UserList(UserIndex).flags.Invisible = 0
Call SendData(ToMap, 0, UserList(UserIndex).Pos.Map, "NOVER" & UserList(UserIndex).Char.CharIndex & ",0")
End If

End If

Exit Sub









Aquí se ve un poco confuso, cierto?, eso es lo que hace cada vez que alguien toca una flecha direccional.
En la parte que dice:
Call SendData(ToIndex, UserIndex, 0, "||No podes moverte porque estas paralizado." & FONTTYPE_INFO)
End If
If UserList(UserIndex).flags.Oculto = 1 Then

Justo antes del If UserList(UserIndex).flags.Oculto… pongan:

UserList(UserIndex).Counters.AntiSH = UserList(UserIndex).Counters.AntiSH + 1

Bueno, hagamos un repaso de lo que hicimos hasta ahora… agregamos 2 contadores e hicimos que uno aumente en uno por cada paso que da el user…

Ahora viene lo mejor
Bueno en realidad no, pero si es el final y no queria que se vallan =P


Tienen que buscar el sub “PasarSegundo”, es asi:
Sub PasarSegundo()
Dim i As Integer
For i = 1 To LastUser
'Cerrar usuario
If UserList(i).Counters.Saliendo Then
UserList(i).Counters.Salir = UserList(i).Counters.Salir - 1
If UserList(i).Counters.Salir <= 0 Then
'If NumUsers <> 0 Then NumUsers = NumUsers - 1
'Call aDos.RestarConexion(frmMain.Socket2(i).PeerAddress )
Call SendData(ToIndex, i, 0, "||Gracias por jugar Argentum Online" & FONTTYPE_INFO)
Call SendData(ToIndex, i, 0, "FINOK")

Call CloseSocket(i)
' Call CloseUser(i)
' UserList(i).ConnID = -1: UserList(i).NumeroPaquetesPorMiliSec = 0
' frmMain.Socket2(i).Disconnect
' frmMain.Socket2(i).Cleanup
' 'Unload frmMain.Socket2(i)
' Call ResetUserSlot(i)
Else
Call SendData(ToIndex, i, 0, "||En " & UserList(i).Counters.Salir & " segundos se cerrará el juego..." & FONTTYPE_INFO)
End If



End If
Next i
End Sub


Donde hay que agregar las cosas?, bueno ojala eso fuera lo complicado, pero es importante, una mal ubicación y ya no funcionaria el anti speed hack, tambien es importante no poner poquitos pasos por segundo para SH, yo recomiendo algo de 7 o 8 para no banear por LAG.
El lugar exacto es justo una linea arriba de Next i y debajo de End If

If UserList(i).Counters.AntiSH > 7 Then
UserList(i).Counters.AntiSH2 = UserList(i).Counters.AntiSH2 + 1
Call SendData(ToIndex, i, 0, "||Contador Anti Speed Hack: " & UserList(i).Counters.AntiSH2 & “ a los 10 sera baneado” & FONTTYPE_VENENO)
If UserList(i).Counters.AntiSH2 > 9 Then
UserList(i).flags.Ban = 1
Call SendData(ToAll, 0, 0, "|| '" & UserList(i).Name & "' fue automaticamente baneado del servidor por uso de SPEEDHACK" & FONTTYPE_GUILD)
Call CloseSocket(i)
End If
End If
UserList(i).Counters.AntiSH = 0

Es el codigo mas largo, ehh? XD
No se preocupen que cuando copian el codigo a Visual Basic queda bien, los mensajes los pueden modificar al igual que los contadores.

Gracias por Seguirme en este manual!
Responder Con Cita
Los siguientes usuarios dijeron Gracias a iTaChi por este mensaje:
Respuesta

Tags
antispeedhack, sistema, crear, tutorial

Herramientas

Normas de Publicación
Tu no puedes crear nuevos temas
Tu no puedes enviar respuestas
Tu no puedes adjuntar archivos
Tu no puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are deshabilitado
Pingbacks are deshabilitado
Refbacks are habilitado

Temas Similares

Tema Autor Foro Respuestas Último mensaje
Toda la HISTORIA de Warcraft hasta Warcraft3 williams23790322 Warcraft III 3 12-26-2008 09:24 PM
Como crear un servidor mu online Mascarao Mu General Discusion 5 12-12-2008 11:51 AM
Toda la historia Hasta Warcraft3 #4 williams23790322 Warcraft III 6 12-10-2008 06:49 PM
Toda la historia hasta Warcraft3 #3 williams23790322 Warcraft III 0 11-11-2008 05:01 PM
Toda la HISTORIA HASTA WARCRAFT3 #2 williams23790322 Warcraft III 0 11-11-2008 04:55 PM


Powered by: vBulletin®
Derechos de Autor ©2000 - 2009, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.5 ©2008, Crawlability, Inc.
Copyright © 2006-2008 ZonaGamerz

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158