Giter Site home page Giter Site logo

nexgen999 / dream-api Goto Github PK

View Code? Open in Web Editor NEW

This project forked from acidicoala/dream-api

0.0 0.0 0.0 247 KB

Legit DLC Proxy Unlocker

Home Page: https://cs.rin.ru/forum/viewtopic.php?f=10&t=111520

License: BSD Zero Clause License

Python 92.22% Inno Setup 5.87% Batchfile 1.91%

dream-api's Introduction

๐Ÿจ DreamAPI

Welcome to the DreamAPI repository.

For user-friendly introduction or support, please check out the official forum thread. This document and repository are meant for application developers.

๐Ÿš€ App architecture

Python

DreamAPI is written in Python 3. The python interpreter is bundled in distributable files. To run the project locally, you would need at least Python 3.8+

mitmproxy

At the core of DreamAPI lies mitmproxy - an interactive, SSL/TLS-capable intercepting proxy. It is written in python and supports python addons, which is where DreamAPI comes in. DreamAPI initializes mitmproxy and registers itself as an addon. This allows DreamAPI to intercept DLC requests made by various platforms to their services and modify responses.

SSL certificate

Virtually all web requests these days are encrypted with TLS. Hence, an SSL certificate needs to be installed in the Root Store, in order for mitmproxy to decrypt the encrypted traffic. DreamAPI tries to automatically install such a certificate when it doesn't find one installed. You can view the installed location by hitting Win+R, typing certmgr.msc, navigating to Certificates - Current User โž” Trusted Root Certification Authorities โž” Certificates and finding mitmproxy in this list.

Web proxy

Since DreamAPI works as a web proxy, an operating system needs to be configured with appropriate proxy settings for DreamAPI to work properly. DreamAPI does that automatically on every launch and shutdown of application. This is done by writing to the Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings key of the Windows registry. It is worth mentioning that DreamAPI intercepts requests only from specific domains, hence the irrelevant traffic is not tampered with.

GUI

For user convenience, DreamAPI provides a simple GUI built with TkInter with the help of infi.systray to manage the tray icon.

Packaging

To facilitate application distribution, python scripts and interpreter are bundled using PyInstaller. It produces both portable and installable executables of DreamAPI. Installable executables are then bundled into a setup file using Inno Setup.

The scripts directory has several scripts that automate from start to end the process of packaging and bundling the distributable files.

The scripts assume that there is a virtual environment located in the venv directory under the root of the project.

Running from source

There are many ways how you can run a python project from the source. Here is the flow that works for me:

  1. Install pyenv.
  2. Run the following commands from the project root in the windows command prompt (not powershell):
pyenv install 3.8.7
pyenv shell 3.8.7
pyenv exec python -m venv ./venv
scripts\install_python_requirements.bat
python src\main.py

๐Ÿ“„ License

This software is licensed under Zero Clause BSD license, terms of which are available in LICENSE.txt

dream-api's People

Contributors

acidicoala avatar anadius 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.