Mecha allows you to debug, study, and modify the League of Legends client

Overview
Mecha Header
Mecha allows you to debug, study, and modify the League of Legends client

Usage

To use Mecha, you must compile it first. See this for more information.


As the description may already suggest, Mecha allows you to completely debug the client from top to bottom. It also gives you a chance to inject your own code and resources into the client, and much more. This is all made possible through a process of hooking and utilizing the Mecha GUI.


Once compiled, you can open the Mecha GUI via the Mecha GUI.exe file. Other .exe and .dll files are merely dependencies.


The Mecha GUI makes this all simple and features functionality for:

  • Hooking and Unhooking your client
  • Retrieving the DevTools URL
  • Injecting custom JavaScript "plugins" into the client
  • Customizing hook settings

How to Use

  1. Build or download a compiled version of Mecha
  2. Launch your LoL client
  3. Launch Mecha GUI.exe
  4. Press "Hook" (Note: Only once is enough. Your client will be hooked until you unhook.)
  5. Relaunch your client

Using Mecha is simple. Clicking around in the GUI should answer all of your questions, but in case something goes wrong, you can always create an issue.


Development

Building from Source

  1. Clone the repository git clone https://github.com/x00bence/Mecha.git
  2. Build the solution with Visual Studio 2019 using the default Release | x86 configuration. (NOTE: Will NOT compile with other configurations by default)

JavaScript Plugins :: Experimental

As noted in above sections, you also have the possibility to develop JavaScript "plugins" that will get executed in the scope of the client. This allows you to directly modify resources, hook and override internal JavaScript, dump data, and more.


Plugins can be installed simply by dragging and dropping them into your chosen "plugins" folder. Plugins are loaded from said folder every time you load or refresh your client. Refer to the Mecha GUI for more information.


Roadmap

  • ⚠️ Revise Payload and fix potentially inefficient and/or insecure code.
  • 🛠️ Improve Wrapper to better separate UI and logic (MVVM?). Fix spaghetti code.
  • ⚙️ Add support for plugin initialization ordering. JSON. Revamp loading.
  • 🔎 Add support for proxying resources
  • 📦 Create a custom JavaScript API for robust plugin development.

Acknowledgements

Mecha has been heavily inspired and influenced by Ace and a Hackathon-created patch diff tool. Although Mecha has different intentions, these two tools ultimately gave the idea to create Mecha. Big shoutouts.


License

Mecha is licensed under the MIT license.


See the LICENSE file for more details.

Comments
  • cIient is zoomed in

    cIient is zoomed in

    When i launch the hooked client, i cant see most of the client as it is liked zoomed in and doesnt fit to the window. I only see the parts as i captured in the screenshot. Screenshot_4

    bug 
    opened by asatiki 3
  • Windows DPI Settings not getting applied correctly

    Windows DPI Settings not getting applied correctly

    Describe the bug Changing the DPI Scaling of a Screen doesn't get applied to the league client.

    To Reproduce Steps to reproduce the behavior:

    1. Go to Display Settings
    2. Change Scaling to 150% or more
    3. Hook League
    4. Start League

    Expected behavior League should be displayed correctly (as it is unhooked)

    Screenshots Hooked: https://cdn.discordapp.com/attachments/542307049745285120/831545180649816074/NVIDIA_Share_21-04-13_17-03-37.webp Unhooked: https://cdn.discordapp.com/attachments/542307049745285120/831544480246136862/NVIDIA_Share_21-04-13_17-00-51.webp

    Desktop (please complete the following information):

    • Windows 10
    • League of Legends Patch Version: 11.7
    • Antivirus (if any): Windows Defender

    Additional context

    • No plugins enabled
    bug wontfix out of scope 
    opened by LoggeL 2
  • Got banned

    Got banned

    Just got banned by using your tool https://imgur.com/a/FuTVgYL

    I was using it with a plugin to auto accept queue. The code for it was:

    const AutoAccept = Data => {
        if (Data[2].uri == "/lol-lobby-team-builder/v1/matchmaking") {
            if (Data[2].data.searchState == "Found")
                fetch("/lol-matchmaking/v1/ready-check/accept", { method: "POST" })
        }
    }
    
    bug 
    opened by Washiii 1
  • How do you replace a .js at the loading screen?

    How do you replace a .js at the loading screen?

    Hi there, fantastic program. I really wish to implement a few gaphical changes, but to do that I would need to replace a file named rcp-fe-lol-champ-select.js

    I've played a bit with the plugins folder but sadly, no success.

    Could you help me figure out how the plugins folder work? Thanks.

    question 
    opened by dragitz 1
  • client completely black on login

    client completely black on login

    hi, the issue is the client is completely black on login, can't close it normally (have toend the process in task mngr), and when i do the client re-opens randomly

    opened by jake9112 0
  • Mecha & VPN issues

    Mecha & VPN issues

    I have been informed by a Mecha user that using some VPNs with a hooked client might cause your client to break, and make it unable to boot up. In most cases, the client froze on the splash screen (the golden "League of Legends" logo).

    After a bout of testing and reproducing the issue, I have determined that the issue is not on the Mecha layer, but on the CEF/VPN/OS layer.

    I cannot promise a complete fix as this is an out of scope edge case, but I will try to find workarounds.

    For now, I will put this issue on hold, as I'm more focused on fixing up the Mecha codebase and releasing the newest build.

    bug out of scope 
    opened by x00bence 0
Owner
Kovács Bence
haxx
Kovács Bence
designed for debug Espressif's ESP series chips, include ESP32/ESP32-S2/ESP32-C3/ESP32-S3...

