更新README

This commit is contained in:
flswld
2023-03-08 11:19:17 +08:00
parent ca616cb08d
commit 0a2287943e
3 changed files with 226 additions and 0 deletions

View File

@@ -12,6 +12,17 @@
#### 客户端需要本地https代理和打破解补丁才能正常使用详情请参考目前主流私服连接方法 #### 客户端需要本地https代理和打破解补丁才能正常使用详情请参考目前主流私服连接方法
#### 可以使用新版补丁避免https代理支持自定义密钥和连接任意地址的服务器感谢[mhypbase](https://github.com/Jx2f/mhypbase)
## 特性
* 原生的高可用集群架构任意节点宕机不会影响到整个系统可大量水平扩展支撑千万级DAU不是梦
* 玩家级无状态游戏服务器,无锁单线程模型,开发省时省力,完善的玩家数据交换机制(内存-缓存-数据库)
拒绝同步阻塞的数据库访问掌控每一纳秒的CPU时间不是梦
* 新颖的玩家在线跨服无缝迁移功能,以多人世界之名,反复横跳于多个服务器进程之间不是梦
* 独创的网关服务器侧客户端协议代理转换功能,拒绝因协议号消息号混淆而带来代码改动的烦恼,不同协议版本客户端同时在线联机不是梦
* 完整的密钥交换机制实现,安全性++拒绝一个写死的随机数种子和XOR密钥文件用到天荒地老搭建一个属于自己的别具一格的聊天渠道不是梦
## 编译和运行环境 ## 编译和运行环境
* Go >= 1.18 * Go >= 1.18

BIN
docs/mhypbase.dll.hook Normal file

Binary file not shown.

215
docs/mhypbase.ini Normal file
View File

