wadunpack.py 810 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/usr/bin/env python2
  2. import sys, os, os.path
  3. import pywii as wii
  4. args = sys.argv[1:]
  5. if args[0] == "-dpki":
  6. wii.loadkeys_dpki()
  7. args.pop(0)
  8. else:
  9. wii.loadkeys()
  10. wadfile = args.pop(0)
  11. outdir = args.pop(0)
  12. wad = wii.WiiWad(wadfile)
  13. wad.showinfo()
  14. if not os.path.isdir(outdir):
  15. os.mkdir(outdir)
  16. for ct in wad.tmd.get_content_records():
  17. data = wad.getcontent(ct.index)
  18. f = open(os.path.join(outdir, "%08X" % ct.cid),"wb")
  19. f.write(data)
  20. f.close()
  21. f = open(os.path.join(outdir, "cetk"),"wb")
  22. f.write(wad.tik.data)
  23. f.close()
  24. f = open(os.path.join(outdir, "tmd"),"wb")
  25. f.write(wad.tmd.data)
  26. f.close()
  27. f = open(os.path.join(outdir, "certs"),"wb")
  28. for cert in wad.certlist:
  29. f.write(cert.data)
  30. wii.falign(f,0x40)
  31. f.close()
  32. f = open(os.path.join(outdir, "footer"),"wb")
  33. f.write(wad.footer)
  34. f.close()