ESPLink 中文 ESPLink Introduce Features Pin Description esplink-tool Product Link Reference ESPLink Introduce ESPLink is a debug tool build for Expressi

wuxx 34 Nov 19, 2022
The InitWare Suite of Middleware allows you to manage services and system resources as logical entities called units. Its main component is a service management ("init") system.

InitWare isn't ready to use yet!! Unless you are doing so for fun, to experiment, or to contribute, you most likely do not want to try to install Init

null 162 Dec 2, 2022
Triton Python and C++ client libraries and example, and client examples for go, java and scala.

Triton Client Libraries and Examples To simplify communication with Triton, the Triton project provides several client libraries and examples of how t

Triton Inference Server 212 Dec 5, 2022
A modding SDK that allows you to interact with a modified version of Cocos 2DX v2.2.3 utilized by Geometry Dash

What is CappuccinoSDK CappucinoSDK is a modding utility that allows you to interact with a modified version of the game engine Cocos-2DX v2.2.3, which

null 18 Oct 29, 2022
Allows you to observe the status of your DotA 2 (Defense of the Ancients 2) match within the Discord, through the Rich Presence service. 🎮

DotA 2 RPC (dota2-rpc-client) Allows you to observe the status of your DotA 2 (Defense of the Ancients 2) match within the Discord, through the Rich P

Anderson Silva 28 Nov 26, 2022
Webdav-client-cpp - C++ WebDAV Client provides easy and convenient to work with WebDAV-servers.

WebDAV Client Package WebDAV Client provides easy and convenient to work with WebDAV-servers: Yandex.Disk Dropbox Google Drive Box 4shared ownCloud ..

Cloud Polis 102 Oct 1, 2022
VEngine-Client - vEngine: Official Client Module

━ S Y N O P S I S ━ Maintainer(s): Aviril, Tron vEngine is Next-Gen Sandbox-Engine being crafted in C++. In contrast to UE/Unity/ReverseEngineered-Mod

ᴠ : ꜱᴛᴜᴅɪᴏ 15 Sep 7, 2022
Pyth-client - client API for on-chain pyth programs

pyth-client client API for on-chain pyth programs Build Instructions # depends on openssl apt install libssl-dev # depends on libz apt install zlib1g

Pyth Network 114 Dec 3, 2022
This repository provides a C++ client SDK for Unleash that meets the Unleash Client Specifications.

Unleash Client SDK for C++ This repository provides a C++ client SDK for Unleash that meets the Unleash Client Specifications. Features The below tabl

Antonio Ruiz 4 Jan 30, 2022
LibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program.

LibVNCServer: A library for easy implementation of a VNC server. Copyright (C) 2001-2003 Johannes E. Schindelin If you already used LibVNCServer, you

null 879 Dec 4, 2022
Simple useful interoperability tests for WebRTC libraries. If you are a WebRTC library developer we'd love to include you!

Overview This project aims to be a convenient location for WebRTC library developers to perform interoperability tests. Who can Participate The projec

Aaron Clauson 104 Nov 30, 2022
About Add any Program in any language you like or add a hello world Program ❣️ if you like give us ⭐

Hello-World About Add any Program in any language you like or add a hello world Program ❣️ if you like give us ⭐ Give this Project a Star ⭐ If you lik

Lokesh Jangid 15 Oct 28, 2022
Linux Terminal Service Manager (LTSM) is a set of service programs that allows remote computers to connect to a Linux operating system computer using a remote terminal session (over VNC or RDP)

Linux Terminal Service Manager (LTSM) is a set of service programs that allows remote computers to connect to a Linux operating system computer using a remote terminal session (over VNC)

null 33 Nov 28, 2022
Bloopair allows connecting controllers from other consoles like native Wii U Pro Controllers on the Wii U.

Bloopair Bloopair allows connecting controllers from other consoles like native Wii U Pro Controllers on the Wii U. It temporarily applies patches to

null 195 Nov 29, 2022
Node-portmapping allows to forward ports on Network Address Translators (NAT)

Multi-protocol NAT Port Mapping for Node.js node-portmapping allows to forward ports on Network Address Translators (NAT). It implements the protocols

Paul-Louis Ageneau 5 Jun 24, 2022
This is a small library that allows to stream a Dear ImGui scene to multiple WebSocket clients at once

imgui-ws Dear ImGui over WebSockets This is a small library that allows to stream a Dear ImGui scene to multiple WebSocket clients at once. This is ac

Georgi Gerganov 313 Nov 24, 2022
Encapsulates the two protocols of OpenVpn and Ikev2, you only need to enter the server IP and port number to realize the connection and status display, and the specific situation of the connection can be displayed at the same time。

NewVpnCore 封装了OpenVpn和Ikev2两种协议,只需要输入服务器IP和端口号即可实现连接和状态显示,同时可以显示连接的具体情况。 UniteVpn Core(第一版) 1. 模块说明 unitevpn:封装了vpn的操作和统一不同协议信息的模块 ikev2:IKEV2协议的源码 op

ZFashion 3 Jun 8, 2022
Ole Christian Eidheim 740 Nov 26, 2022
A very simple, fast, multithreaded, platform independent HTTP and HTTPS server and client library implemented using C++11 and Boost.Asio.

A very simple, fast, multithreaded, platform independent HTTP and HTTPS server and client library implemented using C++11 and Boost.Asio. Created to be an easy way to make REST resources available from C++ applications.

Ole Christian Eidheim 2.4k Nov 22, 2022