Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Fera Core en 20 Abril 2016, 03:34 am



Título: Hola,me gustaria saber como modificar un juego desde un archivo binario(bin,dat)
Publicado por: Fera Core en 20 Abril 2016, 03:34 am
 :D

Hola tengo un proyecto en cual tengo que modificar el juego que elegi Uniting Barrage Action (Touhou) , quiero traducirlo al español ya que no hay parches, y lo compartire.
tengo que ser mas modificaciones para que me hagan valido el proyecto y quisiera saber algunos consejos, recomendaciones de como abrir un archivo binario , modificarlo y guardarlo para usarlo como un parche.

Gracias por su atencion



Título: Re: Hola,me gustaria saber como modificar un juego desde un archivo binario(bin,dat)
Publicado por: HardForo en 20 Abril 2016, 04:08 am
Tamaño de los archivos a modificar ?

Que has planteado hasta ahora ? muestra algo


Título: Re: Hola,me gustaria saber como modificar un juego desde un archivo binario(bin,dat)
Publicado por: MAFUS en 20 Abril 2016, 16:40 pm
Pregunta en el foro de ingeniería inversa.
Te diran como buscar y modificar cadenas dentro de los binarios.


Título: Re: Hola,me gustaria saber como modificar un juego desde un archivo binario(bin,dat)
Publicado por: Fera Core en 21 Abril 2016, 00:55 am
Uso turbo c++, lee el archivo .dat no se porque me da error al abrir .bin(ya lo eh probado con  strcat(NombreArchivo, ".bin");) bueno lo que lee y guarda  en texta me sale sibolos codigo ancii y no se como descodificarlos

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5.  
  6.  
  7.  
  8. void limpriarCadena(char cad[], int n) {
  9.  
  10.    for(int i = 0; i < n; i++) {
  11.  
  12.   cad = '\0';
  13.    }
  14. }
  15.  
  16. int main() {
  17.  
  18.    char Unidad[3];
  19.    char Ruta[150];
  20.    char RutaAbsoluta[150];
  21.    char NombreArchivo[50];
  22.    char c=' ';
  23.    FILE *F,*N;
  24.  
  25.  
  26. do {
  27.   clrscr();//limpiar la ubicacion cada vez que se cicle
  28.   limpriarCadena(Unidad, 2);
  29.   limpriarCadena(Ruta, 150);
  30.   limpriarCadena(RutaAbsoluta, 150);
  31.   limpriarCadena(NombreArchivo, 50);
  32.  
  33.   printf("\n -Ingresa la letra de la unidad de tu dispositivo(C,D,F...):\n-> ");
  34.   scanf("%c", &Unidad[0]);
  35.   strcat(Unidad, ":\\");
  36.   strcpy(RutaAbsoluta, Unidad);
  37.  
  38.   printf("\n -Ingresa la ruta del archivo(deja en blanco si esta en la raiz):\n-> %s", Unidad);
  39.   while(getchar()!='\n');
  40.   gets(Ruta);
  41.   if(strlen(Ruta)!=0) {
  42.  
  43.       strcat(RutaAbsoluta, Ruta);
  44.       strcat(RutaAbsoluta, "\\");
  45.   }
  46.  
  47.   printf("\n Ingresa el nombre del archivo binario (.dat) que desea abrir: \n");
  48.   gets(NombreArchivo);
  49.   strcat(NombreArchivo, ".dat");
  50.   strcat(RutaAbsoluta, NombreArchivo);
  51.  
  52.  
  53.   F = fopen("M_juego.txt", "rb");
  54.  
  55.   if(F == NULL) {
  56.  
  57.             printf("\n\n Error al abrir el archivo! Intenta de nuevo...\nPresiona enter para continuar...");
  58.         while(getchar()!='\n');
  59.            }
  60.  
  61.     } while(F == NULL);// cierro ciclo DO WHILE
  62.  
  63.     clrscr();
  64.  
  65.     printf("\n  Texto en:  %s\n\n", RutaAbsoluta);  // imprime la ruta del archivo
  66.   N = fopen("M_juego.txt", "wb");
  67.  
  68.   printf("El respaldo se creo correctamente ");
  69.   while(!feof(F)) {
  70.  
  71.             c = getc(F);
  72.         fprintf(N,"%c",c);
  73.             printf("%c", c);
  74.  
  75.         }
  76.       puts("Copia de seguridad creada con exito");
  77.       fclose(F);
  78.       fclose(N);
  79.  
  80.   getch();
  81.  
  82.   return 0;
  83. }


