Skip to main content

Pure Python CASC file structure reader

Project description

PyCASC

(This product is very unfinished and should not be used for anything other than entertainment/simple exports. Report any exceptions thrown in issues)

A Python3 CASC library and pyqt CASC Viewer app.

This is part of a much larger year-long project, that will hopefully result in a very nice blizzard reverse-engineering toolkit.

CASC?

Blizzard's proprietary data storage format (used in practically all of their products)

Why?

There exists so many instances of CASC viewing libs from generations ago, each with their own benefits / losses, but all in languages such as C or C#. And all depending on the same C++ based CASCLib.

Now there isn't anything wrong with that, but there also isn't anything wrong with a bit of expansion. This is a PURE Python implementation of Casc, implementing a full-featured reader, as well as a sample PyQT5 usage of the library.

How do I use it?

As a library? There is a plethora of undocumented api endpoints and ways to use the library. The main methods are outlined in PyCASC/init.py at the bottom of the file.

The library is currently undocumented because it is in early alpha, proper documentation will come as the library develops.

As an app? You modify CASCViewApp.py at the very bottom, and change it to the directory of Blizzard game. And then run that file (assuming you have all of the packages in requirements.txt installed, the CASCViewApp's requirements differ from the library).

What's the library do?

  • Open a CASC filesystem (Supports most CASC games)
  • List all files that exist in both the filesystem and the rootfile
  • Read individual files into memory (for exporting or analysis)

What's the app do?

Current features:

  • Explore the file-tree of a CASC filesystem
  • Export individual files one at a time
  • View files as hexdumps
  • View text-files as text files
  • Open files externally, without having to export them.
  • View very basic file/folder information (basically just file size)
  • Folder exports ( export an entire file tree, with folder structure )

Planned features:

  • DBC viewing & exporting as sql/csv ( Blizzard proprietary database format)
  • BLP viewing & exporting ( Blizzard proprietary image format )

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyCASC-0.1.0.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

PyCASC-0.1.0-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file PyCASC-0.1.0.tar.gz.

File metadata

  • Download URL: PyCASC-0.1.0.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.3

File hashes

Hashes for PyCASC-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5ba134562c9d532218cbed2314f4f070a66d420297a3df539434ffbe28422a4c
MD5 3b863ac00b376e8baf1b8848d618b727
BLAKE2b-256 067b01f6e5a9b11abc2a229d1c29225172697ffc74eff97a0e2509d0a422b542

See more details on using hashes here.

File details

Details for the file PyCASC-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: PyCASC-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.3

File hashes

Hashes for PyCASC-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d3db4580a2f08714f35150e306a03b3c04eee588658a4999ad55cdbd2693176a
MD5 f39261adf54e7f762ef0dff3a436bfe5
BLAKE2b-256 8ae84ebc37d3a8e1f1ce9e4c003a07d35caacc06688af248043193f48e0e6907

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page