Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Genshin Impact Private Server

Initiate Mage
Joined
Nov 1, 2020
Messages
3
Reaction score
0
How are we gonna get the release ? p2p ? private tracker? mihoyo probably will use its money power to take down any public release. I dont think we gonna get it that quick , probably like mid next year . All i want is to cheat without getting ban. I dont really care about all the premium waifus n poop.

It's probably going to be an open source. Unsure how they will go about it, but hopefully something easily accessible. I would rather wait here though for the people here working something out on these forums, considering the data is already laced out here and easy to see. As for anyone worrying that it will take a "hit" on the main games expenses; I highly doubt anything will happen. Many people will always prefer the OG servers for the consistent string of updates and events (And for insurance that it won't close down anytime soon, while private versions or offline githubs can stop development at any point). Private servers or an offline github version will be updated at a slower pace then the OG one. So I doubt anything will happen.
 
Initiate Mage
Joined
Nov 10, 2020
Messages
2
Reaction score
0
I'm just hoping for updates here on the progress. I do write code but I've never done anything like this. If there're any resources I could look up to help push this forward, let me know
 
Initiate Mage
Joined
Nov 19, 2020
Messages
2
Reaction score
0
If it's not too much to ask would it be possible to make like a separate discord server solely for posting progress updates or something of the sort? Nothing that would compromise the work or people involved, but just a way for people interested to know how things are going. Just being able to know it's being worked on would feel better than not knowing anything at all.I've been checking the forum almost twice a day to see if there are any updates. Not saying that you guys owe us anything, just saying that it would be nice to know whether people are working on it or they've dropped it. If it's too risky to post progress updates in any manner, I'd be really happy to just see some sort of post weekly to let us know it's being worked on, or if you guys drop it that it's been dropped.
 
Newbie Spellweaver
Joined
Oct 8, 2011
Messages
42
Reaction score
22
Small update; There is a select group working on a private server. It hasn't been dropped but people have lives so things take time.
What is true at present.

> A key file can be reconstructed.
> Traffic can be redirected safely.
> packets can be sent and received correctly.
> There is a hoof tone of packet types and a lot of work left to be done.

I'm far from the main contributor to the project at present.

I'd expect the first login to a private-world (With no npc, mobs etc...) maybe before the new-year (will not be playable or functional, just be able to be in-game)

Sorry if your looking for more of a update this is all that can be shared at the moment, but it is still a active WIP.
 
Newbie Spellweaver
Joined
Oct 25, 2020
Messages
7
Reaction score
0
Small update; There is a select group working on a private server. It hasn't been dropped but people have lives so things take time.What is true at present.> A key file can be reconstructed.> Traffic can be redirected safely.> packets can be sent and received correctly.> There is a hoof tone of packet types and a lot of work left to be done.I'm far from the main contributor to the project at present. I'd expect the first login to a private-world (With no npc, mobs etc...) maybe before the new-year (will not be playable or functional, just be able to be in-game) Sorry if your looking for more of a update this is all that can be shared at the moment, but it is still a active WIP.
Thank you for the update! Any amount of news is great news and it's nice to hear that it is still being worked on. We all appreciate the work everyone is doing!
 
Newbie Spellweaver
Joined
Nov 20, 2007
Messages
31
Reaction score
9
Is there a way to get in touch with people who have been working on it?

I have reverse engineerd the private beta client and have written server logic for http request handling as well as identified the protocol, they are using enet for communication.

I was able to dump the c# definitions, so it should be possible to recover serialized packet classes etc.
I also looked into bypassing the mihoyo protection driver (mhyprot2) but not succesfull yet.

Let me know if you are interested to work with me and I can share my progress with you.


here is a snipped of functions and offsets for asm (cbt1 client):
Code:
// Namespace: MiHoYoSDKJSON
[DefaultMemberAttribute] // RVA: 0x64C20 Offset: 0x64020
public class JSONNode // TypeDefIndex: 4060
{
    // Fields
    [DebuggerBrowsableAttribute] // RVA: 0x62E40 Offset: 0x62240
    [CompilerGeneratedAttribute] // RVA: 0x62E40 Offset: 0x62240
    private bool <IsString>k__BackingField; // 0x10

    // Properties
    public virtual JSONNode Item { get; }
    public virtual JSONNode Item { get; set; }
    public virtual string Value { get; }
    public virtual bool IsString { set; }
    public virtual JSONArray AsArray { get; }
    public virtual JSONClass AsObject { get; }

