Libwiipy

Latest version: v0.5.2

Safety actively analyzes 688803 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 2

0.3.0

Changelog:
- Added new `u8` module to handle U8 archive files (files with extensions .app, .arc, .carc, and .szs)
- New classes `U8Archive` and `U8Node` to assist in U8 handling, however these are unlikely to be used directly under normal use
- New function `pack_u8()` to pack a file or folder into a U8 archive
- New function `extract_u8()` to extract a U8 archive into a folder
- **Completely redid package structure!** This is breaking!
- All title-related modules have been moved into the subpackage `title` and can now be accessed with the prefix `libWiiPy.title` instead of only `libWiiPy`
- New archive-related modules like the new `u8` one are located under the prefix `libWiiPy.archive`
- Added the basics for writing tests for the library in the future

This release is also available [on PyPI](https://pypi.org/project/libWiiPy/0.3.0/).

0.2.3

Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.

Changelog:
- Added the ability to use the Wii U NUS endpoint (`http://ccs.cdn.wup.shop.nintendo.net/ccs/download/`) to the NUS module, allowing you to get a decent speed increase with downloads by adding `wiiu_endpoint=True` to any NUS function.
- Added `encrypt_title_key()` to the Crypto module, allowing you to re-encrypt any decrypted Title Key with any common key you choose.
- Improved IV handling when decrypting Title Keys in the Crypto module, so that you can now pass the Title ID used as the IV in any of three formats (`b'0102'`, `b'\x01\x02'`, `"0102"`).
- Replaced unnecessary uses of BytesIO objects when dumping WAD, TMD, Ticket, and Content objects back into raw data.
- Updated comments in the TMD module that describe various properties stored in a TMD thanks to new information from rvtr.
- The TMD module now reads and writes two "reserved" regions of a TMD that were previously ignored and written out as all zeroes, because they were found to be critical on the DSi in [libTWLPy](https://github.com/NinjaCheetah/libTWLPy), and may be important here.

This release is also available [on PyPI](https://pypi.org/project/libWiiPy/0.2.3/).

0.2.2

Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.

Changelog:
- Changed the NUS endpoint URL from `http://ccs.shop.wii.com/ccs/download` to `https://nus.cdn.shop.wii.com/ccs/download`, which massively improves NUS download speeds. Really should've figured this one out sooner...
- boot2 WADs are now dumped properly as type `ib` instead of type `Is`.
- The TMD instance method `get_title_type()` now returns `GameChannel` instead of `GameWithChannel` for a TID high of `00010004`, since this ID refers to channels installed by games and not the games themselves.

This release is also available [on PyPI](https://pypi.org/project/libWiiPy/0.2.2/).

0.2.1

Changelog:
- Functions are now available for downloading the TMD, Ticket (for free titles), general WAD certificate (which is obtained by downloading the raw TMD and Ticket of System Menu 4.3U as it never changes), and encrypted contents for a title.
- boot2 WADs are now accepted as valid when loading WAD data into a WAD object, thanks to testing by rvtr confirming that these files work.

For more details about the main changes in libWiiPy v0.2.0, check the release notes [here](https://github.com/NinjaCheetah/libWiiPy/releases/tag/v0.2.0).

This release is also available [on PyPI](https://pypi.org/project/libWiiPy/0.2.2/).

0.2.0

Changelog:
- Entirely restructured `wad.py`, `tmd.py`, `ticket.py`, `content.py`
- Added `title.py` for higher-level access to an entire WAD and all of its components without having to handle each one separately
- Fixed a bug in `content.py` and removed a mitigation for that bug in `crypto.py` that also caused issues
- Added support for for re-encryption of content and for that content to be loaded back into a ContentRegion
- Added support for dumping TMD, Ticket, ContentRegion, and WAD objects back into raw data for outputting
- Added support for creating blank objects of each type so that data can be loaded into them after creation, rather than forcing you to have that data beforehand (this allows `title.py` to actually function for creating a new WAD from loose files)
- Removed unnecessary instance attributes that didn't need to be exposed and would become poisoned upon any changes
- Removed some remaining instance methods that just retrieved instance attributes that you could already access
- Replaced `content.py`'s `get_enc_content()` and `get_content()` with `get_enc_content_by_id()`/`get_enc_content_by_cid()` and `get_content_by_id()` and `get_content_by_cid()` to allow getting content by either its content index or ID

Please be aware that for the most part, the API for libWiiPy v0.1.0 is entirely incompatible with libWiiPy v0.2.0. Fewer dramatic changes are likely to happen in the future, but this is just how prerelease software goes.

This release is also available [on PyPI](https://pypi.org/project/libWiiPy/0.2.0/).

0.1.0

Hello world!
Features
- Parse a TMD and retrieve all important keys contained in it about the title
- Parse a WAD and find all of the sizes and offsets for the data contained within in
- Extract the certificate, crl (if applicable), ticket, TMD, encrypted content region, and meta data (if applicable) from a WAD

This allows for basic functionally such as checking the Title ID or version of a title in a given WAD. Full encrypted content extraction and decryption will be coming in a later update.

Page 2 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.