@@ -0,0 +1,215 @@
[Basic]
;;;;;; enable console logger, enabled by default.
EnableConsole = true
;;;;;; drop server-side RCE packets, dropped by default.
DropRCEPacket = false
;;;;;; start of the type index for method addresses dumping, default is -1 (disabled).
; TypeIndexStart = -1
[Value]
;;;;;; here you can customize your own channel config:
;;;;;; 1) replace your own dispatch url;
;;;;;; 2) disable the extra log reporters;
;;;;;; 3) disable the beta watermark.
ConfigChannel = {"ChannelName":"OSRELWin","PreDefines":"GAIA_ADDON_TOOLS;GAIA_MULTI_TERRAINS;CTS_GAIA_RELOCATE;HOTFIX_ENABLE;UNITY_RELEASE_BUILD;AMPLIFY_SHADER_EDITOR;ODIN_INSPECTOR;ODIN_INSPECTOR_3;UNITY_POST_PROCESSING_STACK_V2;PROBUILDER_FBX_ENABLED","DispatchConfigs":[{"DispatchUrls":["https://hk4e.flswld.com/query_region_list"]}],"BaseTextLang":"1,2,3,4,5,6,7,8,9,10,11,12,13,14,15","BaseAudioLang":"Chinese,English(US),Korean,Japanese"}
;;;;;; here you can customize your own sdk base url:
ConfigBaseUrl = https://hk4e.flswld.com
;;;;;; replace your rsa public key, the default one is from grasscutter.
;;;;;; this key is used to 1) verify the signature of the dispatched data, and 2) encrypt your account password.
PublicRSAKey = <RSAKeyValue><Modulus>xbbx2m1feHyrQ7jP+8mtDF/pyYLrJWKWAdEv3wZrOtjOZzeLGPzsmkcgncgoRhX4dT+1itSMR9j9m0/OwsH2UoF6U32LxCOQWQD1AMgIZjAkJeJvFTrtn8fMQ1701CkbaLTVIjRMlTw8kNXvNA/A9UatoiDmi4TFG6mrxTKZpIcTInvPEpkK2A7Qsp1E4skFK8jmysy7uRhMaYHtPTsBvxP0zn3lhKB3W+HTqpneewXWHjCDfL7Nbby91jbz5EKPZXWLuhXIvR1Cu4tiruorwXJxmXaP1HQZonytECNU/UOzP6GNLdq0eFDE4b04Wjp396551G99YiFP2nqHVJ5OMQ==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>
;;;;;; or, the password encryption key can be set separately.
; RSAEncryptKey =
;;;;;; it's not recommended to overwrite the private key, unless you know what you are doing.
;;;;;; if you want to use another rsa private key, uncomment the following line and replace it with your own.
; PrivateRSAKey =
[Offset]
;;;;;; client version is automatically detected by default.
;;;;;; or, you can specify the version manually.
; ClientVersion = Offset
;;;;;; if you manually specify the client version, you alse need to specify the offsets manually.
; il2cpp_string_new = 0x0
il2cpp_string_new_Pattern = 40 53 48 83 EC 50 48 C7 44 24 20 FE FF FF FF 48 83
; System__Text__EncodingHelper_GetDefaultEncoding = 0x0
System__Text__EncodingHelper_GetDefaultEncoding_Pattern = 40 55 48 83 EC 40 48 8D 6C 24 20 48 C7 45 08 FE FF FF FF 8B 04 24 48 83 EC 10 8B 04 24 C7
; System__Text__Encoding_GetBytes = 0x0
System__Text__Encoding_GetBytes_Pattern = 48 89 5C 24 08 48 89 74 24 10 57 48 83 EC 40 48 8B FA 48 8B F1 48 85
; MiHoYo__SDK__SDKUtil_RSAEncrypt = 0x0
MiHoYo__SDK__SDKUtil_RSAEncrypt_Pattern = 48 89 5C 24 08 48 89 74 24 10 57 48 83 EC 20 48 8B F9 48 8B F2 48 8B 0D ? ? ? ? E8 ? ? ? ? 48 8B C8 48 8B D8 E8 ? ? ? ? 48 85 DB 74 7B
; MoleMole__MoleMoleSecurity_GetPublicRSAKey = 0x0
MoleMole__MoleMoleSecurity_GetPublicRSAKey_Pattern = +48 BA 45 78 70 6F 6E 65 6E 74 48 89 90 ? ? ? ? 48 BA 3E 3C 2F 52 53 41 4B 65
; MoleMole__MoleMoleSecurity_GetPrivateRSAKey = 0x0
MoleMole__MoleMoleSecurity_GetPrivateRSAKey_Pattern = +2F 49 6E 76 65 72 73 65
; MoleMole__ConfigUtil_LoadJSONStrConfig = 0x0 ; before 3.4.0
MoleMole__ConfigUtil_LoadJSONStrConfig_Pattern =
; UnityEngine__JsonUtility_FromJson = 0x0 ; after 3.4.0
UnityEngine__JsonUtility_FromJson_Pattern =
; MoleMole__Miscs_GetConfigChannel = 0x0
MoleMole__Miscs_GetConfigChannel_Pattern =
; MoleMole__Miscs_LoadChannelConfigBlk = 0x0
MoleMole__Miscs_LoadChannelConfigBlk_Pattern =
; MoleMole__FightModule_OnWindSeedClientNotify = 0x0
MoleMole__FightModule_OnWindSeedClientNotify_Pattern =
; MoleMole__PlayerModule_OnWindSeedClientNotify = 0x0
MoleMole__PlayerModule_OnWindSeedClientNotify_Pattern =
; MoleMole__PlayerModule_OnReciveLuaShell = 0x0
MoleMole__PlayerModule_OnReciveLuaShell_Pattern =
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;; unless you know what you are doing, don't change the following values.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[MD5ClientVersion]
a1db328df8d382d2c5cdb350947f53e1 = OSRELWin3.2.0
639903877207463f8c6b08a73235c14e = CNRELWin3.2.0
702671865eba6bd49db2da707cf4b4ef = OSRELWin3.3.0
3dce9fa8a7874c70575d38c4f839c229 = CNRELWin3.3.0
16fb0ca97fea983fc44f9aba476e3658 = OSRELWin3.4.0
001606dd78070aed0803536a2752459a = CNRELWin3.4.0
db4b2ba49753be4833c481e8b701f040 = OSRELWin3.5.0
2a047c49ea9e6f817208dcc1cddc41fc = CNRELWin3.5.0
[OSRELWin3.2.0]
il2cpp_string_new = 0x027D31D0
System__Text__EncodingHelper_GetDefaultEncoding = 0x08E3AE50
System__Text__Encoding_GetBytes = 0x08F706E0
MiHoYo__SDK__SDKUtil_RSAEncrypt = 0x09448080
MoleMole__MoleMoleSecurity_GetPublicRSAKey = 0x05C00F50
MoleMole__MoleMoleSecurity_GetPrivateRSAKey = 0x05BFF4A0
MoleMole__ConfigUtil_LoadJSONStrConfig = 0x062FF2A0
UnityEngine__JsonUtility_FromJson = 0x09684F80
MoleMole__Miscs_GetConfigChannel = 0x05113970
MoleMole__Miscs_LoadChannelConfigBlk = 0x0511F850
MoleMole__FightModule_OnWindSeedClientNotify = 0x039188F0
MoleMole__PlayerModule_OnWindSeedClientNotify = 0x030E2AC0
MoleMole__PlayerModule_OnReciveLuaShell = 0x0530B900
[CNRELWin3.2.0]
il2cpp_string_new = 0x027CA270
System__Text__EncodingHelper_GetDefaultEncoding = 0x08F23CA0
System__Text__Encoding_GetBytes = 0x0905A330
MiHoYo__SDK__SDKUtil_RSAEncrypt = 0x09539E70
MoleMole__MoleMoleSecurity_GetPublicRSAKey = 0x05CBE500
MoleMole__MoleMoleSecurity_GetPrivateRSAKey = 0x05CBC9F0
MoleMole__ConfigUtil_LoadJSONStrConfig = 0x063CCFA0
UnityEngine__JsonUtility_FromJson = 0x09778D20
MoleMole__Miscs_GetConfigChannel = 0x051A6000
MoleMole__Miscs_LoadChannelConfigBlk = 0x051B22D0
MoleMole__FightModule_OnWindSeedClientNotify = 0x0394F590
MoleMole__PlayerModule_OnWindSeedClientNotify = 0x030FB280
MoleMole__PlayerModule_OnReciveLuaShell = 0x053A5CA0
[OSRELWin3.3.0]
il2cpp_string_new = 0x028BBE80
System__Text__EncodingHelper_GetDefaultEncoding = 0x0890F980
System__Text__Encoding_GetBytes = 0x08A3F7F0
MiHoYo__SDK__SDKUtil_RSAEncrypt = 0x08EB3A30
MoleMole__MoleMoleSecurity_GetPublicRSAKey = 0x04750780
MoleMole__MoleMoleSecurity_GetPrivateRSAKey = 0x047510F0
MoleMole__ConfigUtil_LoadJSONStrConfig = 0x05978F20
UnityEngine__JsonUtility_FromJson = 0x0
MoleMole__Miscs_GetConfigChannel = 0x04C95570
MoleMole__Miscs_LoadChannelConfigBlk = 0x04C9F840
MoleMole__FightModule_OnWindSeedClientNotify = 0x030FDBF0
MoleMole__PlayerModule_OnWindSeedClientNotify = 0x045B5880
MoleMole__PlayerModule_OnReciveLuaShell = 0x02DB3A00
[CNRELWin3.3.0]
il2cpp_string_new = 0x028BF7E0
System__Text__EncodingHelper_GetDefaultEncoding = 0x08911D30
System__Text__Encoding_GetBytes = 0x08A41E00
MiHoYo__SDK__SDKUtil_RSAEncrypt = 0x08EB43F0
MoleMole__MoleMoleSecurity_GetPublicRSAKey = 0x04755EF0
MoleMole__MoleMoleSecurity_GetPrivateRSAKey = 0x04756860
MoleMole__ConfigUtil_LoadJSONStrConfig = 0x0597CC20
UnityEngine__JsonUtility_FromJson = 0x0
MoleMole__Miscs_GetConfigChannel = 0x04C9B420
MoleMole__Miscs_LoadChannelConfigBlk = 0x04CA56F0
MoleMole__FightModule_OnWindSeedClientNotify = 0x03102500
MoleMole__PlayerModule_OnWindSeedClientNotify = 0x045BB270
MoleMole__PlayerModule_OnReciveLuaShell = 0x02DB84E0
[OSRELWin3.4.0]
il2cpp_string_new = 0x02C74710
System__Text__EncodingHelper_GetDefaultEncoding = 0x090E7820
System__Text__Encoding_GetBytes = 0x09267C60
MiHoYo__SDK__SDKUtil_RSAEncrypt = 0x096F7C30
MoleMole__MoleMoleSecurity_GetPublicRSAKey = 0x04FAA4B0
MoleMole__MoleMoleSecurity_GetPrivateRSAKey = 0x04FAA8A0
UnityEngine__JsonUtility_FromJson = 0x099B4470
MoleMole__Miscs_GetConfigChannel = 0x048787D0
MoleMole__Miscs_LoadChannelConfigBlk = 0x0487CEE0
MoleMole__FightModule_OnWindSeedClientNotify = 0x03DD93B0
MoleMole__PlayerModule_OnWindSeedClientNotify = 0x04E8A4C0
MoleMole__PlayerModule_OnReciveLuaShell = 0x04E77F50
; &reinterpret_cast<uintptr_t*>(klass)[4] is a magic for klass->byval_arg
; &reinterpret_cast<uintptr_t*>(method)[0] is a magic for method->methodPointer
il2cpp__vm__MetadataCache__GetTypeInfoFromTypeDefinitionIndex = 0x02C6A250
il2cpp__vm__Type__GetName = 0x02C67050
il2cpp__vm__Class__GetMethods = 0x02C1D960
il2cpp__vm__Method__GetNameWithGenericTypes = 0x02C67CC0
[CNRELWin3.4.0]
il2cpp_string_new = 0x02C76D30
System__Text__EncodingHelper_GetDefaultEncoding = 0x090D20A0
System__Text__Encoding_GetBytes = 0x09252750
MiHoYo__SDK__SDKUtil_RSAEncrypt = 0x096E29C0
MoleMole__MoleMoleSecurity_GetPublicRSAKey = 0x04FA03C0
MoleMole__MoleMoleSecurity_GetPrivateRSAKey = 0x04FA07B0
UnityEngine__JsonUtility_FromJson = 0x0999FCF0
MoleMole__Miscs_GetConfigChannel = 0x04870100
MoleMole__Miscs_LoadChannelConfigBlk = 0x048747E0
MoleMole__FightModule_OnWindSeedClientNotify = 0x03DD4A10
MoleMole__PlayerModule_OnWindSeedClientNotify = 0x04E801E0
MoleMole__PlayerModule_OnReciveLuaShell = 0x04E6DC70
[OSRELWin3.5.0]
il2cpp_string_new = 0x0099AD10
System__Text__EncodingHelper_GetDefaultEncoding = 0x073384B0
System__Text__Encoding_GetBytes = 0x074E32B0
MiHoYo__SDK__SDKUtil_RSAEncrypt = 0x078CDEF0
MoleMole__MoleMoleSecurity_GetPublicRSAKey = 0x028D8DE0
MoleMole__MoleMoleSecurity_GetPrivateRSAKey = 0x028D92C0
UnityEngine__JsonUtility_FromJson = 0x07BD5DB0
MoleMole__Miscs_GetConfigChannel = 0x03BF85C0
MoleMole__Miscs_LoadChannelConfigBlk = 0x03BFF820
MoleMole__FightModule_OnWindSeedClientNotify = 0x00F42F10
MoleMole__PlayerModule_OnWindSeedClientNotify = 0x019108D0
MoleMole__PlayerModule_OnReciveLuaShell = 0x01913330
; &reinterpret_cast<uintptr_t*>(klass)[26] is a magic for klass->byval_arg
; &reinterpret_cast<uintptr_t*>(method)[1] is a magic for method->methodPointer
il2cpp__vm__MetadataCache__GetTypeInfoFromTypeDefinitionIndex = 0x009907A0
il2cpp__vm__Type__GetName = 0x0098D5B0
il2cpp__vm__Class__GetMethods = 0x00943800
il2cpp__vm__Method__GetNameWithGenericTypes = 0x0098E220
[CNRELWin3.5.0]
il2cpp_string_new = 0x00991B10
System__Text__EncodingHelper_GetDefaultEncoding = 0x073F89C0
System__Text__Encoding_GetBytes = 0x075A4FC0
MiHoYo__SDK__SDKUtil_RSAEncrypt = 0x079922B0
MoleMole__MoleMoleSecurity_GetPublicRSAKey = 0x0292FDB0
MoleMole__MoleMoleSecurity_GetPrivateRSAKey = 0x029302A0
UnityEngine__JsonUtility_FromJson = 0x07C9E600
MoleMole__Miscs_GetConfigChannel = 0x03C86890
MoleMole__Miscs_LoadChannelConfigBlk = 0x03C8DC10
MoleMole__FightModule_OnWindSeedClientNotify = 0x00F465F0
MoleMole__PlayerModule_OnWindSeedClientNotify = 0x01935210
MoleMole__PlayerModule_OnReciveLuaShell = 0x01937CE0
il2cpp__vm__MetadataCache__GetTypeInfoFromTypeDefinitionIndex = 0x00987590
il2cpp__vm__Type__GetName = 0x009843D0
il2cpp__vm__Class__GetMethods = 0x00983AE0
il2cpp__vm__Method__GetNameWithGenericTypes = 0x00985060