Buho21 - red social y juegos online Multijugador  |  Juegos  |  VIP  |  Clubis  |  Software  |  Foros  |  Búsqueda
Aporta tus ideas

Para participar en los foros debes identificarte en la web. Gracias.
«1011121314»
24/07/2015 07:44
Como terminar con los tramposos

Hace un año, o más, mi hermano me contó cómo hacían ciertos hackers para jugar con ayuda de motores de ajedrez sin ser detectados. Este truco lo supo de fuentes confiables: unos hackers israelíes que hacían de las suyas en Buho21. Puestos sobre la pista, nos pusimos a investigar. Queríamos saber más detalles. Cuando nos enteramos de todo, abandonamos Buho y buscamos otros sitios donde jugar. Pero yo sospecho que en P8 algunos hacen lo mismo, especialmente en bala.

Les cuento cómo hacen estos hackers (o los jugadores tramposos que usan los programitas hechos por éstos).

El programa en cuestión hace lo siguiente:

1. Se carga en memoria y se pone al tope del ZOrder, es decir: encima de todas las ventanas. Figura como un visor o banner, puesto donde se quiera, por ejemplo, en la esquina superior derecha de la pantalla;

2. El programa carga en memoria, como un proceso adjunto, el motor de ajedrez que el programero prefiera, por ejemplo Rybka. Debe ser UCI, luego verán por qué. Este motor queda "comunicado" con el programa mediante algo que se llama "tubería" (pipeline). Se trata de un bucle sin fin de mensajes. El motor arranca y queda a la espera de órdenes por parte del "host", que sería el programita que estoy describiendo;

3. Constantemente, algo así como 3 o 4 veces por segundo (esta frecuencia se puede ajustar), este programita saca una instantánea de la ventana siguiente en el ZOrder, que es la de P8 (o la ventana del server de ajedrez que ustedes quieran; yo pondré a P8 de ejemplo). Esta instantánea, o "captación" de ventana, es simplemente un bitmap idéntico a lo que ve el ojo humano. Esto se logra mediante las funciones gráficas de la librería GDI de Windows;

4. Cada vez que el programa "mira" la ventana de P8, la escanea en busca del tablero. El programa está diseñado para saber dónde buscarlo, en qué coordenadas espaciales debe rastrear el tablero, todo según la resolución de la pantalla. Si no lo encuentra, sigue a la espera. Si lo encuentra, supone que la partida ya está en juego, y entonces se pone en acción:

5. Una vez que ha localizado en el bitmap de la pantalla la zona del tablero, la escanea con precisión, para determinar qué pieza está en cada casilla. Esto se conoce como OCR: reconocimiento óptico de caracteres. Las figuras de las piezas se analizan igual que caracteres. Este análisis prescinde de las medidas: es topológico. En cualquier página dedicada a “chess programming” encontrarán módulos y plugins para hacer OCR de tableros de ajedrez. Se usan mucho en edición de libros, etc.;

6. Una vez que se escanea el tablero y se hace su OCR, se obtiene una versión "simbólica" del mismo con todas las piezas en juego, es decir: el programa ya sabe a qué posición se ha llegado en la partida. Esta versión simbólica de la posición ya no es una imagen, un bitmap: es información pura. Por ejemplo, una matriz de 64 elementos, cada uno indicando una pieza (con su color), o bien, una casilla vacía;

7. Esta información se recodifica en formato FEN. Las líneas FEN son la forma estándar de codificar posiciones de ajedrez. Por ejemplo:

2r1r1k1/pb3p2/2q3p1/4p3/5n1p/4NR2/PPP2PPP/R1Q2BK1 b -- - 3 24

Ustedes no entienden ese dialecto, pero los programas de ajedrez así;

8. Una vez que el programa convierte la información visual en simbólica y luego en formato FEN, pregunta si esta línea FEN es nueva, o si ya se ha despachado. Si esta línea FEN (esta posición en el tablero), es distinta a la que se ha procesado anteriormente, es que sobre el tablero se ha movido una pieza, y entonces hay que iniciar un nuevo proceso de cálculo, que es lo que explicaré en el punto siguiente. Pero si la posición FEN es igual, es que no ha habido cambios en el tablero, y entonces se sigue "pensando" la posición actual, la ya reconocida;

9. Detectada una nueva posición, el programa se la pasa al motor para que la piense. El protocolo UCI permite pasarle a los motores posiciones FEN y darles la orden "go", para que ellos se pongan a pensar cuál es la mejor jugada en esa situación concreta. No hay límites de tiempo: el motor piensa indefinidamente. Cuanto más tiempo pase, mejor será su apreciación;

10. Dije que el motor estaba comunicado con el programa. No sólo recibe mensajes: también los envía al host. De estos mensajes, el que le importa al programero es cuál es la mejor jugada posible en la actual posición. El motor la brinda en formato antiguo, por así decir: algo así como "b1-c3", "e4-f5", etc. Como los viejos programas de DOS;

11. Esta jugada es la que muestra el programa usado por los programeros. Su único trabajo es saber interpretar esa extraña notación. Imagino que algunos de estos programas ya son capaces de traducir esos códigos a cosas como "Cf3", "AxT", etc;

12. El programero sólo debe mirar el visor de su programa, para saber qué aconseja el motor para esa posición. No está obligado a jugar lo que el motor sugiere: ese es el problema más grave para nosotros, porque de nada sirve analizar luego la partida sospechosa, buscando coincidencias con las jugadas propuestas por (digamos) Fritz;

13. El programa también sabe detectar qué bando debe jugar, claro está. Sin ese dato, nada puede hacer;

