Giter Site home page Giter Site logo

bncs.py's Introduction

bncs.py

Python library for classic Battle.net client development.

For more information on available functions and classes, refer to the wiki.

Packages

  • bncs - handles connecting to and interacting with the Battle.net Chat Service
    • chat - relating to the chat environment (users, channels, flags)
    • crev - functions and classes for handling the client version checking process - supports classic, lockdown, and simple/modern variants
      • get_file_meta(file) - returns the version number (DWORD) and filename, timestamp, and size of the given file, usually an EXE
      • LocalHashingProvider(root) - class which performs version checking operations from the local file system, partially interface compatible with bnls.BnlsClient()
    • hashing - handles CD key and password hashing
      • KeyDecoder.get(key) - decodes a given CD/product key and identifies it
      • NLSClient(username, password), NLSServer - client and server implementations of the 'new login system' (NLS), an SRP-based system for verifying account logins
      • check_signature(sig, ip) - verifies that the signature presented by a server is valid for that server's IP address
      • hash_password(password), double_hash_password(password, c_token, s_token), xsha1(data) - hashes passwords and other data with Blizzard's custom SHA1 implementation
      • lockdown_sha1(data) - hashes data using another one of Blizzard's custom SHA1 implementations
    • mcp - handles the Diablo 2 realm service
    • products - contains packet ID constants and classes for reading and writing BNCS packets
    • utils - generic utilities (packet buffer, async TCP client)
    • BnetClient() - handles a complete connection to the chat service
    • BnetProduct.get(pid) - provides access to metadata on game clients that can connect to Battle.net
    • BnetIconFile.load(file) - extracts game icons from an icon file (.bni)
    • CreditQueue() - a system for delaying outbound chat messages to avoid rate limiting/flooding
  • bnls - the Battle.net Logon Service (3rd party)
    • BnlsClient() - a client for interacting with a BNLS server
  • bnftp - the Battle.net FTP service
    • BnftpClient - downloads files available through the BNFTP protocol
  • botnet - the Valhalla Legends BotNet service (used for inter-bot communication)
    • BotNetClient - a client for interacting with a BotNet server

bncs.py's People

Contributors

davnit avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

bncs.py's Issues

Cannot login with just created account

I just used the bncs_client.py script to try and log on with an account that didn't exist to pvpgn.pro. The log gives me this:

INFO:BNCS:Client completed identification as WarCraft II: Battle.net Edition
DEBUG:BNCS:UDP test skipped - sending pre-configured value
INFO:BNCS:Logging into account 'chatbot' using OLS...
ERROR:BNCS:Account login failed - Account does not exist
INFO:BNCS:Creating account 'chatbot' using OLS...
INFO:BNCS:Successfully created account 'chatbot'
INFO:BNCS:Logging into account 'chatbot' using OLS...
ERROR:BNCS:Account login failed - Incorrect password
INFO:BNCS:Disconnected: dead

Subsequent attempts do not try to create the account, so it seems to now exist. So it seems while it created the account successfully, something is up with the double_hash_password function that prevents it from actually logging in with the (single hashed) password it submitted during account creation. Is there something I'm doing wrong?

For reference: Running python 3.10.0, compiled on Ubuntu Linux 20.04 x86_64)

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.