Iridium-gidra
A proxy between the client and the server of a certain anime game (Written in GoLang by Night12138)
Usage (Go version)
Highly recommended to use this version as there is a huge performance increase
- Clone the Github Repository
git clone https://github.com/MoonlightPS/Iridium-gidra.git
cd Iridium-gidra/gover
-
Install GoLang
-
Run the following commands to start the proxy
go install
go run main.go
-
Use the following fiddler script to redirect dispatch
-
Use patched UserAssembly.dll
or the proxy won't work!! and be sure to change it back when you are not using the proxy!!
-
Start the game and have fun!
For your safety
MHY will frequently update their resource files, so our hardcoded checksums are not always available. For your account safety, it is recommended that you enable bypass mode.
-
Install npcap on windows or libpcap on linux
-
Run go build -tags bypass
to build the bypass version
-
Run gover.exe --bypass
on windows or .\gover --bypass
on linux to enable runtime bypass
-
(Known issue) Make sure your game was the first startup after start bypass mode. If it report decrypt data failed, please logout then completely quit the game and restart to re-login
Fiddler Script
/* Gidra proxy fiddler script */
import System;
import System.Windows.Forms;
import Fiddler;
import System.Text.RegularExpressions;
class Handlers
{
static function OnBeforeRequest(oS: Session) {
if(oS.host.EndsWith("dispatch.yuanshen.com")) {
oS.oRequest.headers.UriScheme = "http";
oS.oRequest.headers.Add('url',oS.host);
oS.host = "localhost";
oS.port = 8081;
}
if(oS.host.Contains("overseauspider.yuanshen.com")){
oS.oRequest.FailSession(404, "Blocked", "your mom");
}
}
};
Note
- Packets captured by gover are stored in
./gover
and are saved as soon as you quit the game or exit the console
- proxy auto detects dispatch url and gateserver address when using the above fiddler script, you do not have to hardcode any of these!
[
{
"index": int,
"packetId": int,
"protoName": string,
"source": string,
"time": float,
"object": protobuf object
}
]