MOD EDIT: Usar etiquetas GeSHi y no duplicar posts.


Título: Re: Hola,me gustaria saber como modificar un juego desde un archivo binario(bin,dat)
Publicado por: HardForo en 21 Abril 2016, 01:24 am
Cuanto mide el archivo origen ? cuanto mide el archivo destino ?

Si los ves con un editor...... ves lo mismo ?


Título: Re: Hola,me gustaria saber como modificar un juego desde un archivo binario(bin,dat)
Publicado por: Fera Core en 21 Abril 2016, 01:46 am
soy un estudiante que esta investigando como abrir un archivo bin o dat para modificarlo, pero no se como descodificar el codigo ansii, nesecito buscar donde puedo traducirlo. Ya que hay muchos archivos .dat


Título: Re: Hola,me gustaria saber como modificar un juego desde un archivo binario(bin,dat)
Publicado por: HardForo en 21 Abril 2016, 01:57 am
Simplemente buscas una cadena y la reemplazas por otra del mismo tamaño (si del mismo tamaño)

Y guardas el archivo modificado (puede ser el mismo) o uno nuevo.


PD: si conoces la estructura del archivo, ya puedes hacer otras cosas...... pero sino lo conoces no puedes cambiar el tamaño de los strings (ya que no sabes si son de longitud fija o variable) aunque claro podrias probar (verifica si hay un caracter terminador en las cadenas)


Título: Re: Hola,me gustaria saber como modificar un juego desde un archivo binario(bin,dat)
Publicado por: MAFUS en 21 Abril 2016, 09:02 am
A ver: son archivos binarios y guardan los datos de forma binaria. Vas a ver sìmbolos raros porque traduces los bytes a ascii, pero son eso, bytes. Pueden ser enteros, reales, complejos, cadenas, cadenas ofuscadas, código ejecutable, cualquier cosa.

A lo mejor con un desensamblador, tienes suerte, y te puede arrojar el código máquina y puedes llegar a ver las cadenas de texto.

Cómo te dije expon tu consulta en ingeniería inversa, los chicos de allí se dedican a eso.


Título: Re: Hola,me gustaria saber como modificar un juego desde un archivo binario(bin,dat)
Publicado por: HardForo en 21 Abril 2016, 11:27 am
No es necesario desensamblar nada

Obviamente que los caracteres de control (si son interpretados al momento de visualizarse el archivo) no te dejan ver bien las cadenas, pero estan ahi (excepto el archivo esté ofuscado o cifrado) y depende del editor con que las abras.

Una vez que encuentras las cadenas..... las reemplazas por otras de la misma longitud.

(lo he hecho antes)


Título: Re: Hola,me gustaria saber como modificar un juego desde un archivo binario(bin,dat)
Publicado por: Fera Core en 27 Abril 2016, 08:37 am
ok gracias , disculpen por no contestar antes estaba haciendo algunas tareas, investigare boctulus, pero hay algo curioso es que en turbo c++ , puedes editarlo directamente desde el dos shell, y nesecitare instalar un xp de 32 bits.


Título: Re: Hola,me gustaria saber como modificar un juego desde un archivo binario(bin,dat)
Publicado por: HardForo en 27 Abril 2016, 14:54 pm
ok gracias , disculpen por no contestar antes estaba haciendo algunas tareas, investigare boctulus, pero hay algo curioso es que en turbo c++ , puedes editarlo directamente desde el dos shell, y nesecitare instalar un xp de 32 bits.

No tiene nada del otro mundo, lo que pasa es que no te interpreta los caracteres de control (backspace, etc)