@@ -11,7 +11,7 @@ LoveLive! 学园偶像祭自用私服
|
|||||||
5. 反编译官方游戏安装包,替换客户端使用的公钥为你自己的,并替换盛趣相关的接口地址为本地或者远程服务器的地址,然后重新打包签名,这样我们才能在服务端解密数据包,可参考我的 [llsif-cn-client](https://github.com/YumeMichi/llsif-cn-client);
|
5. 反编译官方游戏安装包,替换客户端使用的公钥为你自己的,并替换盛趣相关的接口地址为本地或者远程服务器的地址,然后重新打包签名,这样我们才能在服务端解密数据包,可参考我的 [llsif-cn-client](https://github.com/YumeMichi/llsif-cn-client);
|
||||||
6. 都准备好后,现在需要一台有 root 权限的安卓手机(苹果 iOS 不了解)用于后续操作;
|
6. 都准备好后,现在需要一台有 root 权限的安卓手机(苹果 iOS 不了解)用于后续操作;
|
||||||
7. 在手机上安装修改后的客户端,然后将第 3 步中备份的数据解压到对应的目录下,修复好权限(chown);
|
7. 在手机上安装修改后的客户端,然后将第 3 步中备份的数据解压到对应的目录下,修复好权限(chown);
|
||||||
8. 修改游戏默认的请求地址,使用 [HonokaMiku](https://github.com/YumeMichi/HonokaMiku) 解密游戏目录下的服务器配置文件 `/data/data/klb.android.lovelivecn/files/external/config/server_info.json`,将其中的 `prod.game1.ll.sdo.com` 都替换为自己的服务器地址,然后重新加密后替换掉相应文件并修复权限(chown);
|
8. 修改游戏默认的请求地址,使用 [HonokaMiku](https://github.com/YumeMichi/HonokaMiku) (我没有 VS 用来编译 Windows 二进制文件,Windows 用户可以使用 [libhonoka](https://github.com/DarkEnergyProcessor/libhonoka))解密游戏目录下的服务器配置文件 `/data/data/klb.android.lovelivecn/files/external/config/server_info.json`,将其中的 `prod.game1.ll.sdo.com` 都替换为自己的服务器地址,然后重新加密后替换掉相应文件并修复权限(chown);
|
||||||
9. 上述步骤都操作完成后运行 `honoka-chan`(第一次运行会生成配置文件,根据自身情况进行配置);
|
9. 上述步骤都操作完成后运行 `honoka-chan`(第一次运行会生成配置文件,根据自身情况进行配置);
|
||||||
10. 手机运行游戏,使用账号密码登录,输入任意账号密码均可,上述步骤如果都没有问题,从登录开始的请求都会转发到 `honoka-chan`;
|
10. 手机运行游戏,使用账号密码登录,输入任意账号密码均可,上述步骤如果都没有问题,从登录开始的请求都会转发到 `honoka-chan`;
|
||||||
11. 后续即可根据第 4 步中抓取的数据包进行相应的服务端功能开发。
|
11. 后续即可根据第 4 步中抓取的数据包进行相应的服务端功能开发。
|
||||||
@@ -19,7 +19,8 @@ LoveLive! 学园偶像祭自用私服
|
|||||||
## 注意事项
|
## 注意事项
|
||||||
|
|
||||||
1. ~~请备份账号数据后不要再通过官方客户端登录游戏,否则备份的账号信息会失效,后续登录需要填写验证码,该验证码通道可能会随着关服而关闭。~~
|
1. ~~请备份账号数据后不要再通过官方客户端登录游戏,否则备份的账号信息会失效,后续登录需要填写验证码,该验证码通道可能会随着关服而关闭。~~
|
||||||
2. 后续操作都在手机上进行的原因是我用的雷电模拟器,从 3669 开始往后地卡片,只要放入响应包中,游戏客户端都会崩溃。个人太懒了不想试其他模拟器了所以都在手机上进行操作。
|
2. ~~后续操作都在手机上进行的原因是我用的雷电模拟器,从 3669 开始往后地卡片,只要放入响应包中,游戏客户端都会崩溃。个人太懒了不想试其他模拟器了所以都在手机上进行操作。~~
|
||||||
|
3. 模拟器系统尽量使用 32 位安卓 7,经测试兼容性最好,不会有 64 位的闲置一会儿闪退和低版本安卓 5.1 部分卡片加载会闪退(即原先上面的第 2 点)的问题,手机的话应该都没问题。
|
||||||
|
|
||||||
上述崩溃日志
|
上述崩溃日志
|
||||||
<details>
|
<details>
|
||||||
|
|||||||
+7
-1
@@ -3,6 +3,7 @@ package handler
|
|||||||
import (
|
import (
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"honoka-chan/config"
|
"honoka-chan/config"
|
||||||
"honoka-chan/database"
|
"honoka-chan/database"
|
||||||
@@ -143,7 +144,12 @@ func ApiHandler(ctx *gin.Context) {
|
|||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
// fmt.Println("Fuck you!")
|
// fmt.Println("Fuck you!")
|
||||||
// err = errors.New("invalid option")
|
fmt.Println(v)
|
||||||
|
err = errors.New("invalid option")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
res, err = database.LevelDb.Get([]byte(key))
|
res, err = database.LevelDb.Get([]byte(key))
|
||||||
|
|||||||
Reference in New Issue
Block a user