Con que lenguaje se programa un BOT para juegos online?

Iniciado por Bandicoot, 22 Enero 2020, 00:57 AM

0 Miembros y 1 Visitante están viendo este tema.

Bandicoot

Hola a todos, disculpen la molestia, quería preguntar qué herramientas o lenguaje de programación me recomiendan para crear un bot para juegos online de escritorio o de navegador, quisiera crear un bot que automatize tareas de un juego, como ir a matar cierto mobs, completar quest, conseguir recursos, etc.

No tengo experiencia con la programación, yo suelo jugar MU Online o WoW en mis ratos libres, pero me llamo la atención aprender a programar, así que estuve aprendiendo desarrollo web (HTML/CSS), pero antes de aprender mi primer lenguaje de programación recordé que hay ciertas páginas que venden bots para otros juegos online y pensé que sería bueno aprender un lenguaje que me ayude a crear un bot  :laugh:

Espero me pueda ayudar, gracias de ante-mano por cualquier ayuda.

PD: Los juegos como WoW y MU Online creo que están hechos en C++, entonces tendría que aprende este lenguaje? O habría un mejor lenguaje para programar bots? Disculpen la ignorancia  :-(

@XSStringManolo

Yo te recomiendo javascript. Principalmente porque te sirve para mejorar tus webs con html, css, es multiplataforma y es un lenguaje muy permisivo. Los juegos de navegador suelen estar en javascript y el propio javascript está compilado en C++, en el cual se suelen construir hacks y bots para juegos.

En general te recomiendo que aprendas a programar en javascript y a hacer cosas sencillas en C++ en el que vas a encontrar muchos códigos de ejemplo.

Si nunca has programado no es algo que vayas a aprender en 1 mes o 2. Requiere tiempo.

Te recomiendo leer libros y libros, hacer ejercicios muy sencillos e ir aumentando la dificultad. Una vez te manejes puede aprender node.js y construir bots.

Bandicoot

Cita de: @?0!,5^34 en 22 Enero 2020, 15:41 PM
Yo te recomiendo javascript. Principalmente porque te sirve para mejorar tus webs con html, css, es multiplataforma y es un lenguaje muy permisivo. Los juegos de navegador suelen estar en javascript y el propio javascript está compilado en C++, en el cual se suelen construir hacks y bots para juegos.

En general te recomiendo que aprendas a programar en javascript y a hacer cosas sencillas en C++ en el que vas a encontrar muchos códigos de ejemplo.

Si nunca has programado no es algo que vayas a aprender en 1 mes o 2. Requiere tiempo.

Te recomiendo leer libros y libros, hacer ejercicios muy sencillos e ir aumentando la dificultad. Una vez te manejes puede aprender node.js y construir bots.

Muchas gracias por responder, justo estaba viendo si aprender javascript o C++,  pero para juegos de escritorio que no usan el navegador que lenguaje me recomiendas o con el mismo lenguaje de javascript puedo hacerlos?

Eleкtro

#3
Cita de: Bandicoot en 22 Enero 2020, 00:57 AM
PD: Los juegos como WoW y MU Online creo que están hechos en C++, entonces tendría que aprende este lenguaje? O habría un mejor lenguaje para programar bots? Disculpen la ignorancia  :-(

1. Todos los bots que yo he conocido para juegos de Blizzard están desarrollados en C# (la interfaz gráfica y el código funcional), tanto los cheats gratuitos (ej. TurboHUD) como los bots de pago para WoW, D3, HS, Overwatch y etc. Te lo digo por experiencia propia, he adquirido muchos y diferentes bots a lo largo de los años, y no solo para juegos de Blizzard, así que te puedo asegurar que en general C# suele ser la elección favorita de casi todos (sino todos) los vendedores de bots para juegos online triple AAA. Esto lo puedes comprobar por ti mismo en los sitios web dedicados a la venta de bots de pago para juegos online de ciertos autores/vendedores (ej. https://forum.iwantcheats.net/).

Claro que también existen bots desarrollados en C/C++, y en Python y en otros lenguajes para otros juegos online, pero no es tan común ver ese tipo de bots a la venta.

2. C# (y también VB.NET, su hermano gemelo en la sombra) es un lenguaje con una curva de aprendizaje relativamente facil, con un gran soporte por parte de la comunidad de programadores, con una de las IDEs más.... qué digo, la IDE mejor elaborada, completa y sofisticada del mercado (Visual Studio) y con un amplio abanico de plugins (mejor conocidas como extensiones). Con un extenso, casi infinito catálogo de librerías de código abierto (ej. en GitHub) así como una infrastructura (Nuget) que permite a los desarrolladores crear, compartir, buscar y consumir código útil/librerías desde la IDE. Con una enorme referencia online y documentación del lenguaje (MSDN/Microsoft Docs). Con un sistema de desarrollo robusto a la vez que facil e intuitivo (RAD) para interfaces gráficas, y en general un lenguaje capaz de cubrir las necesidades de casi cualquier propósito del programador (ej. desarrollar un bot).

3. Sin embargo, aprender un lenguaje de programación y por muy sofisticado que este sea no te va a servir absolutamente de nada para desarrollar un bot si por otro lado no adquieres un conocimiento a nivel avanzado en ingeniería inversa, y eso llevará muchos años dominarlo medianamente bien (yo no soy ningún experto en ing. inversa, tan solo doy mi opinión). Ten en cuenta que probablemente deberás saber lo básico sobre análisis de packets, sobre inyección de procesos y api-hooking, debes averiguar los valores y estructuras del juego analizando el executable e interceptar los packets y evitar el sistema anti-cheats, eso y otras cosas de las que deberás aprender lo básico dependiendo del tipo de bot que pretendieras elaborar (ej. necesitarías aprender lo básico de las APIs de DirectX o de SharpDX para .NET si quieres mostrar un HUD en un juego que corra a pantalla completa).

Es algo que un principiante en C# sencillamente no puede lograr. Tampoco un erudito en C#, a menos que también sea erudito de otras materias necesarias o en su defecto disponga de las herramientas necesarias para saltarse el aprendizaje (ej. APIs de terceros).

...por otro lado siempre tienes la alternativa de desarrollar una especie de macro (enviar plsaciones del teclado o del ratón a coordenadas específicas de la ventana del juego), lo cual requiere mucho menos conocimiento y te puede servir según cual sea el propósito del bot, pero no podrás hacer cosas tan sofisticadas como los bots en venta que puedes encontrar por Internet para juegos de Blizzard, por ejemplo, mediante una macro no vas a poder medir distancias para moverte por un mapa (solo harás asunciones de la distancia), ni tampoco podrás hacer algo similar a un aimbot.

4. Por último, debes tener en cuenta que dependiendo del juego puede que exista un alma caritativa que ya haya invertido su vida y su tiempo de forma altruista analizando el executable del juego para averiguar y extraer todo lo necesario y compartir con los demás mortales (quienes no poseemos suficientes conocimientos de ing. inversa) una API con todas las estructuras y valores del juego en cuestión ya puestas a tu disposición para consumir e interoperar de forma relativamente facil con el juego.
La página https://www.ownedcore.com/ es un buen lugar de referencia para encontrar este tipo de cosas para juegos de Blizzard. No he mirado si hay alguna API publicada para el WoW, pero seguramente la habrá, ya que si la hay para Diablo III y esta se utiliza en los bots de pago del Diablo III. Probablemente también sea la página más adecuada para formular dudas específicas o solicitar orientación sobre el desarrollo de bots para WoW... u otros juegos online que se inicien a través de un executable cliente.

Tip: en ownedcore puedes encontrar una librería gratuita y desarrollada en C# que se llama "graymagic", la cual he visto utilizar en dos bots diferentes y de pago de Diablo III para el análisis/lectura/escritura de la memoria del proceso. Se supone que es una librería optimizada en este aspecto, así que no debería faltar en tu colección, ya que probablemente sirva igual de bien para el desarrollo d eun bot del WoW.

Saludos.








Bandicoot

Cita de: Eleкtro en 22 Enero 2020, 17:10 PM
1. Todos los bots que yo he conocido para juegos de Blizzard están desarrollados en C# (la interfaz gráfica y el código funcional), tanto los cheats gratuitos (ej. TurboHUD) como los bots de pago para WoW, D3, HS, Overwatch y etc. Te lo digo por experiencia propia, he adquirido muchos y diferentes bots a lo largo de los años, y no solo para juegos de Blizzard, así que te puedo asegurar que en general C# suele ser la elección favorita de casi todos (sino todos) los vendedores de bots para juegos online triple AAA. Esto lo puedes comprobar por ti mismo en los sitios web dedicados a la venta de bots de pago para juegos online de ciertos autores/vendedores (ej. https://forum.iwantcheats.net/).

Claro que también existen bots desarrollados en C/C++, y en Python y en otros lenguajes para otros juegos online, pero no es tan común ver ese tipo de bots a la venta.

2. C# (y también VB.NET, su hermano gemelo en la sombra) es un lenguaje con una curva de aprendizaje relativamente facil, con un gran soporte por parte de la comunidad de programadores, con una de las IDEs más.... qué digo, la IDE mejor elaborada, completa y sofisticada del mercado (Visual Studio) y con un amplio abanico de plugins (mejor conocidas como extensiones). Con un extenso, casi infinito catálogo de librerías de código abierto (ej. en GitHub) así como una infrastructura (Nuget) que permite a los desarrolladores crear, compartir, buscar y consumir código útil/librerías desde la IDE. Con una enorme referencia online y documentación del lenguaje (MSDN/Microsoft Docs). Con un sistema de desarrollo robusto a la vez que facil e intuitivo (RAD) para interfaces gráficas, y en general un lenguaje capaz de cubrir las necesidades de casi cualquier propósito del programador (ej. desarrollar un bot).

3. Sin embargo, aprender un lenguaje de programación y por muy sofisticado que este sea no te va a servir absolutamente de nada para desarrollar un bot si por otro lado no adquieres un conocimiento a nivel avanzado en ingeniería inversa, y eso llevará muchos años dominarlo medianamente bien (yo no soy ningún experto en ing. inversa, tan solo doy mi opinión). Ten en cuenta que probablemente deberás saber lo básico sobre análisis de packets, sobre inyección de procesos y api-hooking, debes averiguar los valores y estructuras del juego analizando el executable e interceptar los packets y evitar el sistema anti-cheats, eso y otras cosas de las que deberás aprender lo básico dependiendo del tipo de bot que pretendieras elaborar (ej. necesitarías aprender lo básico de las APIs de DirectX o de SharpDX para .NET si quieres mostrar un HUD en un juego que corra a pantalla completa).

Es algo que un principiante en C# sencillamente no puede lograr. Tampoco un erudito en C#, a menos que también sea erudito de otras materias necesarias o en su defecto disponga de las herramientas necesarias para saltarse el aprendizaje (ej. APIs de terceros).

...por otro lado siempre tienes la alternativa de desarrollar una especie de macro (enviar plsaciones del teclado o del ratón a coordenadas específicas de la ventana del juego), lo cual requiere mucho menos conocimiento y te puede servir según cual sea el propósito del bot, pero no podrás hacer cosas tan sofisticadas como los bots en venta que puedes encontrar por Internet para juegos de Blizzard, por ejemplo, mediante una macro no vas a poder medir distancias para moverte por un mapa (solo harás asunciones de la distancia), ni tampoco podrás hacer algo similar a un aimbot.

4. Por último, debes tener en cuenta que dependiendo del juego puede que exista un alma caritativa que ya haya invertido su vida y su tiempo de forma altruista analizando el executable del juego para averiguar y extraer todo lo necesario y compartir con los demás mortales (quienes no poseemos suficientes conocimientos de ing. inversa) una API con todas las estructuras y valores del juego en cuestión ya puestas a tu disposición para consumir e interoperar de forma relativamente facil con el juego.
La página https://www.ownedcore.com/ es un buen lugar de referencia para encontrar este tipo de cosas para juegos de Blizzard. No he mirado si hay alguna API publicada para el WoW, pero seguramente la habrá, ya que si la hay para Diablo III y esta se utiliza en los bots de pago del Diablo III. Probablemente también sea la página más adecuada para formular dudas específicas o solicitar orientación sobre el desarrollo de bots para WoW... u otros juegos online que se inicien a través de un executable cliente.

Tip: en ownedcore puedes encontrar una librería gratuita y desarrollada en C# que se llama "graymagic", la cual he visto utilizar en dos bots diferentes y de pago de Diablo III para el análisis/lectura/escritura de la memoria del proceso. Se supone que es una librería optimizada en este aspecto, así que no debería faltar en tu colección, ya que probablemente sirva igual de bien para el desarrollo d eun bot del WoW.

Saludos.

WAO! Tremenda respuesta Master, me quedo muy claro todo, quiero crear un bot y se que eso no lo podré hacer de la noche a la mañana, me puede tomar años en aprender siquiera lo necesario, pero quiero aprender a hacerlo, tambien veo que con C# puedo desarrollador muchas cosas (Webs, juegos, programas, etc)  :o

Gracias por tu ayuda, tan bien me preguntaba si conoces de algún buen curso o vídeo tutorial para empezar a aprender  C# :)