[CODE] for (i = 0; i < num_contents; i++) {
cid = be32(tmd + 0x01e4 + 0x24*i);
index = be16(tmd + 0x01e8 + 0x24*i);
type = be16(tmd + 0x01ea + 0x24*i);
len = be64(tmd + 0x01ec + 0x24*i);
rounded_len = round_up(len, 0x40);
printf("Encryptando y empacando........\n");
memset(iv, 0, sizeof iv);
memcpy(iv, tmd + 0x01e8 + 0x24*i, 2);
sprintf(name, "%08x.app", index);
printf("%s\n", name);
p=get_file(name);
[CODE]
bueno primero que nada quiero agradecer a arangel.. que ese es el tipo de actitud que se busca al trabajar en codigo abierto..
y espero que los demas programadores hagan lo mismo
bueno.. ahora quiero decirte que te equivocas... si te das cuenta, en todas las partes del codigo aparece el tmd, y hace un loop atravez de el dependiendo del numero de archivos que esten listados en el tmd, y la funcion get_file(name) busca la aplicacion que le toca.. (no tiene que ser exactamente en orden.. sino... con el index (tomado del tmd) que le toca....
en realidad no entiendo porque estan teniendo estos problemas.. yo supuse que se debia a que estaban tomando el tmd de otro wad.. o que talves no poseen todos los archivos...
para comprobar esto.. tambien despliego un dump del tmd en pantalla... y alli informa que archivos son los que se necesitan..
con las tools de segher pueden compilar dump-tmd.c y aplicarselos a sus tmds.. y comprobar si tienen todos los archivos