Giter VIP home page Giter VIP logo

tcc-sniffer's Introduction

ATTENTION

This project is open so others can learn from it.
I do not feel it is ready for public use, so I don't sugggest using it in the current state.
Many things can change, since I'm still experimenting with ideas.

If you have any suggestions or ideas, feel free to open an issue about them.


tcc-sniffer is a program that collects and decodes network packets relating to Albion Online.
This program does not collect or decode any data that would break the game rules.
The program will never send any data collected or decoded to anything outside your computer.

The program will run a simple tcp server @ localhost:9999 by default.
For those unaware, localhost is a special ip that only your computer has access to.
You can find a detailed example using nodejs in /examples/.
This example runs the sniffer in the background, connects to the server, and consumes the data.


Packets

These are the packets that get processed and sent out. - Chat Messages
- Silver / Gold Updates

This list will continue to expand as I get to things...

How to build the executable?

I have only used this on Windows. Linux/Mac users will have to figure things out themselves.

Requirements(Windows):

  • Install NPCAP (Look for the Npcap 1.60 installer link.)
  • Visual Studio (suggest 2022)
  1. Open the solution file in Visual Studio.
  2. Select Build from the menubar, then select Publish.
  3. Click the Publish button.

How do Albion's packets work?

There are 3 types of packets; Events, Requests, and Responses.

Events are essentially actions that change something.
Requests are asking for something, or just sending something.
Responses are answering a request.

Packets are identified by a special code.
Events have there own Event Codes.
Requests and Responses share Operation Codes.

Every packet is packed like a dictionary or table, or more simple; key/value pairs.
The data in the packet has a key, which is a single byte.
The data itself is given to us as a plain object, which we must convert to the actual value type.

Every packet has a key of 252 or 253, which tells us the code that identifies the packet.
252 are events
253 are operations
So, if a packet has 252=63, this is the Chat Message event.

Requests and Responses have a special key, 255, that pairs a Response to a Request.
For example, the client sends a Request where 255 = 10.
Eventually the client will receive a Response where 255 = 10.
Also, they both will have the same code on the 253 key.

Finally, Albion uses the Photon Engine for networking.
Luckily for us, people have already made libraries to decode Photon's packets.
If you're interested in seeing how that works, check out any of these:

To find alot more Albion related projects, visit AO-Data.

Command Line

Option Description Example
--debug When debugging, the program will log the packet values.
--debug-all-packets This will enable all codes to be debugged.
--stop-on-debug This will stop the program from sending debugged packets on the local network.
--events Only debug these events. 1,2,3
--requests Only debug these requests. 1,2,3
--responses Only debug these responses. 1,2,3

Example:
sniffer.exe --debug --debug-all-packets --stop-on-debug --events 1,2,3 --requests 1,2,3 --responses 1,2,3

License

We use the AGPLv3 License.
You are free to use this code however you want. However, you are not allowed to redistribute the code unless your code is also open source. The nature of this project is delicate, since it looks into the user's network stream, so we need to take special care to be as transparent as possible. Any closed source projects of this nature are in direct violation of this transparency, and therefore should not be trusted.

tcc-sniffer's People

Contributors

tbfts avatar

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.