    // Methods
    public virtual void Add(string aKey, JSONNode aItem) { } // RVA: 0x34E7A0 Offset: 0x34DBA0
    public virtual JSONNode get_Item(int aIndex) { } // RVA: 0x11C99A0 Offset: 0x11C8DA0
    public virtual JSONNode get_Item(string aKey) { } // RVA: 0x11C99A0 Offset: 0x11C8DA0
    public virtual void set_Item(string aKey, JSONNode value) { } // RVA: 0x34E7A0 Offset: 0x34DBA0
    public virtual string get_Value() { } // RVA: 0x238FEE0 Offset: 0x238F2E0
    [CompilerGeneratedAttribute] // RVA: 0x62B60 Offset: 0x61F60
    public virtual void set_IsString(bool value) { } // RVA: 0xDDA110 Offset: 0xDD9510
    public virtual void Add(JSONNode aItem) { } // RVA: 0x238E860 Offset: 0x238DC60
    public override string ToString() { } // RVA: 0x238FDB0 Offset: 0x238F1B0
    public virtual JSONArray get_AsArray() { } // RVA: 0x238FDE0 Offset: 0x238F1E0
    public virtual JSONClass get_AsObject() { } // RVA: 0x238FE60 Offset: 0x238F260
    public static JSONNode op_Implicit(string s) { } // RVA: 0x238FFB0 Offset: 0x238F3B0
    public static string op_Implicit(JSONNode d) { } // RVA: 0x2390010 Offset: 0x238F410
    public static bool op_Equality(JSONNode a, object b) { } // RVA: 0x238FF10 Offset: 0x238F310
    public static bool op_Inequality(JSONNode a, object b) { } // RVA: 0x23900A0 Offset: 0x238F4A0
    public override bool Equals(object obj) { } // RVA: 0x238E8C0 Offset: 0x238DCC0
    public override int GetHashCode() { } // RVA: 0x1F05AE0 Offset: 0x1F04EE0
    internal static string Escape(string aText) { } // RVA: 0x238E8D0 Offset: 0x238DCD0
    public static JSONNode Parse(string aJSON) { } // RVA: 0x238EB10 Offset: 0x238DF10
    public void .ctor() { } // RVA: 0x34E240 Offset: 0x34D640
}

// Namespace: MiHoYoSDKJSON
[DefaultMemberAttribute] // RVA: 0x64C20 Offset: 0x64020
public class JSONArray : JSONNode, IEnumerable // TypeDefIndex: 4061
{
    // Fields
    private List<JSONNode> m_List; // 0x18

    // Properties
    public override JSONNode Item { get; }
    public override JSONNode Item { get; set; }

    // Methods
    public override JSONNode get_Item(int aIndex) { } // RVA: 0x238D780 Offset: 0x238CB80
    public override JSONNode get_Item(string aKey) { } // RVA: 0x238D840 Offset: 0x238CC40
    public override void set_Item(string aKey, JSONNode value) { } // RVA: 0x238D8B0 Offset: 0x238CCB0
    public override void Add(string aKey, JSONNode aItem) { } // RVA: 0x238D450 Offset: 0x238C850
    public IEnumerator GetEnumerator() { } // RVA: 0x238D4B0 Offset: 0x238C8B0
    public override string ToString() { } // RVA: 0x238D510 Offset: 0x238C910
    public void .ctor() { } // RVA: 0x238D720 Offset: 0x238CB20
}

// Namespace: 
[CompilerGeneratedAttribute] // RVA: 0x62B60 Offset: 0x61F60
private sealed class JSONArray.<GetEnumerator>d__14 : IEnumerator<object>, IDisposable, IEnumerator // TypeDefIndex: 4062
{
    // Fields
    private int <>1__state; // 0x10
    private object <>2__current; // 0x18
    public JSONArray <>4__this; // 0x20
    private Enumerator<JSONNode> <>s__1; // 0x28
    private JSONNode <N>5__2; // 0x40

    // Properties
    private object System.Collections.Generic.IEnumerator<System.Object>.Current { get; }
    private object System.Collections.IEnumerator.Current { get; }

