newservers commited on
Commit
f08d508
·
verified ·
1 Parent(s): 02a290d

Upload 7 files

Browse files
Files changed (7) hide show
  1. app.py +129 -0
  2. app.py.bak +129 -0
  3. requirements.txt +6 -0
  4. secret.py +2 -0
  5. uid_generator_pb2.py +26 -0
  6. zitado.proto +51 -0
  7. zitado_pb2.py +46 -0
app.py ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from Crypto.Cipher import AES
2
+ from Crypto.Util.Padding import pad
3
+ import binascii
4
+ import hashlib
5
+ from secret import*
6
+ import uid_generator_pb2
7
+ import requests
8
+ import struct
9
+ import datetime
10
+ from flask import Flask, jsonify
11
+ import json
12
+ from zitado_pb2 import Users
13
+ import random
14
+ app = Flask(__name__)
15
+ def hex_to_bytes(hex_string):
16
+ return bytes.fromhex(hex_string)
17
+
18
+ def create_protobuf(saturn_, garena):
19
+ message = uid_generator_pb2.uid_generator()
20
+ message.saturn_ = saturn_
21
+ message.garena = garena
22
+ return message.SerializeToString()
23
+
24
+ def protobuf_to_hex(protobuf_data):
25
+ return binascii.hexlify(protobuf_data).decode()
26
+ def decode_hex(hex_string):
27
+ byte_data = binascii.unhexlify(hex_string.replace(' ', ''))
28
+ users = Users()
29
+ users.ParseFromString(byte_data)
30
+ return users
31
+ def encrypt_aes(hex_data, key, iv):
32
+ key = key.encode()[:16]
33
+ iv = iv.encode()[:16]
34
+ cipher = AES.new(key, AES.MODE_CBC, iv)
35
+ padded_data = pad(bytes.fromhex(hex_data), AES.block_size)
36
+ encrypted_data = cipher.encrypt(padded_data)
37
+ return binascii.hexlify(encrypted_data).decode()
38
+ def apis(idd, token):
39
+ headers = {
40
+ 'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 9; ASUS_Z01QD Build/PI)',
41
+ 'Connection': 'Keep-Alive',
42
+ 'Expect': '100-continue',
43
+ 'Authorization': f'Bearer {token}',
44
+ 'X-Unity-Version': '2018.4.11f1',
45
+ 'X-GA': 'v1 1',
46
+ 'ReleaseVersion': 'OB48',
47
+ 'Content-Type': 'application/x-www-form-urlencoded',
48
+ }
49
+ data = bytes.fromhex(idd)
50
+ response = requests.post('https://clientbp.ggblueshark.com/GetPlayerPersonalShow', headers=headers, data=data)
51
+
52
+ hex_response = response.content.hex()
53
+
54
+ return hex_response
55
+ def token():
56
+ tokens = requests.get("http://147.93.123.53:5001/token").json()
57
+ token_list = tokens['tokens']
58
+ print(token_list)
59
+ random_token = random.choice(token_list)
60
+ return random_token
61
+ @app.route('/<uid>', methods=['GET'])
62
+ def main(uid):
63
+ saturn_ = int(uid)
64
+ garena = 1
65
+ protobuf_data = create_protobuf(saturn_, garena)
66
+ hex_data = protobuf_to_hex(protobuf_data)
67
+ aes_key = (key)
68
+ aes_iv = (iv)
69
+ encrypted_hex = encrypt_aes(hex_data, aes_key, aes_iv)
70
+ tokenn = token()
71
+ infoo = apis(encrypted_hex, tokenn)
72
+ hex_data = infoo
73
+ if not hex_data:
74
+ return jsonify({"error": "hex_data query parameter is missing"}), 400
75
+
76
+ try:
77
+ users = decode_hex(hex_data)
78
+ except binascii.Error:
79
+ return jsonify({"error": "Invalid hex data"}), 400
80
+
81
+ result = {}
82
+
83
+ if users.basicinfo:
84
+ result['basicinfo'] = []
85
+ for user_info in users.basicinfo:
86
+ result['basicinfo'].append({
87
+ 'username': user_info.username,
88
+ 'region': user_info.region,
89
+ 'level': user_info.level,
90
+ 'Exp': user_info.Exp,
91
+ 'bio': users.bioinfo[0].bio if users.bioinfo else None,
92
+ 'banner': user_info.banner,
93
+ 'avatar': user_info.avatar,
94
+ 'brrankscore': user_info.brrankscore,
95
+ 'BadgeCount': user_info.BadgeCount,
96
+ 'likes': user_info.likes,
97
+ 'lastlogin': user_info.lastlogin,
98
+ 'csrankpoint': user_info.csrankpoint,
99
+ 'csrankscore': user_info.csrankscore,
100
+ 'brrankpoint': user_info.brrankpoint,
101
+ 'createat': user_info.createat,
102
+ 'OB': user_info.OB
103
+ })
104
+ if users.claninfo:
105
+ result['claninfo'] = []
106
+ for clan in users.claninfo:
107
+ result['claninfo'].append({
108
+ 'clanid': clan.clanid,
109
+ 'clanname': clan.clanname,
110
+ 'guildlevel': clan.guildlevel,
111
+ 'livemember': clan.livemember
112
+ })
113
+
114
+ if users.clanadmin:
115
+ result['clanadmin'] = []
116
+ for admin in users.clanadmin:
117
+ result['clanadmin'].append({
118
+ 'idadmin': admin.idadmin,
119
+ 'adminname': admin.adminname,
120
+ 'level': admin.level,
121
+ 'exp': admin.exp,
122
+ 'brpoint': admin.brpoint,
123
+ 'lastlogin': admin.lastlogin,
124
+ 'cspoint': admin.cspoint
125
+ })
126
+ result['Owners'] = ['Zitado, RedZed']
127
+ return jsonify(result)
128
+ if __name__ == "__main__":
129
+ app.run(host="0.0.0.0", port=5002)
app.py.bak ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from Crypto.Cipher import AES
2
+ from Crypto.Util.Padding import pad
3
+ import binascii
4
+ import hashlib
5
+ from secret import*
6
+ import uid_generator_pb2
7
+ import requests
8
+ import struct
9
+ import datetime
10
+ from flask import Flask, jsonify
11
+ import json
12
+ from zitado_pb2 import Users
13
+ import random
14
+ app = Flask(__name__)
15
+ def hex_to_bytes(hex_string):
16
+ return bytes.fromhex(hex_string)
17
+
18
+ def create_protobuf(saturn_, garena):
19
+ message = uid_generator_pb2.uid_generator()
20
+ message.saturn_ = saturn_
21
+ message.garena = garena
22
+ return message.SerializeToString()
23
+
24
+ def protobuf_to_hex(protobuf_data):
25
+ return binascii.hexlify(protobuf_data).decode()
26
+ def decode_hex(hex_string):
27
+ byte_data = binascii.unhexlify(hex_string.replace(' ', ''))
28
+ users = Users()
29
+ users.ParseFromString(byte_data)
30
+ return users
31
+ def encrypt_aes(hex_data, key, iv):
32
+ key = key.encode()[:16]
33
+ iv = iv.encode()[:16]
34
+ cipher = AES.new(key, AES.MODE_CBC, iv)
35
+ padded_data = pad(bytes.fromhex(hex_data), AES.block_size)
36
+ encrypted_data = cipher.encrypt(padded_data)
37
+ return binascii.hexlify(encrypted_data).decode()
38
+ def apis(idd, token):
39
+ headers = {
40
+ 'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 9; ASUS_Z01QD Build/PI)',
41
+ 'Connection': 'Keep-Alive',
42
+ 'Expect': '100-continue',
43
+ 'Authorization': f'Bearer {token}',
44
+ 'X-Unity-Version': '2018.4.11f1',
45
+ 'X-GA': 'v1 1',
46
+ 'ReleaseVersion': 'OB48',
47
+ 'Content-Type': 'application/x-www-form-urlencoded',
48
+ }
49
+ data = bytes.fromhex(idd)
50
+ response = requests.post('https://clientbp.ggblueshark.com/GetPlayerPersonalShow', headers=headers, data=data)
51
+
52
+ hex_response = response.content.hex()
53
+
54
+ return hex_response
55
+ def token():
56
+ tokens = requests.get("http://164.92.134.31:5001/token").json()
57
+ token_list = tokens['tokens']
58
+ print(token_list)
59
+ random_token = random.choice(token_list)
60
+ return random_token
61
+ @app.route('/<uid>', methods=['GET'])
62
+ def main(uid):
63
+ saturn_ = int(uid)
64
+ garena = 1
65
+ protobuf_data = create_protobuf(saturn_, garena)
66
+ hex_data = protobuf_to_hex(protobuf_data)
67
+ aes_key = (key)
68
+ aes_iv = (iv)
69
+ encrypted_hex = encrypt_aes(hex_data, aes_key, aes_iv)
70
+ tokenn = token()
71
+ infoo = apis(encrypted_hex, tokenn)
72
+ hex_data = infoo
73
+ if not hex_data:
74
+ return jsonify({"error": "hex_data query parameter is missing"}), 400
75
+
76
+ try:
77
+ users = decode_hex(hex_data)
78
+ except binascii.Error:
79
+ return jsonify({"error": "Invalid hex data"}), 400
80
+
81
+ result = {}
82
+
83
+ if users.basicinfo:
84
+ result['basicinfo'] = []
85
+ for user_info in users.basicinfo:
86
+ result['basicinfo'].append({
87
+ 'username': user_info.username,
88
+ 'region': user_info.region,
89
+ 'level': user_info.level,
90
+ 'Exp': user_info.Exp,
91
+ 'bio': users.bioinfo[0].bio if users.bioinfo else None,
92
+ 'banner': user_info.banner,
93
+ 'avatar': user_info.avatar,
94
+ 'brrankscore': user_info.brrankscore,
95
+ 'BadgeCount': user_info.BadgeCount,
96
+ 'likes': user_info.likes,
97
+ 'lastlogin': user_info.lastlogin,
98
+ 'csrankpoint': user_info.csrankpoint,
99
+ 'csrankscore': user_info.csrankscore,
100
+ 'brrankpoint': user_info.brrankpoint,
101
+ 'createat': user_info.createat,
102
+ 'OB': user_info.OB
103
+ })
104
+ if users.claninfo:
105
+ result['claninfo'] = []
106
+ for clan in users.claninfo:
107
+ result['claninfo'].append({
108
+ 'clanid': clan.clanid,
109
+ 'clanname': clan.clanname,
110
+ 'guildlevel': clan.guildlevel,
111
+ 'livemember': clan.livemember
112
+ })
113
+
114
+ if users.clanadmin:
115
+ result['clanadmin'] = []
116
+ for admin in users.clanadmin:
117
+ result['clanadmin'].append({
118
+ 'idadmin': admin.idadmin,
119
+ 'adminname': admin.adminname,
120
+ 'level': admin.level,
121
+ 'exp': admin.exp,
122
+ 'brpoint': admin.brpoint,
123
+ 'lastlogin': admin.lastlogin,
124
+ 'cspoint': admin.cspoint
125
+ })
126
+ result['Owners'] = ['Zitado, RedZed']
127
+ return jsonify(result)
128
+ if __name__ == "__main__":
129
+ app.run(host="0.0.0.0", port=5002)
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Flask
2
+ Gunicorn
3
+ user_agent
4
+ requests
5
+ pycryptodome
6
+ protobuf
secret.py ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ key = "Yg&tc%DEuh6%Zc^8"
2
+ iv = "6oyZDr22E3ychjM%"
uid_generator_pb2.py ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: uid_generator.proto
4
+ # Protobuf Python Version: 4.25.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+
16
+
17
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13uid_generator.proto\"0\n\ruid_generator\x12\x0f\n\x07saturn_\x18\x01 \x01(\x03\x12\x0e\n\x06garena\x18\x02 \x01(\x03\x62\x06proto3')
18
+
19
+ _globals = globals()
20
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
21
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'uid_generator_pb2', _globals)
22
+ if _descriptor._USE_C_DESCRIPTORS == False:
23
+ DESCRIPTOR._options = None
24
+ _globals['_UID_GENERATOR']._serialized_start=23
25
+ _globals['_UID_GENERATOR']._serialized_end=71
26
+ # @@protoc_insertion_point(module_scope)
zitado.proto ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ syntax = "proto3";
2
+
3
+ message clan {
4
+
5
+ uint32 clanid = 1;
6
+ string clanname = 2;
7
+ uint32 guildlevel = 4;
8
+ uint32 livemember = 5;
9
+ }
10
+ message adminclan {
11
+ uint32 idadmin = 1;
12
+ string adminname = 3;
13
+ uint32 level = 6;
14
+ uint32 exp = 7;
15
+ uint32 brpoint = 15;
16
+ uint32 cspoint = 31;
17
+ uint32 lastlogin = 24;
18
+ }
19
+ message info {
20
+ string username = 3;
21
+ string region = 5;
22
+ uint32 level = 6;
23
+ uint32 Exp = 7;
24
+ uint32 banner = 11;
25
+ uint32 avatar = 12;
26
+ uint32 likes = 21;
27
+ uint32 BadgeCount = 18;
28
+ uint32 lastlogin = 24;
29
+ uint32 createat = 44;
30
+ uint32 brrankpoint = 35;
31
+ uint32 brrankscore = 15;
32
+ uint32 csrankpoint = 30;
33
+ uint32 csrankscore = 31;
34
+ string OB = 50;
35
+ }
36
+ message bio {
37
+ string bio = 9;
38
+ }
39
+ message pet {
40
+ string pet = 2;
41
+ uint32 petexp = 4;
42
+ uint32 petlevel = 3;
43
+ }
44
+ message Users {
45
+ repeated clan claninfo = 6;
46
+ repeated info basicinfo = 1;
47
+ repeated adminclan clanadmin = 7;
48
+ repeated bio bioinfo = 9;
49
+
50
+ }
51
+
zitado_pb2.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: zitado.proto
5
+ # Protobuf Python Version: 5.27.3
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 5,
15
+ 27,
16
+ 3,
17
+ '',
18
+ 'zitado.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+
26
+
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0czitado.proto\"P\n\x04\x63lan\x12\x0e\n\x06\x63lanid\x18\x01 \x01(\r\x12\x10\n\x08\x63lanname\x18\x02 \x01(\t\x12\x12\n\nguildlevel\x18\x04 \x01(\r\x12\x12\n\nlivemember\x18\x05 \x01(\r\"\x80\x01\n\tadminclan\x12\x0f\n\x07idadmin\x18\x01 \x01(\r\x12\x11\n\tadminname\x18\x03 \x01(\t\x12\r\n\x05level\x18\x06 \x01(\r\x12\x0b\n\x03\x65xp\x18\x07 \x01(\r\x12\x0f\n\x07\x62rpoint\x18\x0f \x01(\r\x12\x0f\n\x07\x63spoint\x18\x1f \x01(\r\x12\x11\n\tlastlogin\x18\x18 \x01(\r\"\x8c\x02\n\x04info\x12\x10\n\x08username\x18\x03 \x01(\t\x12\x0e\n\x06region\x18\x05 \x01(\t\x12\r\n\x05level\x18\x06 \x01(\r\x12\x0b\n\x03\x45xp\x18\x07 \x01(\r\x12\x0e\n\x06\x62\x61nner\x18\x0b \x01(\r\x12\x0e\n\x06\x61vatar\x18\x0c \x01(\r\x12\r\n\x05likes\x18\x15 \x01(\r\x12\x12\n\nBadgeCount\x18\x12 \x01(\r\x12\x11\n\tlastlogin\x18\x18 \x01(\r\x12\x10\n\x08\x63reateat\x18, \x01(\r\x12\x13\n\x0b\x62rrankpoint\x18# \x01(\r\x12\x13\n\x0b\x62rrankscore\x18\x0f \x01(\r\x12\x13\n\x0b\x63srankpoint\x18\x1e \x01(\r\x12\x13\n\x0b\x63srankscore\x18\x1f \x01(\r\x12\n\n\x02OB\x18\x32 \x01(\t\"\x12\n\x03\x62io\x12\x0b\n\x03\x62io\x18\t \x01(\t\"4\n\x03pet\x12\x0b\n\x03pet\x18\x02 \x01(\t\x12\x0e\n\x06petexp\x18\x04 \x01(\r\x12\x10\n\x08petlevel\x18\x03 \x01(\r\"p\n\x05Users\x12\x17\n\x08\x63laninfo\x18\x06 \x03(\x0b\x32\x05.clan\x12\x18\n\tbasicinfo\x18\x01 \x03(\x0b\x32\x05.info\x12\x1d\n\tclanadmin\x18\x07 \x03(\x0b\x32\n.adminclan\x12\x15\n\x07\x62ioinfo\x18\t \x03(\x0b\x32\x04.biob\x06proto3')
28
+
29
+ _globals = globals()
30
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'zitado_pb2', _globals)
32
+ if not _descriptor._USE_C_DESCRIPTORS:
33
+ DESCRIPTOR._loaded_options = None
34
+ _globals['_CLAN']._serialized_start=16
35
+ _globals['_CLAN']._serialized_end=96
36
+ _globals['_ADMINCLAN']._serialized_start=99
37
+ _globals['_ADMINCLAN']._serialized_end=227
38
+ _globals['_INFO']._serialized_start=230
39
+ _globals['_INFO']._serialized_end=498
40
+ _globals['_BIO']._serialized_start=500
41
+ _globals['_BIO']._serialized_end=518
42
+ _globals['_PET']._serialized_start=520
43
+ _globals['_PET']._serialized_end=572
44
+ _globals['_USERS']._serialized_start=574
45
+ _globals['_USERS']._serialized_end=686
46
+ # @@protoc_insertion_point(module_scope)