Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
zc2638 committed Sep 19, 2022
1 parent 3bec9a4 commit dec5b19
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 42 deletions.
44 changes: 30 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,48 @@
# ylgy

羊了个羊 通关程序,新版本接口已被修改,暂时使用 抓包重写 的方式通关
羊了个羊 通关程序,新版本接口已被修改。

## 重写第二关
支持两种方式通关:
- 1、[重写第二关的方式](./docs/rewrite.md)
- 2、按照以下文档步骤操作执行通关程序

##### 1、通过下面的链接操作, 让`Charles`可以抓取手机请求。
## 一、获取 UID

[Charles抓包教程](https://www.jianshu.com/p/ff85b3dac157)
- 1、登陆游戏
- 2、点击 `俺的名片`
- 3、查看ID

##### 2、设置 Charles 重写规则
## 二、安装

##### 配置 `Location`
### 1、源码

![](./docs/images/rewrite1.png)
```shell
go install github.com/zc2638/ylgy/cmd/ylgy@latest
```

##### 配置 `Rewrite Rule`
### 2、安装包

![](./docs/images/rewrite2.png)
通过 [Release](https://github.com/zc2638/ylgy/releases) 页面下载

替换的内容:
## 三、使用

### 1、命令行

- 执行以下命令前,将 `<your-custom-token>` 替换为实际内容
- `--times` 对应设置通关次数,默认为 `1`

```shell
ylgy --token <your-custom-token> --times 1
```
{"err_code":0,"err_msg":"","data":{"map_md5":["046ef1bab26e5b9bfe2473ded237b572","046ef1bab26e5b9bfe2473ded237b572"],"map_seed":[3042065807,873076577,3555997730,3291121329]}}
```

##### 3、在手机上正常闯关
### 2、Docker

- 执行以下命令前,将 `<your-custom-token>` 替换为实际内容
- `--times` 对应设置通关次数,默认为 `1`

玩得开心!
```shell
docker run --rm -it zc2638/ylgy sh -c 'ylgy --token <your-custom-token> --times 1'
```

## 声明

Expand Down
25 changes: 25 additions & 0 deletions docs/rewrite.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# 重写第二关

### 1、通过下面的链接操作, 让`Charles`可以抓取手机请求。

[Charles抓包教程](https://www.jianshu.com/p/ff85b3dac157)

### 2、设置 Charles 重写规则

#### 配置 `Location`

![](./docs/images/rewrite1.png)

#### 配置 `Rewrite Rule`

![](./docs/images/rewrite2.png)

替换的内容:

```
{"err_code":0,"err_msg":"","data":{"map_md5":["046ef1bab26e5b9bfe2473ded237b572","046ef1bab26e5b9bfe2473ded237b572"],"map_seed":[3042065807,873076577,3555997730,3291121329]}}
```

#### 3、在手机上正常闯关

玩得开心!
24 changes: 5 additions & 19 deletions pkg/command/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import (

type Option struct {
UID string
Token string
Times int
}

Expand All @@ -25,8 +24,8 @@ func NewRootCommand() *cobra.Command {
Use: "ylgy",
SilenceUsage: true,
RunE: func(cmd *cobra.Command, args []string) error {
if len(opt.Token) == 0 && len(opt.UID) == 0 {
return errors.New("token 或 uid 必须任选其一填写")
if len(opt.UID) == 0 {
return errors.New("uid 必填")
}

times := 1
Expand All @@ -38,22 +37,10 @@ func NewRootCommand() *cobra.Command {
p, err := ants.NewPoolWithFunc(1000, func(i interface{}) {
defer wg.Done()

var (
mode string
err error
)
if len(opt.UID) > 0 {
mode = "uid"
err = core.SendByUID(opt.UID)
if err := core.SendByUID(opt.UID); err != nil {
fmt.Printf("[%d] 请求错误: %v \n", i, err)
} else {
mode = "token"
err = core.Send(opt.Token)
}

if err != nil {
fmt.Printf("[MODE=%s][%d] 失败! 请求超时错误! \n", mode, i)
} else {
fmt.Printf("[MODE=%s][%d] 通关!\n", mode, i)
fmt.Printf("[%d] 通关!\n", i)
}
})
if err != nil {
Expand All @@ -71,7 +58,6 @@ func NewRootCommand() *cobra.Command {
}

cmd.Flags().StringVar(&opt.UID, "uid", opt.UID, "设置uid")
cmd.Flags().StringVar(&opt.Token, "token", opt.Token, "设置token")
cmd.Flags().IntVar(&opt.Times, "times", opt.Times, "设置次数")
return cmd
}
11 changes: 5 additions & 6 deletions pkg/core/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,14 @@ import (
"github.com/tidwall/gjson"
)

const tempToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTQ1MDI0NDUsIm5iZiI6MTY2MzQwMDI0NSwiaWF0IjoxNjYzMzk4NDQ1LCJqdGkiOiJDTTpjYXRfbWF0Y2g6bHQxMjM0NTYiLCJvcGVuX2lkIjoiIiwidWlkIjo0NTk0MjYwMiwiZGVidWciOiIiLCJsYW5nIjoiIn0.1lXIcb1WL_SdsXG5N_i1drjjACRhRZUS2uadHlT6zIY"

var client = resty.New().
SetBaseURL("https://cat-match.easygame2021.com").
SetHeader("Host", "cat-match.easygame2021.com").
SetHeader("Content-Type", "application/json").
SetHeader("Accept-Encoding", "gzip,compress,br,deflate").
SetHeader("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 15_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.28(0x18001c25) NetType/WIFI Language/zh_CN")

func send(url, rankRole, token string) error {
func send(url, rankRole, uid, token string) error {
// 生成通关时间(s)
consumeTime := rand.Int63n(1000)
resp, err := client.R().
Expand All @@ -31,6 +29,7 @@ func send(url, rankRole, token string) error {
SetQueryParam("rank_time", strconv.FormatInt(consumeTime, 10)).
SetQueryParam("rank_role", rankRole).
SetQueryParam("skin", "1").
SetQueryParam("uid", uid).
SetHeader("t", token).
Get(url)

Expand All @@ -48,11 +47,11 @@ func send(url, rankRole, token string) error {
return nil
}

func Send(token string) error {
if err := send("/sheep/v1/game/game_over", "1", token); err != nil {
func Send(token, uid string) error {
if err := send("/sheep/v1/game/user_rank_info", "1", uid, token); err != nil {
return fmt.Errorf("完成闯关失败: %v", err)
}
if err := send("/sheep/v1/game/topic_game_over", "2", token); err != nil {
if err := send("/sheep/v1/game/topic_game_over", "2", "", token); err != nil {
return fmt.Errorf("完成话题失败: %v", err)
}
return nil
Expand Down
6 changes: 3 additions & 3 deletions pkg/core/token.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import (
"github.com/tidwall/gjson"
)

const tempToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTQ1MDI0NDUsIm5iZiI6MTY2MzQwMDI0NSwiaWF0IjoxNjYzMzk4NDQ1LCJqdGkiOiJDTTpjYXRfbWF0Y2g6bHQxMjM0NTYiLCJvcGVuX2lkIjoiIiwidWlkIjo0NTk0MjYwMiwiZGVidWciOiIiLCJsYW5nIjoiIn0.1lXIcb1WL_SdsXG5N_i1drjjACRhRZUS2uadHlT6zIY"

func SendByUID(uid string) error {
openID, err := getOpenID(uid)
if err != nil {
Expand All @@ -18,7 +20,7 @@ func SendByUID(uid string) error {
if err != nil {
return fmt.Errorf("get token failed: %v", err)
}
return Send(token)
return Send(token, uid)
}

func getOpenID(uid string) (string, error) {
Expand All @@ -35,7 +37,6 @@ func getOpenID(uid string) (string, error) {
}

jsonResult := gjson.Parse(resp.String())
fmt.Println(resp.String())
openid := jsonResult.Get("data.wx_open_id")
if jsonResult.Get("err_code").Int() != 0 || openid.String() == "" {
return "", fmt.Errorf("请求错误: %s", resp.String())
Expand Down Expand Up @@ -66,7 +67,6 @@ func getTokenByOpenID(openID string) (string, error) {
}

jsonResult := gjson.Parse(resp.String())
fmt.Println(resp.String())
token := jsonResult.Get("data.token")
if jsonResult.Get("err_code").Int() != 0 || token.String() == "" {
return "", fmt.Errorf("请求错误: %s", resp.String())
Expand Down

0 comments on commit dec5b19

Please sign in to comment.