Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: Zodiak98 en 19 Diciembre 2016, 23:10 pm



Título: [DUDA] ¿Cómo funciona un hack?
Publicado por: Zodiak98 en 19 Diciembre 2016, 23:10 pm
Primero que nada, iba a postear esto en programación C/C++ pero como mi pregunta es algo general no sé si irá acá, por eso lo pongo acá, si no es así, por favor muévanlo a la zona correcta.

Ok, ahora al grano. Verán, ni siquiera sé cómo empezar. Mi duda yace en que no sé cómo relacionar un programa con otro. Me leí por ahí que hay que saber cómo está construido el programa que se quiere "hackear" primero que nada.

Bien, supongamos que tenemos un programa bastante absurdo, como este:

Código
  1. #include <iostream>
  2. #include <windows.h> //Para la función Sleep.
  3.  
  4. int main() {
  5.     for(int h = 0;;h++) {
  6.          std::cout << "El valor de H es: " << h << std::endl;
  7.          Sleep(1000);
  8.     }
  9.  
  10.     return 0;
  11. }
  12.  

Ahora, ya sé cómo está construido, ¿cómo haría yo para que a través de otro programa que yo haga, la variable 'h' se reinicie a cero.

O sea, esa es mi duda, ¿cómo diantres se relaciona un programa externo con otro? Por ejemplo, más o menos como en los juegos, los shooters, que el personaje sea inmortal, o que dispare inmediatamente la mira detecte a otro personaje, etc...

Y ojo, que no pretendo crear programas maliciosos para dañar a alguien o a algo, o sea, simplemente tengo curiosidad en saber cómo carrizos funcionan esos programas.

Porque no tengo ni *** idea de cómo relacionarlos.

Un abrazo. :)


Título: Re: [DUDA] ¿Cómo funciona un hack?
Publicado por: engel lex en 19 Diciembre 2016, 23:36 pm
La cosa es que al decir "como está construido" no se refiere a como está programado, sino a lo que queda después de compilar, como se manejan las memorias, como estádistribuido el programa, como el sistema operativo maneja las llamadas

Es importante el tener una idea como está programado, pero es más importante conocer cómo están armados los programas por dentro 


Título: Re: [DUDA] ¿Cómo funciona un hack?
Publicado por: _TTFH_3500 en 20 Diciembre 2016, 00:32 am
Primero tiene que conocer en que posicion de la memoria RAM se guarda el valor, si es memoria estatica o dinamica y cuanto espacio ocupa, al igual que su valor y usar un programa para encontrar dicha dirección.

Código
  1. #include <stdio.h>
  2. #include <windows.h>
  3.  
  4. int main() {
  5. int i = 0; // 4 bytes en 0x0022FE4C
  6. while (true) {
  7. i++;
  8. printf("%d\n", i);
  9. Sleep(5000);
  10. }
  11. return 0;
  12. }

Luego reemplazar el valor con el que quieres:

Código
  1. #include <stddef.h>
  2.  
  3. int main() {
  4. int* ptr = NULL;
  5. ptr = (int*)0x22fe4c;
  6. while (true) *ptr = -1;
  7. // (i = -1) => (i++ = 0)
  8. return 0;
  9. }