Changes

New page: == C representations == typedef struct { char ID[4]; // An ID unsigned char pad[0x84]; } sHNHA_Header; typedef struct { char TID[4]; // Title ID unsigned long ver; // Title ver...
== C representations ==
typedef struct {
char ID[4]; // An ID
unsigned char pad[0x84];
} sHNHA_Header;

typedef struct {
char TID[4]; // Title ID
unsigned long ver; // Title version
unsigned char SHA[2][20]; // the two SHA-1 sums
} sHNHA_Title;
--[[User:Ludo6431|Ludo6431]] 19:24, 5 August 2009 (UTC)

== C dumper ==
void myprint(char *format, unsigned char *data, size_t datasize) {
while(datasize--)
printf(format, (unsigned char)*data++);
}

int main(int argc, char *argv[]) {
if(argc!=2) exit(1);

FILE *fd=fopen(argv[1], "rb");
if(!fd) exit(1);

sHNHA_Header header;
sHNHA_Title title;

fread(&header, 1, 0x88, fd); // read the header

while(fread(&title, 1, 48, fd)==48) { // read each title
printf("\nTID=");
myprint("%c", title.TID, 4);
printf("\nver=%d", title.version);
printf("\nSHA=");
myprint("%02X", title.SHA[0], 20);
printf("\nSHA=");
myprint("%02X", title.SHA[1], 20);
}

fclose(fd);
}
--[[User:Ludo6431|Ludo6431]] 19:24, 5 August 2009 (UTC)
71

edits