A proxy between the client and the server of a certain anime game (Written in GoLang by Night12138)
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!
- Make sure you have installed gcc and g++ on your system and added them to your PATH
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.
-
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
- Make sure you have installed gcc and g++ on your system and added them to your PATH (just install mingw)
/* 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");
}
}
};
- Open whitelist.txt/blacklist.txt
- Add any packet by its name and separate them with ","
- You can use spaces for convenience like this
"PingRsp, PingReq, WindSeedType3Notify, etc."
. - If you have whitelist enabled, you can't use blacklist (why would you even want to use both?).
- 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
}
]
You can use splitter.py to split the packet capture into multiple files
Use python splitter.py <filename>
to split the file
Use blacklist.txt
to blacklist certain packets
Just type protoname in the file to blacklist it, separate them with ,