Line 10:
Line 10:
unsigned char SHA[2][20]; // the two SHA-1 sums
unsigned char SHA[2][20]; // the two SHA-1 sums
} sHNHA_Title;
} sHNHA_Title;
−
--[[User:Ludo6431|Ludo6431]] 19:24, 5 August 2009 (UTC)
+
+
typedef struct {
+
unsigned char pad[0x18];
+
} sHNHA_Footer;
+
--[[User:Ludo6431|Ludo6431]] 19:56, 5 August 2009 (UTC)
== C dumper ==
== C dumper ==
Line 26:
Line 30:
sHNHA_Header header;
sHNHA_Header header;
sHNHA_Title title;
sHNHA_Title title;
+
sHNHA_Footer footer;
fread(&header, 1, 0x88, fd); // read the header
fread(&header, 1, 0x88, fd); // read the header
+
printf("\nnumber of titles : %d", header.number);
+
+
size_t count=header.number;
+
while(count--) { // read each title
+
fread(&title, 1, sizeof(sHNHA_Title), fd);
−
while(fread(&title, 1, 48, fd)==48) { // read each title
printf("\nTID=");
printf("\nTID=");
myprint("%c", title.TID, 4);
myprint("%c", title.TID, 4);
Line 38:
Line 47:
myprint("%02X", title.SHA[1], 20);
myprint("%02X", title.SHA[1], 20);
}
}
+
+
fread(&footer, 1, sizeof(sHNHA_Footer), fd); // read the footer
+
+
if(fgetc(fd)!=EOF) printf("error");
fclose(fd);
fclose(fd);
}
}
--[[User:Ludo6431|Ludo6431]] 19:24, 5 August 2009 (UTC)
--[[User:Ludo6431|Ludo6431]] 19:24, 5 August 2009 (UTC)