14. Todo este proceso parece lento, pero créanlo: si el hacker programa en C/C++ (y no en C#, Java, Ruby, Phyton, VB y cosas parecidas) y el programero cuenta con una PC decente, todos esos pasos se hacen en milisegundos. Lo único que consume tiempo (segundos) es lo que tarda el motor en "pensar" las jugadas. Pero no se hagan los incrédulos: pónganse a jugar a 1 min contra Stockfish, y después me cuentan...;

15. El detector de programeros de P8 (así como el de Buho21) es incapaz de detectar esta trampa, debido a que la ventana de juego jamás pierde su orden en el ZOrder mientras el programa que describí hace su trabajo. La ventana de juego jamás se “desactiva” dado que nadie "sale" de ella. Por eso, la trampa pasa desapercibida.

Corre el mito de que los programeros no juegan blitz, ni mucho menos bala. Pues sepan que no es así. Al contrario: con mucho tiempo, un humano le puede empatar a Rybka, pero a 1 min, ¡ni hablar! Es precisamente en la velocidad donde las "máquinas" nos sacan la mayor ventaja. Y con el truco que expliqué, cualquier estúpido puede jugar bala o blitz con ayuda de un motor, y aplastar a los mejores.

Mi hermano, que sabe esto mucho antes que yo, discutió aquí con no sé quiénes acerca de la incapacidad de hacer trampa a 1 min. Ya ven que es justamente a ese ritmo donde el programero tiene todas las chances a su favor. Hagan la prueba: pónganse a jugar a 1 min contra cualquier motor fuerte...

¿Cómo detectar a esta clase de programeros? Acá van algunas pistas (para Pablo, especialmente):

1. Debería ser posible que, desde el server, se obligue al cliente a "tomar una instantánea" de la pantalla y enviarla a determinada autoridad de P8, en el caso de que se sospeche de cierto jugador. Si en esa instantánea se descubre una especie de visor puesto sobre la ventana de juego, mostrando signos como "d3-e4", es que el jugador debe ir preso;

2. El cliente podría interceptar mensajes de Windows como por ejemplo el que se envía a una ventana para captar su imagen. Puesto que el programa de los hackers hace eso N veces por segundo, si el cliente es capaz de frustrar esos mensajes, el programero quedará "game over";

3. También se podría revisar periódicamente la lista de procesos activos, en busca de motores conocidos. El problema es que así habrían "falsos positivos", por ejemplo: un jugador honesto que, mientras está jugando, tiene abierto Arena con Rybka cargado...

En fin, hagan lo que quieran con estos datos. O lo que puedan. Como dije, yo intuyo que acá en P8 hay unos cuántos que se han bajado esos programitas diabólicos... No lo puedo asegurar. Pero el día que se los pueda detectar, seré el primero en carcajear.
11/06/2015 17:09

hola a todos los administradores hoy enpiesa la copa america y como se ve aka se ven muchos latinoamericano les pregunto si se puede aser un tipo de prode ke sea no muy largos donde los user pueden poner los pronosticos de sus paises les dejo la idea espro ke lo conversen estre ustedes gracias torreja2004

03/05/2015 17:41
..
01/05/2015 05:30
me gustaria sugerir para sala cartas ,un evento en el que los equipos sean conformados por paises ( un equipó argentino, uno mexicano ,uno colombiano etc) en todas las modalidades.....muchas gracias por abrir este espacio de opinion ..... saludos
19/04/2015 21:18
Es una pena lo que se ha hecho con la sala trivia, una grandisima sala que la han abandonado al maximo, una gran pena
19/04/2015 11:33
correcaballos la sala trivial ya no volvera a ser la sala q fue es una pena pero no creo q hagan nada se dijo muchas veces lo q podian hacer pero todo fueron buenas palabras y nada mas
19/04/2015 01:52
Lo que yo nunca entendí desde hace tiempo es por qué debemos utilizar una versión especial de Java , antigua , obsoleta y caduca para entrar solo a una sala , esa versión es rechazada por muchos navegadores (en mi caso Opera) , las actualizaciones de el software libre de Oracle Java son para mejorar el rendimiento en general de Java en todos los procesos de la PC y optimizarlos . Además nos dicen siempre que usemos Mozillia etc etc ... como si uno usara la PC solo para entrar a las salas de juego de buho21 . No, evidentemente uno usa esos softwares libres e imprescindibles como Adobe flash player par muchas cosas no para jugar en buho21 únicamente . Entonces pienso que es tiempo que NKdata brinde un mejor servicio para que los usuarios se sientan mas cómodos jugando en esta web .
Como un aporte sugiero se ponga todo el esfuerzo en hacer resurgir la sala Trivia , alguna manera debe haber y espero que Ian21 no se haga el distraido en este caso porque es lamentable ver vacia dicha sala en varios horarios del dia .
Saludos cordiales
19/04/2015 01:31
Una Idea: Mejorar la Entrada a las Salas de Ajedrez, Trivia, Poker sin tanta dificultad, será posible hacer ese Milagro?
07/04/2015 04:35
en el torneo de domino en un un torneo expres,en un juego de dos jugadores si se sierra el juego debe ganar el que sierra ejemplo 15-15 ambos quedaron con 15 puntos pero uno de ellos serro por lo tanto lleva la mano o la partida gracias por la atencion señores de bhuo21
01/04/2015 14:39
Hay que crear: La figura del Defensor del Usuario, con la misma categoria de los administradores de 3ª categoria.
Con la funcion de defender a los Usuarios, ante las injusticias de buho y los administradores, comprometiendose Ian21 por escrito, que acatara todas las deliberaciones que imponga dicho Defensor y por supuesto... este Defensor tiene que ser por votacion de los Ususarios.
«1011121314»

10 siguientes

Cupones de descuentos de navegadores TomTom

Sí, quiero ser socio VIP  | Ayuda | Contacto