EL problema es que solo me abre los 3 primeros caracteres del archivo,¿ que tengo mal?
Le he añadido unos fprint para controlar los valores de las variables.
Código: Seleccionar todo
#include <stdio.h>
#include <stdlib.h>
//#include "split.h"
int main(int argc, char *argv[])
{
//abrimos el stub en modo de lectura binaria.
FILE* stub = fopen( *argv , "rb" );
printf("abierto\n");//debug
getchar();//debug
if( !stub ){return 0;} //si ha ocurrido un error, cerramos el Stub.exe
fseek( stub , 0 , SEEK_END);//inicio ejecutable
int size = ftell( stub ); //sacamos el tamaño
printf("ya tenemos tamanho %i\n",size);//debug
getchar();//debug
char* cadena = ( char * )malloc( size );
//ahora limpiamos el cadena para evitar errores y basura en nuestro archivo.
memset( cadena , 0 , size );
//con eso ya tenemos nuestro cadena listo para leer el archivo.
//ahora necesitamos situarnos en el lugar donde se encuentra el archivo, obviamente
//seria en la direccion donde termina nuestro stub.exe.
fseek( stub , 0 , SEEK_SET );
//ahora comenzamos a copiar los datos de nuestro exe y los pasamos a nuestro cadena
//para luego desencriptarlos.
fread( cadena , size, 1 , stub );
printf("antes split\n");
printf(cadena);
getchar();
}
gracias por la ayuda