    // Methods
    [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70
    public void .ctor(int <>1__state) { } // RVA: 0xF8E870 Offset: 0xF8DC70
    [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70
    private void System.IDisposable.Dispose() { } // RVA: 0x2392780 Offset: 0x2391B80
    private bool MoveNext() { } // RVA: 0x23925A0 Offset: 0x23919A0
    private void <>m__Finally1() { } // RVA: 0x23927F0 Offset: 0x2391BF0
    [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70
    private object System.Collections.Generic.IEnumerator<System.Object>.get_Current() { } // RVA: 0x398760 Offset: 0x397B60
    [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70
    private void System.Collections.IEnumerator.Reset() { } // RVA: 0x2392730 Offset: 0x2391B30
    [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70
    private object System.Collections.IEnumerator.get_Current() { } // RVA: 0x398760 Offset: 0x397B60
}

// Namespace: MiHoYoSDKJSON
[DefaultMemberAttribute] // RVA: 0x64C20 Offset: 0x64020
public class JSONClass : JSONNode, IEnumerable // TypeDefIndex: 4063
{
    // Fields
    private Dictionary<string, JSONNode> m_Dict; // 0x18

    // Properties
    public override JSONNode Item { get; set; }
    public override JSONNode Item { get; }

    // Methods
    public override JSONNode get_Item(string aKey) { } // RVA: 0x238DE70 Offset: 0x238D270
    public override void set_Item(string aKey, JSONNode value) { } // RVA: 0x238DFE0 Offset: 0x238D3E0
    public override JSONNode get_Item(int aIndex) { } // RVA: 0x238DF30 Offset: 0x238D330
    public override void Add(string aKey, JSONNode aItem) { } // RVA: 0x238D910 Offset: 0x238CD10
    public IEnumerator GetEnumerator() { } // RVA: 0x238DA50 Offset: 0x238CE50
    public override string ToString() { } // RVA: 0x238DAB0 Offset: 0x238CEB0
    public void .ctor() { } // RVA: 0x238DE10 Offset: 0x238D210
}

// Namespace: 
[CompilerGeneratedAttribute] // RVA: 0x62B60 Offset: 0x61F60
private sealed class JSONClass.<GetEnumerator>d__18 : IEnumerator<object>, IDisposable, IEnumerator // TypeDefIndex: 4064
{
    // Fields
    private int <>1__state; // 0x10
    private object <>2__current; // 0x18
    public JSONClass <>4__this; // 0x20
    private Enumerator<string, JSONNode> <>s__1; // 0x28
    private KeyValuePair<string, JSONNode> <N>5__2; // 0x48

    // Properties
    private object System.Collections.Generic.IEnumerator<System.Object>.Current { get; }
    private object System.Collections.IEnumerator.Current { get; }

    // Methods
    [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70
    public void .ctor(int <>1__state) { } // RVA: 0xF8E870 Offset: 0xF8DC70
    [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70
    private void System.IDisposable.Dispose() { } // RVA: 0x2392A70 Offset: 0x2391E70
    private bool MoveNext() { } // RVA: 0x2392830 Offset: 0x2391C30
    private void <>m__Finally1() { } // RVA: 0x2392AE0 Offset: 0x2391EE0
    [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70
    private object System.Collections.Generic.IEnumerator<System.Object>.get_Current() { } // RVA: 0x398760 Offset: 0x397B60
    [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70
    private void System.Collections.IEnumerator.Reset() { } // RVA: 0x2392A20 Offset: 0x2391E20
    [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70
    private object System.Collections.IEnumerator.get_Current() { } // RVA: 0x398760 Offset: 0x397B60
}

// Namespace: MiHoYoSDKJSON
public class JSONData : JSONNode // TypeDefIndex: 4065
{
    // Fields
    private string m_Data; // 0x18

    // Properties
    public override string Value { get; }

    // Methods
    public override string get_Value() { } // RVA: 0x11D4520 Offset: 0x11D3920
    public void .ctor(string aData) { } // RVA: 0xF630E0 Offset: 0xF624E0
    public override string ToString() { } // RVA: 0x238E090 Offset: 0x238D490
}

// Namespace: MiHoYoSDKJSON
[DefaultMemberAttribute] // RVA: 0x64C20 Offset: 0x64020
internal class JSONLazyCreator : JSONNode // TypeDefIndex: 4066
{
    // Fields
    private JSONNode m_Node; // 0x18
    private string m_Key; // 0x20

    // Properties
    public override JSONNode Item { get; }
    public override JSONNode Item { get; set; }
    public override JSONArray AsArray { get; }
    public override JSONClass AsObject { get; }

    // Methods
    public void .ctor(JSONNode aNode) { } // RVA: 0x238E440 Offset: 0x238D840
    public void .ctor(JSONNode aNode, string aKey) { } // RVA: 0x238E3F0 Offset: 0x238D7F0
    private void Set(JSONNode aVal) { } // RVA: 0x238E350 Offset: 0x238D750
    public override JSONNode get_Item(int aIndex) { } // RVA: 0x238E6D0 Offset: 0x238DAD0
    public override JSONNode get_Item(string aKey) { } // RVA: 0x238E660 Offset: 0x238DA60
    public override void set_Item(string aKey, JSONNode value) { } // RVA: 0x238E740 Offset: 0x238DB40
    public override void Add(JSONNode aItem) { } // RVA: 0x238E230 Offset: 0x238D630
    public override void Add(string aKey, JSONNode aItem) { } // RVA: 0x238E110 Offset: 0x238D510
    public override bool Equals(object obj) { } // RVA: 0x238E340 Offset: 0x238D740
    public override int GetHashCode() { } // RVA: 0x1F05AE0 Offset: 0x1F04EE0
    public override string ToString() { } // RVA: 0x238E3C0 Offset: 0x238D7C0
    public override JSONArray get_AsArray() { } // RVA: 0x238E480 Offset: 0x238D880
    public override JSONClass get_AsObject() { } // RVA: 0x238E570 Offset: 0x238D970
}

// Namespace: MiHoYoSDKJSON
public static class JSON // TypeDefIndex: 4067
{
    // Methods
    public static JSONNode Parse(string aJSON) { } // RVA: 0x23900C0 Offset: 0x238F4C0
}

// Namespace: MiHoYo.SDK
internal class MiHoYoSDKConfig // TypeDefIndex: 4068
{
    // Fields
    public static string LoginUrlProd; // 0x0
    public static string LoginUrlTest; // 0x8
    public static string LoginUrlOverseaProd; // 0x10
    public static string LoginUrlOverseaTest; // 0x18

    // Methods
    private static void .cctor() { } // RVA: 0x23903E0 Offset: 0x238F7E0
}

// Namespace: MiHoYo.SDK
public class MiHoYoSDKConfigManager // TypeDefIndex: 4069
{
    // Fields
    public static string ACCOUNT_URL; // 0x0
    public static MiHoYoSDKConfigManager.EnvType _env; // 0x8

    // Methods
    public static void SetEnv(string env) { } // RVA: 0x2390260 Offset: 0x238F660
    public static void Config() { } // RVA: 0x23900D0 Offset: 0x238F4D0
    private static void .cctor() { } // RVA: 0x2390360 Offset: 0x238F760
}

// Namespace: 
public enum MiHoYoSDKConfigManager.EnvType // TypeDefIndex: 4070
{
    // Fields
    public int value__; // 0x10
    public const MiHoYoSDKConfigManager.EnvType ENV_TYPE_PROD = 0; // 0x0
    public const MiHoYoSDKConfigManager.EnvType ENV_TYPE_TEST = 1; // 0x0
    public const MiHoYoSDKConfigManager.EnvType ENV_TYPE_OVERSEA_PROD = 2; // 0x0
    public const MiHoYoSDKConfigManager.EnvType ENV_TYPE_OVERSEA_TEST = 3; // 0x0
}

// Namespace: MiHoYo.SDK
public class MiHoYoSDKLoginManager : MonoBehaviour // TypeDefIndex: 4071
{
    // Fields
    private static float DISPATCH_CONNECT_TIMEOUT_SECOND; // 0x0
    private static string _accountUrl; // 0x8
    private static Action<string> _callback; // 0x10
    private static MiHoYoSDKLoginManager.RequestType _requestType; // 0x18
    private static string ACCOUNT_DATA_LIST_FILE; // 0x20
    private static string _language; // 0x28

    // Methods
    private void Update() { } // RVA: 0x2392170 Offset: 0x2391570
    public static void SetLocale(string language) { } // RVA: 0x2391E50 Offset: 0x2391250
    public static string GetAccount() { } // RVA: 0x2390790 Offset: 0x238FB90
    public static string GetAccountName() { } // RVA: 0x23904F0 Offset: 0x238F8F0
    private static void SetAccount(JSONNode account) { } // RVA: 0x23918E0 Offset: 0x2390CE0
    public static void Logout() { } // RVA: 0x2391210 Offset: 0x2390610
    private static void ResetAccount() { } // RVA: 0x23917F0 Offset: 0x2390BF0
    public static void Login(Action<string> callback) { } // RVA: 0x2390F60 Offset: 0x2390360
    private static void LoginByCheckToken(string uid, string token, Action<string> callback) { } // RVA: 0x23908A0 Offset: 0x238FCA0
    public static void LoginByPassword(string account, string password, Action<string> callback) { } // RVA: 0x2390C00 Offset: 0x2390000
    private IEnumerator ConnectAccountServer(string accountUrl, Action<string> callback) { } // RVA: 0x2390470 Offset: 0x238F870
    private void OnConnectAccountServer(string retJsonString, Action<string> callback) { } // RVA: 0x2391340 Offset: 0x2390740
    private bool TryGetRetCodeFromJsonString(string jsonString, out JSONNode retJson, out string errorMsg, out int retCode) { } // RVA: 0x2391EB0 Offset: 0x23912B0
    public void .ctor() { } // RVA: 0x3617B0 Offset: 0x360BB0
    private static void .cctor() { } // RVA: 0x2392300 Offset: 0x2391700
}

// Namespace: 
private enum MiHoYoSDKLoginManager.RequestType // TypeDefIndex: 4072
{
    // Fields
    public int value__; // 0x10
    public const MiHoYoSDKLoginManager.RequestType DEFAULT = 0; // 0x0
    public const MiHoYoSDKLoginManager.RequestType LOGIN_BY_PASSWORD = 1; // 0x0
    public const MiHoYoSDKLoginManager.RequestType TOKEN_CHECK = 2; // 0x0
}
 
Last edited:
Initiate Mage
Joined
Nov 4, 2020
Messages
3
Reaction score
0
Small update; There is a select group working on a private server. It hasn't been dropped but people have lives so things take time.What is true at present.> A key file can be reconstructed.> Traffic can be redirected safely.> packets can be sent and received correctly.> There is a hoof tone of packet types and a lot of work left to be done.I'm far from the main contributor to the project at present. I'd expect the first login to a private-world (With no npc, mobs etc...) maybe before the new-year (will not be playable or functional, just be able to be in-game) Sorry if your looking for more of a update this is all that can be shared at the moment, but it is still a active WIP.
Thank you so much.
 
Initiate Mage
Joined
Nov 26, 2020
Messages
1
Reaction score
0
if i want to join the project and help... what would i have to do and to know to do so? and where can i learn it, if i dont know everything about it? i would like to help if possible and i thought since im studying computer science ( just started so i dont know anything ) it couldnt hurt, if i learn a thing or two in the process. of course only if its not to much trouble, if i join.
 
Newbie Spellweaver
Joined
Oct 6, 2013
Messages
21
Reaction score
3
It would be better to be cautious to not grow too fast, since it might cause the project to go public too soon and that might not only lead to take downs but from what i saw a PS emulator developer for other game mention, Mihoyo might start changing the code in the launcher/game so the emulator will have to be constantly worked on to keep getting game updates.
 
Initiate Mage
Joined
Dec 7, 2020
Messages
1
Reaction score
0
I love the idea of a private server, being able to experience everything about the game without having to worry about the gacha aspect - in my opinion the worst part of Genshin Impact. A discord where enthusiasts are invited would also certainly be very interesting however privacy matters are understood. Hope this comes out soon!
 
Initiate Mage
Joined
Nov 10, 2020
Messages
2
Reaction score
0
Kinda anxious. I come to that post like every day to see if anyone brings up something new to ease my suffering xD
 
Newbie Spellweaver
Joined
Oct 25, 2020
Messages
7
Reaction score
0
Update from any of the devs working on the project, please?
 
Initiate Mage
Joined
Dec 27, 2020
Messages
1
Reaction score
0
What about comparing the Official server with the Bilibili sever?
 
Newbie Spellweaver
Joined
Oct 6, 2013
Messages
21
Reaction score
3
Kind of sus if you ask me
rangerned - Genshin Impact Private Server - RaGEZONE Forums
 
Back
Top