Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: r00tsec en 2 Mayo 2013, 22:15 pm



Título: [AYUDA] Programar cheats
Publicado por: r00tsec en 2 Mayo 2013, 22:15 pm
Hola, buenos días vengo a preguntar, a ver si alguien me da una mano.. con que puedo empezar a programar cheats para Counter-Strike? Ya me descargue el Visual Studio 2010, pero la verdad no se si esto me sera útil.. quiero armar cheats como el gran Karman =p, mas que todo aprender. Si alguien me da una mano se lo agradecería, perdón si postie en el lado equivocado =/, saludos!


Título: Re: [AYUDA] Programar cheats
Publicado por: Luchoz95 en 2 Mayo 2013, 23:03 pm
Empeza leyendo algún libro de C y después lee varios source que hay acá en el foro , son muy buenos , s2!


Título: Re: [AYUDA] Programar cheats
Publicado por: x64core en 3 Mayo 2013, 22:36 pm
Hola, buenos días vengo a preguntar, a ver si alguien me da una mano.. con que puedo empezar a programar cheats para Counter-Strike? Ya me descargue el Visual Studio 2010, pero la verdad no se si esto me sera útil.. quiero armar cheats como el gran Karman =p, mas que todo aprender. Si alguien me da una mano se lo agradecería, perdón si postie en el lado equivocado =/, saludos!

Recomiendo 2012 es mucho más ligero que el 2010. Luego aprender C/C++,ASM,Ingenieria inversa. :D


Título: Re: [AYUDA] Programar cheats
Publicado por: rodrilyx en 4 Mayo 2013, 05:30 am
Empieza aprendiendo a programar en C, en primer lugar, luego algo de assembler, y saber utilizar un debugger.

Saludos!


Título: Re: [AYUDA] Programar cheats
Publicado por: 85 en 7 Mayo 2013, 02:12 am
yo lo conozco a karman y sabe ingeniería inversa, al igual que muchos otros creadores de hacks, necesitan saber de esto para romper las protecciones.

obviamente conocimiento básico de ASM, y a la hora de programar es suficiente con saber C. No se requiere una POO necesariamente para hacer un cheat.

Lo que pasa es que tenés que diferenciar si lo que querés hacer es un cheat para CS o si lo que querés hacer es romper alguna protección anticheat.
Son 2 cosas distintas.


Título: Re: [AYUDA] Programar cheats
Publicado por: 5cr173R en 7 Mayo 2013, 05:37 am
Amigo yo uso Dev-c++, y me preguntaba lo mismo, pero investigando encontre como usar las api de windows para hacer los cheats.
El problema, es que necesitas usar un debugger, o como yo, usa el art money. Con este podras buscar los Memory Address del valor que quieres editar.
Te voy a dejar el codigo del Cheat en C++, pero tu busca el art money porque no preciso donde estaba ni un manual.

Código
  1. #include <stdio.h>
  2. #include <windows.h>
  3. #include <dos.h>
  4. // inicializa las variables n=valor del trainer y timer
  5. int n=255;
  6. int n1=1000;
  7. int n2=99;
  8. int n3=3;
  9. int n4=3;
  10. int n5=3;
  11. int n6=3;
  12. int n7=1;
  13. int n8=4;
  14. int n9=10;
  15. int n10=9;
  16. int n11=12;
  17.  
  18.  
  19. int can_exit=0;
  20.  
  21. int exit_trainer() // funcion de error o salida
  22.    {
  23.    can_exit = 1;
  24.    system("cls");
  25.    printf("El proceso no esta abierto.\n");
  26.    system("echo Presione una tecla para salir.");
  27.    system("pause >nul");
  28.    }
  29.  
  30. int write_trainer() // este script inyecta el trainer en el proceso
  31. {
  32. DWORD pid; // revisa la primera ejecucion del proceso
  33. HANDLE process;
  34. HWND wnd = FindWindow(0, "Cave Story ~ Doukutsu Monogatari");
  35. GetWindowThreadProcessId(wnd, &pid);
  36. process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
  37.                if (process == 0)
  38.            {
  39.                 exit_trainer();
  40.            }
  41. WriteProcessMemory(process, (LPVOID)0x0049E6CC, &n, 4, NULL); // esta es la direccion de memoria
  42. WriteProcessMemory(process, (LPVOID)0x0049E6DC, &n1, 4, NULL); // esta es la direccion de memoria
  43. WriteProcessMemory(process, (LPVOID)0x00499BEC, &n2, 4, NULL); // esta es la direccion de memoria
  44. WriteProcessMemory(process, (LPVOID)0x00499BCC, &n3, 4, NULL); // esta es la direccion de memoria
  45. WriteProcessMemory(process, (LPVOID)0x00499C08, &n4, 4, NULL); // esta es la direccion de memoria
  46. WriteProcessMemory(process, (LPVOID)0x00499BE0, &n5, 4, NULL); // esta es la direccion de memoria
  47. WriteProcessMemory(process, (LPVOID)0x00499BF4, &n6, 4, NULL); // esta es la direccion de memoria
  48. WriteProcessMemory(process, (LPVOID)0x0002001E, &n7, 4, NULL); // esta es la direccion de memoria
  49. WriteProcessMemory(process, (LPVOID)0x00499BC8, &n8, 4, NULL); // esta es la direccion de memoria
  50. WriteProcessMemory(process, (LPVOID)0x00499BDC, &n9, 4, NULL); // esta es la direccion de memoria
  51. WriteProcessMemory(process, (LPVOID)0x00499BF0, &n10, 4, NULL); // esta es la direccion de memoria
  52. WriteProcessMemory(process, (LPVOID)0x00499C04, &n11, 4, NULL); // esta es la direccion de memoria
  53.      CloseHandle(process);    
  54.      system("cls"); // limpia la pantalla
  55.      printf("Process: %d \nPid: %d \nWindow: %d \n\n Inyect trainer... \n", process, pid, wnd); // visualiza texto en el prompt para saber que esta en ejecucion
  56.      return 0;
  57. }
  58.  
  59.  
  60. int main() // Proceso principal
  61. {
  62.    system("Cave Story ~ Trainer Mod");
  63. DWORD pid; // revisa la primera ejecucion del proceso
  64. HANDLE process;
  65. HWND wnd = FindWindow(0, "Cave Story ~ Doukutsu Monogatari");
  66. GetWindowThreadProcessId(wnd, &pid);
  67. process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
  68. while (can_exit == 0) // comprueba que el proceso esta abierto
  69.      {
  70.                if (process == 0)
  71.            {
  72.                 exit_trainer();
  73.                 break;
  74.            }
  75.            else
  76.            {
  77.      write_trainer(); // Escribe en la memoria
  78.      Sleep(300); // detiene el programa para no cargar el juego
  79.      }
  80.      }
  81.  
  82.  
  83. }
  84.  


Creo que se entiende, y si no me mandas un MP y te explico con mas detalles