Giter Site home page Giter Site logo

casc's Introduction

CASC Extractor

This is a command-line utility written in PHP that extracts files from World of Warcraft CASC archives.

Install

Clone this repo, and run composer install to get the requirements.

Usage

  php casc.php --files <path> --out <path> [--wow <path>] [--cache <path>] [--program <wow>] [--region <us>] [--locale <enUS>]
  php casc.php --help

-f, --files    Required. Path of a text file listing the files to extract, one per line. 
-o, --out      Required. Destination path for extracted files.

-w, --wow      Recommended. Path to World of Warcraft's base directory.

-c, --cache    Optional. Path for CASC's file cache. [default: $HOME/.casc-cache]
-p, --program  Optional. The NGDP program code (wow, wow_beta, wowt). [default: wow] 
-r, --region   Optional. Region. (us, eu, cn, tw, kr) [default: us]
-l, --locale   Optional. Locale. [default: enUS]

--no-check-certificate  Optional. Ignores SSL certificate issues when connecting to HTTPS hosts.

-h, --help     This help message.

Example:

php casc.php --files dbcs.all.txt --out ./out --wow "$HOME/.wine/drive_c/Program Files (x86)/World of Warcraft"

OS Compatibility

This was written in a Linux environment, though it should also function in Windows. Windows compatibility has not yet been tested.

This requires at least 64-bit PHP 7.2.

Game Compatibility

This was designed specifically to extract data for World of Warcraft. Parts of it may happen to be compatible with other Blizzard games, but they have not been tested.

Development Status

This tool is considered complete. It should be able to extract most files from both local and remote CASC sources.

Features that are not planned to be supported:

  • Patch archives (unnecessary since we aren't going to patch old files)
  • The Encoding specification table (only required for patching)
  • Background downloader files

Disclaimer

This work is neither endorsed by nor affiliated with Blizzard Entertainment.

World of Warcraft, Warcraft, Battle.net and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries.

Thanks

I could not have done this without the documentation at the WoWDev wiki. Thanks to those who contribute there!

Some BLTE processing details (especially for encrypted blocks) came from the CASCExplorer project.

Become a Patron!

License

Copyright 2017 Gerard Dombroski

Licensed under the Apache License, Version 2.0 (the "License"); you may not use these files except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

casc's People

Contributors

erorus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

casc's Issues

Not skipping encrypted sections, thus failing an export

When trying to export db2's part of it are encrypted with still unknown keys, when this occurs the export of the file fails completely.

I would prefer it to still dump all known data and skip that part of the file so I can still use it with all decrypted data.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.