domingo, 13 de noviembre de 2016

Los BOTs para PTC y PTP

Troll Captcha
Es normal ver en casi todos los sitios web sistemas de Captcha para impedir los BOT. Un BOT es un programa que realiza las funciones automatizadas repetitivas o no, que muchas veces se nos requieren en los sitios PTC y PTP entre otros tantos, y por la misma se nos paga. Sucede que los pagos muchas veces o siempre son muy bajos por lo cual siempre existe la tentación hacia el usuario de automatizar todo. Muchas veces se automatiza en harás de ganar más, acelerar el lento proceso del comienzo o simplemente realizar las tareas exigidas de carácter casi imposible, como 1000 clic diarios por $0,16 como es el caso de rotate4all, PTP creado en el 2013 y altamente difundido y encadenado a los demás sistemas de generar dinero y monetizar tráfico. Sucede que la mayoría de los sitios tienen un gran interés en el que el tráfico sea netamente humano y es una guerra tan incansable como la de los virus y los antivirus. Precisamente la función del  BOT es sustituir la deseada presencia humana.

Por eso hoy les voy a comentar sobre AutoHotKey, una herramienta por excelencia para automatizar nuestro dispositivo con Windows bajo el control total del mouse y el teclado. Realmente una herramienta muy potente y no se sientan mal si solo les hablo de Windows porque la realidad es que Linux existen módulos muy potentes también bajo el conocido Python que es bien aceptado por una amplia gama de desarrolladores. 

AutoHotKey BOTEste es un camino corto que se acaba rápido como fue mi caso en rotate4all entre otros sitios. En la mayoría de los casos a veces ni se logra sacar al menos una vez dinero, pero claramente la diferencia está en las habilidades de programación vs las habilidades de detección en el sistema. Los BOTs pueden ser de tipo automáticos y semiautomáticos, e inclusos robotizados en el próximo post veremos un ejemplo de semiautomático basado en ambiente real con fines educativos. En lo personal no soy partidario del baneo pues existen muchos recursos para contra restar lo no deseado o las políticas (TOS) de un sitio web. Más que establecerlas o escribirlas, deberían de ser más profesionales e impedir lo no deseado haciendo uso de los diferentes recursos de programación. Por solo citar un ejemplo de PTP, tienes un sitio surf web o rotador y no deseas que se ejecute navegación en resoluciones desconocidas, pues desarrolla un script ya sea PHP, Java o cualquier lenguaje de tu preferencia que use el dato transmitido de resolución de pantalla y lanza una advertencia de que la resolución no es admitida, pero no muchos administradores prefieren banear y listo. Al final no están ni educando y perdiendo un usuario, algo que los grandes como Facebook casi no se permiten. Pero nada si optamos por el camino corto estamos expuesto a finales rápidos. Los baneos temporales y la acumulación de baneos son más entendible pero cada cual administra a su forma. 

Pese a que no soy un experto en programación si tengo la base de muchos sistemas de programación, lo cual ayuda a familiarizarme rápido con nuevos sistemas. La Documentación de AutoHotKeys es demasiado buena y completa, cuenta con ejemplos básicos y solo usando unas pocas líneas de código y funciones básicas se logra mucho. Si por algún motivo llegamos a un punto donde se puede necesitar ayuda tiene un Forum igual de basto para completar ideas o aclarar las dudas. 

Si deseamos crear un sistema que sustituya nuestra actividad nunca esta de mas pensar como humano.

