Talk:Nintendo DS Cart Whitelist: Difference between revisions

Ludo6431 (talk | contribs)
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...
 
Ludo6431 (talk | contribs)
a footer
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)
Return to "Nintendo DS Cart Whitelist" page.