Genshin Impact Private Server

Page 6 of 19 FirstFirst 123456789101112131416 ... LastLast
Results 76 to 90 of 275
  1. #76
    Novice huuhait is offline
    MemberRank
    Jan 2021 Join Date
    1Posts

    Re: Genshin Impact Private Server

    Quote Originally Posted by KuroSaru View Post
    o/ hey all, Some good progress has been made by others (not my self IRL commitments); It is possible to login to the private server, but all you can do is explore, cant switch characters, use skill...etc. This is not the same as the dev/gm offline mode this is connecting to a private server. TLDR: Still in progress, can now login to a 100% private server.
    for the client private server will it be updated monthly version? Or maybe every few months

  2. #77
    Apprentice samuellucy96 is offline
    MemberRank
    Oct 2020 Join Date
    5Posts

    Re: Genshin Impact Private Server

    Quote Originally Posted by huuhait View Post
    for the client private server will it be updated monthly version? Or maybe every few months
    Woah slow down a bit there , let us just wait and see if there an actual success with the beta launch first before jumping to post production. There has been tonnes of breakthrough but it is very much mid progress , Im far from knowing all this client-server stuff but if I were to guess based on the discussion on discord , it is about 30% , maybe 40% WIP.

  3. #78
    Novice blim94 is offline
    MemberRank
    Mar 2021 Join Date
    1Posts

    Re: Genshin Impact Private Server

    am really looking forward for it to be complete

  4. #79
    Apprentice PythonLimited is offline
    MemberRank
    Mar 2021 Join Date
    6Posts

    Re: Genshin Impact Private Server

    Quote Originally Posted by Nothilvien View Post
    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 }
    Have you been able to do some follow up to this? We also recently cracked the xor packet decryption but are now kind of stuck with the sheer amount of traffic we need to analyze... We havent yet looked into the UserAssembly that deep to possibly decrypt the base64 data returned by the server maybe you can help there? Or is there anyone else here who has more insight?

    - - - Updated - - -

    Quote Originally Posted by KuroSaru View Post
    o/ hey all, Some good progress has been made by others (not my self IRL commitments); It is possible to login to the private server, but all you can do is explore, cant switch characters, use skill...etc. This is not the same as the dev/gm offline mode this is connecting to a private server. TLDR: Still in progress, can now login to a 100% private server.
    any idea if me and two others could join in that discord? were sitting on reversing the 1.4 client atm and have found the xor key decryption. see post above :=)

  5. #80
    Novice HardFeelD is offline
    MemberRank
    Feb 2021 Join Date
    1Posts

    Re: Genshin Impact Private Server

    Hello everybody How are you doing with the server? When to wait for release?)

  6. #81
    Novice wawxz2021 is offline
    MemberRank
    May 2021 Join Date
    2Posts

    Re: Genshin Impact Private Server

    Has anyone tried to check decompiled Android app file? I think that's a great idea! Correct me if I am not correct, because I am a green hand.

  7. #82
    Novice TifaLockhart is offline
    MemberRank
    Dec 2020 Join Date
    1Posts

    Re: Genshin Impact Private Server

    So,the discord for now its only reserved to who knows how to work on things,right?But if that is the case,how will we know when it's done?Will you guys give a link here after it's done?Considering it will take long anyway but yeah...i have those questions floating in my head from quite a while back when i started following this thread.

  8. #83
    Novice dicktrace is offline
    MemberRank
    Jul 2007 Join Date
    Итапема,Location
    2Posts

    Re: Genshin Impact Private Server

    We are also looking forward to being able to help and make this project go forward

  9. #84
    Apprentice Pizzabazinga is offline
    MemberRank
    Jul 2021 Join Date
    5Posts

    Re: Genshin Impact Private Server

    It's been a few months since there was any update on this thread. Is this project still being worked on? I really hope it is.

  10. #85
    Enthusiast Zidax is offline
    MemberRank
    Dec 2015 Join Date
    PhilippinesLocation
    43Posts

    Re: Genshin Impact Private Server

    Yeah, I'm looking forward to this development too. Can't wait for the private files to be release. Any update?

  11. #86
    Enthusiast Ochi is offline
    MemberRank
    Mar 2016 Join Date
    28Posts

    Re: Genshin Impact Private Server

    Is anyone willing to share the xor decryption algorithm? From what I see, it changes every session, but for a single session it is deterministic and reused for all packets (both server and client). Maybe a table or something? Some clues would also be helpful as to what data is used to initialize this table/sequence.

  12. #87
    Apprentice pong is offline
    MemberRank
    Jul 2021 Join Date
    6Posts

    Re: Genshin Impact Private Server

    Quote Originally Posted by Ochi View Post
    Is anyone willing to share the xor decryption algorithm? From what I see, it changes every session, but for a single session it is deterministic and reused for all packets (both server and client). Maybe a table or something? Some clues would also be helpful as to what data is used to initialize this table/sequence.
    if you mean packet i know someone who get 1.4 and 2.0 packet decryption algorithm

  13. #88
    Enthusiast Ochi is offline
    MemberRank
    Mar 2016 Join Date
    28Posts

    Re: Genshin Impact Private Server

    Quote Originally Posted by pong View Post
    if you mean packet i know someone who get 1.4 and 2.0 packet decryption algorithm
    Yes, I mean packet. Are they willing to share?

  14. #89
    Apprentice pong is offline
    MemberRank
    Jul 2021 Join Date
    6Posts

    Re: Genshin Impact Private Server

    Quote Originally Posted by Ochi View Post
    Yes, I mean packet. Are they willing to share?
    No they dont want me to share

  15. #90
    Enthusiast Ochi is offline
    MemberRank
    Mar 2016 Join Date
    28Posts

    Re: Genshin Impact Private Server

    Does anyone have a link to "UnityPlayer.dll" from version 1.2? This is needed to decrypt the game files and will help with reversing.

    EDIT:
    You can download the official 1.2 client here
    Last edited by Ochi; 06-08-21 at 07:11 AM.



Advertisement