WallHacks & Anti-WallHacks (Información & Funcionamiento) - Versión para impresión +- Allied Modders en español (https://amxmodx-es.com) +-- Foro: General (https://amxmodx-es.com/Forum-General) +--- Foro: Servidores HL1 (HLDS/ReHLDS/ReAPI) (https://amxmodx-es.com/Forum-Servidores-HL1-HLDS-ReHLDS-ReAPI) +---- Foro: Anti-Cheats (https://amxmodx-es.com/Forum-Anti-Cheats) +---- Tema: WallHacks & Anti-WallHacks (Información & Funcionamiento) (/Thread-WallHacks-Anti-WallHacks-Informaci%C3%B3n-Funcionamiento) |
WallHacks & Anti-WallHacks (Información & Funcionamiento) - Cr3470r - 02/11/2018 Descripción: El WallHack es un tipo de Cheat, el cual, mediante la alteración del renderizado del juego, nos permite aplicar diferentes efectos, tanto al mapa como a las entidades, como permitiéndonos ver a través de las paredes, aplicar efectos al texturizado del render, entre otras cosas ... Tipos de WallHacks & sus códigos: Mediante el render del OpenGL del juego, es posible aplicar las siguientes ejecuciones de códigos para obtener diferentes efectos. Nota: No voy a explicar TODOS los códigos existentes, porque en verdad que son infinitos los efectos que se pueden hacer, pero detallaré los más usados. Método 1: (XQZ) Èste es el más utilizado por Cheaters debido a lo simple que es, cabe destacar que este método tuvo muchas maneras de aplicarse en el juego, tanto con el hookeo de una función de OpenGL, como un parcheo en memoria del juego (como lo hacia el WallHack.sys del Cheat para sXe 7.7 que se cargaba con el programa OSR Loader). Método 2: (Asus) Otro de los más utilizados por Cheaters, este es generalmente el mismo que el anterior, pero con la diferencia que se le cambia el Alpha al texturizado del mapa, permitiendo ver a través de las paredes con más complejidad ... Métodos de Anti-WallHacks y sus códigos: Para contrarrestar este tipo de Cheat, en el año 2002 se creó el método definitivo (por ser sólo vía servidor) que hoy en día la mayoría de servidores utilizan, y éste es el método por TraceLine y AddToFullPack ... Este método consiste en, dentro de AddToFullPack, hacer varios TraceLine desde la vista de un jugador, hacia la posición de un rival, y si TraceLine devuelve un Fraction indicando que hay una pared enfrente de la visión del jugador, automáticamente se cancela el envío de datos de la entidad del rival en AddToFullPack, haciendo que TODOS los WallHacks queden inservibles. El Anti-Cheat CSGuard para cs 1.4 fué el primero en crearlo, y luego vinieron las mejoras y las optimizaciones por partes de otros Anti-Cheats (caso HLGuard, sXe-Injected, WHBlocker, UAC Anti-Cheat, etc) ... Bypass de la protección: A pesar de poder bloquear los WallHacks desde el Servidor, aún existen otras formas de poder ver información a través de las paredes mediante los datos del sonido de los jugadores. En otro Thread analizaremos un poco más lo que son los SoundHacks y los métodos para bloquearos... Nota: @Neeeeeeeeeel.- avisame si hay algo que no va dentro del post ... Si alguien no comprende alguna parte de algún código, siéntase libre de preguntar ... Cualquiera que quiera aportar nuevas ideas a ésto, ¡va a ser bienvenido! ... RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - KISKE - 02/11/2018 Buena información! Ya que creaste el tema, hablo desde el poco conocimiento que tengo, cuando yo cree mi primer WH (sin ningún anti-cheat en el servidor), en simples pasos, lo que hice fue obtener la posición de los jugadores, y luego con la ViewMatrix y un pequeño trozo de código agarrado de otros sitios (World2Screen), poder plasmar esas coodernadas 3D en mi pantalla, y con una app externa, dibujar un overlay de fondo que se encuntra arriba de la app del HL. Asumo que vos me entenderás lo que hice si estás más metido en el tema. Volviendo a la pregunta, es posible evitar esto desde el lado servidor, o si o si requiere de una aplicación corriendo en el cliente para dificultar cosas. PD: Datos sobre la ViewMatrix por si a alguien le interesa. http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/the-view-matrix https://www.3dgep.com/understanding-the-view-matrix/ RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - OsweRRR - 02/11/2018 Si seria posible que también hablaras un poco de aquellos cheats que pueden filtrar el sma que dejaste RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - Cr3470r - 02/11/2018 (02/11/2018, 08:04 PM)KISKE escribió: Asumo que vos me entenderás lo que hice si estás más metido en el tema. Muy genial la idea, algo similar hacen algunos Cheats de CS:GO, y los nuevos de ahora lo que hacen es enviar desde los datos al juego -> a la pantalla del Overlay del Cheat. De esta manera, si alguien está transmitiendo algo por Twitch, lo que el espectador ve es un juego limpio, pero en realidad el jugador está viendo otra cosa xd (02/11/2018, 08:04 PM)KISKE escribió: Volviendo a la pregunta, es posible evitar esto desde el lado servidor, o si o si requiere de una aplicación corriendo en el cliente para dificultar cosas. Creo yo que la manera de evitarlo es simplemente no enviar esos datos (desde el lado servidor), ya que sino, si te vas a la parte cliente, podrías hacer chequeos de Handles, análisis de Ventanas, etc, y ahí lo detectas al Cheat. (02/11/2018, 08:13 PM)OsweRRR escribió: Si seria posible que también hablaras un poco de aquellos cheats que pueden filtrar el sma que dejaste Apenas termino el Thread de SpeedHack, me pongo a hablar de SoundHack también, dame tiempo xd RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - mlibre - 03/11/2018 el anti-wallhack funciona bien pero hay un detalle, al ser visible nuevamente el jugador el "EspHack" se activa se puede añadir este complemento: Código PHP: register_forward(FM_AddToFullPack, "pfw_atfp", 1) esto solo funciona si el jugador es asesinado y "respawn" en mods dm, ctf... RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - Cr3470r - 03/11/2018 (03/11/2018, 07:15 PM)mlibre escribió: Este método es el mismo que utiliza el Anti-Cheat CSGuard (desde el año 2002), y básicamente pasa por lo siguiente: En los códigos de los Cheats, te encuentras con una verificación que le hacen a las entidades de Players para ver si están vivos o no lo están. De estar vivos, entonces son sólidas, y en caso de no estarlos, dejan de ser sólidas, haciendo que el ESP funcione correctamente. Código PHP: //Función del client.dll HUD_AddEntity RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - Sugisaki - 04/11/2018 este efecto de "AntiWallHack" tiene una gran desventaja para jugadores con ping superior a los 90. ¿Cual? Prefire: Al momento que un jugador enfrente a otro, el jugador contrario no vera una transicion, si no que vera una "teletransportacion" hacia el centro de su vista. WHBlocker tiene una variable que se puede configurar para evitar ese problema. Al momento de aplicar ese "WB" hay que transmitir la entidad antes de verla Hay un par de contra mas que no recuerdo, si me acuerdo la comento RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - Cr3470r - 04/11/2018 (04/11/2018, 10:30 AM)Sugisaki escribió: este efecto de "AntiWallHack" tiene una gran desventaja para jugadores con ping superior a los 90. Sería predicción de movimiento para evitar el player-popping. Cual es la CVAR que el WHBlocker tiene? S2 RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - Neeeeeeeeeel.- - 05/11/2018 Buena data. Todo bien con el post. RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - mlibre - 05/11/2018 (04/11/2018, 10:30 AM)Sugisaki escribió: creo que te refieres al leve retardo de unos segundos en reaparecer el model "lo he notado" parece arreglarse con estos ajustes Código: smooth = 1 RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - Cr3470r - 05/11/2018 (05/11/2018, 05:20 PM)mlibre escribió:(04/11/2018, 10:30 AM)Sugisaki escribió: Entonces lo que se haces es multiplicar la velocidad, y agregársela al origen de la entidad, de esa manera la posición estaría más adelantada o más atrasada y se evitaría el riesgo de que aparezcan de la nada. Cabe destacar que el código que puse es sólo conceptual, no le puse checkeo de FOV, de entidades que no son players, predicciones, ni nada, es sólo lo básico. RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - Destro - 05/11/2018 Estaba pensando en una forma de optimizar el calculo utilizando zonas, si se hace manualmente funciona muy bien, pero no puedo pensar en la forma de calcular las zonas automaticamente de manera eficiente. Tengo una forma, pero no es para nada viable, tardaría minutos en terminar de calcular. RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - Cr3470r - 05/11/2018 (05/11/2018, 09:06 PM)Destro escribió: Estaba pensando en una forma de optimizar el calculo utilizando zonas, si se hace manualmente funciona muy bien, pero no puedo pensar en la forma de calcular las zonas automaticamente de manera eficiente. No entendí bien el tema de las zonas, me explicas? Y sobre lo que dije antes sobre las predicciones, usaría lo siguiente: Código tomado del UAC Anti-Cheat: Código PHP: stock get_origin_predicted ( const id, Float:Origin[3] ) RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - Destro - 06/11/2018 (05/11/2018, 11:44 PM)Cr3470r escribió: No entendí bien el tema de las zonas, me explicas?Creas diferentes zonas en el map, cuando jugadores estén dentro de X zona ya sabes que no pueden ver a los que estén en Y zona, así te ahorras un montón de tracelines. Mas fácil de entender: En de_inferno, si el jugador esta en base CT, no puede ver a los que están en base TT lo difícil es calculas las zonas automaticamente RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - Cr3470r - 06/11/2018 (06/11/2018, 12:40 AM)Destro escribió:(05/11/2018, 11:44 PM)Cr3470r escribió: No entendí bien el tema de las zonas, me explicas?Creas diferentes zonas en el map, cuando jugadores estén dentro de X zona ya sabes que no pueden ver a los que estén en Y zona, así te ahorras un montón de tracelines. Eso ya lo hace el plugin de por sí: Código PHP: if ( !engfunc ( EngFunc_CheckVisibility, entity, set ) ) //Primero se checkea si la entidad está en mi PVS ... Más optimizado que esto no creo que se pueda, probé todos los métodos existentes e inclusive hice un cacheo de entidades para que AddToFullPack se llame en cada entidad cada "x" milisegundos, en pocas palabras el orden es el siguiente: 1) Se chequea el cacheo de la entidad, si pasaron más de "x" milisegundos -> 2) Se chequea que la Entidad esté en el PVS, si lo está -> 3) Se chequea el FOV del player, si la entidad está en el FOV -> 4) Se chequea el primer punto inicial de la entidad (origin+viewofs), si el punto es visible -> 5) Se chequea el Weapon View Point, si el punto del arma es visible -> 6) Se chequea los vectores restantes (ya sean stand o duck). Quiero destacar que el UAC chequea tanto a rivales como a los Teams, porque viendo a los de tu Team a través de las paredes, te podes dar una idea en donde muere o en donde apuntan y con eso ya tendrías ventaja y también funciona tanto para jugadores vivos como muertos (lo que me costó un huevo de codear). RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - Destro - 06/11/2018 @Edit Recién veo lo que hace CheckVisibility en rehlds, es exactamente lo que decía jaja RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - Sugisaki - 06/11/2018 lo que se puede es hacer una entidad adjuntandola al player y haciendola mas ancha (dependiendo de una variable) la cual si se ve un punto hace al player visible aunque este no se este viendo realmente, lo que pasara es que primero se vera la entidad antes que el player salga, o modificando algunos parametros de min y max en el addtofullpack (05/11/2018, 07:39 PM)Cr3470r escribió:(05/11/2018, 05:20 PM)mlibre escribió:(04/11/2018, 10:30 AM)Sugisaki escribió: la variable es "barrel" RE: WallHacks & Anti-WallHacks (Información & Funcionamiento) - Cr3470r - 06/11/2018 (06/11/2018, 04:27 PM)Sugisaki escribió: lo que se puede es hacer una entidad adjuntandola al player y haciendola mas ancha (dependiendo de una variable) la cual si se ve un punto hace al player visible aunque este no se este viendo realmente, lo que pasara es que primero se vera la entidad antes que el player salga, o modificando algunos parametros de min y max en el addtofullpack Esto sería en cuanto a la predicción, pero sobre lo de "haciendola más ancha", supongo que eso sería para adelantar un poco más los puntos a chequear. No sirvió el code que puse antes que computa el factor de velocidad y lo agrega al origen de la entidad? (06/11/2018, 04:27 PM)Sugisaki escribió: la variable es "barrel" El código del Wallhack Blocker de OT tiene justamente esta función (yo no la adjunté al código conceptual que puse en el post porque no lo vi realmente necesario ya que sólo es conceptual jaja). |