¿Pensando cómo humanos?
  • El uso de random puede mejorar mucho la no detección de nuestro BOT, sucede que no hacemos clic siempre en el espacio permitido justo en las mismas coordenadas (x, y) en pixeles, no siempre desplazamos el mouse a la misma velocidad, no siempre hacemos el clic a la misma velocidad. Esto y otros tantos fenómenos aleatorios o random en los humanos deben ser considerados en un BOT si se desea confundir los AntiBOTs.
  • No usar el mismo código que el resto es algo más que inteligente, pensemos en un autoclicker que funciona. Cada vez este será más usado de forma piramidal, esto creará una tendencia y al ver patrones iguales en tantos usuarios claramente determinaran que algo anda mal y lo eliminan atendiendo al patrón de tendencia común.
  • Los desarrolladores de AntiBOTs están constantemente renovando y perfeccionando su código, es digno hacer lo mismo o terminarás siendo superado.
  • Los sitios más antiguos se convierten en mas difícil precisamente por la experiencia sobre la marcha de diferentes ataques entre los que están presente los BOTs, comenzar atacando novatos puede ser un buen comienzo, pero nunca subestimes las capacidades ajenas.
  • Los limites e equivocaciones, los sistemas de captcha son bien simples repetidas equivocaciones o advertencias determinaran si estamos en presencia de un BOT o de alguien excesivamente bruto.
  • Los limites, si son 1000 visitas las permitidas diarias, sobre pasar el limite a 1001 o repetidamente sobre pasar el limite puede ocasionar igual baneo.
  • Sobre cumplimiento, realizar todos los días el límite de las tareas asignadas puede ser exactamente lo mismo que estar abusando de un BOT, si haces 1000 clic diarios a razón de 5 a 10 segundos, créeme eres un fenómeno humano, asi como todos los usuarios aparentemente validos de rotate4all.
  • Comportamiento alterado o mejoramiento abrupto, estabas en una media de 4 clics por días y de buenas a primeras se explota tu average.
  • En todos los casos de baneo se quedarán con tus acciones. 
Banear no es del todo fácil y prácticamente algo de niños, crear una nueva identidad no resulta muy difícil en la actualidad pese a muchas medidas evolucionadas. Los baneos solo estimulan la creación de perfiles falsos. Valora si te quedo algo por hacer en el sitio baneado.

No es la mejor práctica, pero es una alternativa muy usada en la actualidad, justo igual que cualquiera de los juegos de nuestra preferencia podemos jugarlo sin los trucos o activando los mismos, todo está en los objetivos perseguidos.

Funciones necesarias básicas en AutoHotKey para la elaboración de BOT de PTC y PTP entre otros.
Antes de las funciones un buen punto de partida es:


Funciones más importantes y casi obligatoria en el desarrollo de BOTs:
  • Hotkeys nos permite ejecutar las diferentes funciones programadas, ya sea pausar, salir, ejecutar, etc.
  • If y Else , imposible que no estén presentes en cualquier lenguaje de programación, ayuda a crear condiciones y a tomar decisiones al BOT.
  • Loop claramente si estamos hablando de monotonía nada mejor que un Loop para repetir las funciones necesarias.
  • Sleep los tiempos sincronizar todo debidamente es casi obligatorio, las esperas etc., incluso hasta para hacer sufrir menos el ordenador en funciones que deben de estar constantemente corriendo si necesidad.
  • Math los operadores matemáticos fundamentales, no se concibe nada sin un cálculo, ya sea suma, resta, random igualdad etc.
  • MouseClick y MouseMove justo de esto se trata de algo que mueva y haga los clics por uno.
  • ImageSearch Los ojos del BOT, enfocado en localizar imágenes desde las cuales terminamos ejecutando una serie de funciones.
  • Send cuando necesitamos hacer uso del teclado ya sea para cerrar una ventana con ctrl+w o cualquier tecla o combinación de teclas deseadas.
Sin extendernos mucho y tocando menos del 1% de las posibilidades de AutoHotKey estás listo para crear tus BOTs y entender algunos como el que compartire en el próximo post. Cualquier duda puedes bien o hacer uso de Google, la Documentación de AutoHotKey o el Forum de AutoHotkey o simplemente escríbeme, comenta etc.

Los que más me gustaron en mis búsquedas y que no tienen que ver precisamente con los PTC o PTP son:


Lego technics and Arduino: automated tapping machine for app testing on iPad


Flappy Bird Bot - A Robot that Plays Flappy Bird!

1 comentario: