fca-priyansh 15.0.0 → 17.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/Extra/Balancer.js +49 -0
- package/Extra/Bypass/956/index.js +234 -0
- package/Extra/Bypass/test/aaaa.json +170 -0
- package/Extra/Bypass/test/index.js +188 -0
- package/Extra/Database/index.js +249 -140
- package/Extra/ExtraAddons.js +35 -33
- package/Extra/ExtraFindUID.js +3 -1
- package/Extra/ExtraGetThread.js +303 -56
- package/Extra/ExtraUptimeRobot.js +15 -3
- package/Extra/Html/Classic/script.js +3 -3
- package/Extra/Security/AES_256_GCM/index.js +0 -0
- package/Extra/Security/Base/Step_1.js +6 -0
- package/Extra/Security/Base/Step_2.js +22 -0
- package/Extra/Security/Base/Step_3.js +22 -0
- package/Extra/Security/Base/index.js +191 -0
- package/Extra/Security/Index.js +5 -146
- package/Extra/Security/Step_1.js +4 -9
- package/Extra/Security/Step_2.js +2 -0
- package/Extra/Security/Step_3.js +4 -2
- package/Extra/Src/Change_Environment.js +1 -1
- package/Extra/Src/Check_Update.js +67 -0
- package/Extra/Src/History.js +2 -2
- package/Extra/Src/Instant_Update.js +65 -0
- package/Extra/Src/Premium.js +35 -38
- package/Extra/Src/Release_Memory.js +160 -0
- package/Extra/Src/Websocket.js +213 -0
- package/Extra/Src/image/checkmate.jpg +0 -0
- package/Extra/Src/test.js +28 -0
- package/Extra/Src/uuid.js +1 -1
- package/Func/AcceptAgreement.js +4 -5
- package/Func/ClearCache.js +7 -7
- package/Func/ReportV1.js +5 -5
- package/LICENSE +1 -4
- package/Language/index.json +59 -8
- package/Main.js +1444 -0
- package/README.md +198 -1
- package/broadcast.js +43 -37
- package/index.js +305 -1709
- package/logger.js +4 -4
- package/package.json +16 -11
- package/src/Dev_Horizon_Data.js +3 -3
- package/src/Dev_getThreadInfoOLD.js +422 -0
- package/src/Dev_shareTest2.js +68 -0
- package/src/Dev_shareTest3.js +71 -0
- package/src/Premium.js +8 -13
- package/src/Screenshot.js +4 -6
- package/src/editMessage.js +53 -0
- package/src/getAccessToken.js +0 -4
- package/src/getFriendsList.js +1 -1
- package/src/getMessage.js +26 -3
- package/src/getThreadHistory.js +1 -1
- package/src/getThreadInfo.js +237 -161
- package/src/getThreadInfoOLD.js +422 -0
- package/src/getThreadMain.js +1 -1
- package/src/getUID.js +3 -3
- package/src/getUserInfo.js +56 -73
- package/src/getUserInfoMain.js +2 -2
- package/src/getUserInfoV2.js +0 -4
- package/src/getUserInfoV3.js +3 -3
- package/src/getUserInfoV4.js +5 -5
- package/src/getUserInfoV5.js +4 -4
- package/src/listenMqtt.js +905 -625
- package/src/listenMqttV1.js +846 -0
- package/src/sendMessage.js +54 -2
- package/src/sendMqttMessage.js +71 -0
- package/src/setPostReaction.js +3 -3
- package/src/shareContact.js +55 -0
- package/src/shareLink.js +58 -0
- package/src/unsendMessage.js +28 -20
- package/src/unsendMqttMessage.js +66 -0
- package/utils.js +1567 -138
- package/.gitattributes +0 -2
- package/gitattributes +0 -2
- package/gitignore.txt +0 -10
@@ -0,0 +1,49 @@
|
|
1
|
+
class APILoadBalancer {
|
2
|
+
constructor(Api1,Api2 ,preferredRatio = 0.85, forceType2) {
|
3
|
+
this.Api1 = Api1;
|
4
|
+
this.Api2 = Api2;
|
5
|
+
this.preferredRatio = preferredRatio;
|
6
|
+
this.totalRequests = 0;
|
7
|
+
this.api2Requests = 0;
|
8
|
+
}
|
9
|
+
|
10
|
+
async makeRequest(requestData) {
|
11
|
+
try {
|
12
|
+
this.totalRequests++;
|
13
|
+
const currentRatio = this.api2Requests / this.totalRequests;
|
14
|
+
|
15
|
+
if (currentRatio < this.preferredRatio) {
|
16
|
+
this.api2Requests++;
|
17
|
+
return await this.Api2(...requestData)
|
18
|
+
} else {
|
19
|
+
return await this.Api1(...requestData);
|
20
|
+
}
|
21
|
+
} catch (error) {
|
22
|
+
return await this.fallbackRequest(requestData);
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
async fallbackRequest(requestData) {
|
27
|
+
try {
|
28
|
+
if (this.api2Requests / this.totalRequests >= this.preferredRatio) {
|
29
|
+
this.api2Requests++;
|
30
|
+
return await this.Api2(...requestData);
|
31
|
+
} else {
|
32
|
+
return await this.Api1(...requestData);
|
33
|
+
}
|
34
|
+
} catch (error) {
|
35
|
+
throw new Error('Balancer Error, contact fb.com/Lazic.Kanzu');
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
getStats() {
|
40
|
+
return {
|
41
|
+
totalRequests: this.totalRequests,
|
42
|
+
api2Requests: this.api2Requests,
|
43
|
+
api1Requests: this.totalRequests - this.api2Requests,
|
44
|
+
currentRatio: (this.api2Requests / this.totalRequests) * 100
|
45
|
+
};
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
module.exports = APILoadBalancer;
|
@@ -0,0 +1,234 @@
|
|
1
|
+
/** By @KanzuWakazaki 03/05/2024 - DD/MM/YYYY */
|
2
|
+
// !Type - change password is not required
|
3
|
+
function Find_And_Parse(Data) {
|
4
|
+
const regex = /<script\s+type="application\/json"\s+data-content-len="([0-9]+)"\s+data-sjs\s*(.*?)\s*<\/script>/gs;
|
5
|
+
const matches = Data.matchAll(regex);
|
6
|
+
let Data_resp;
|
7
|
+
for (const match of matches) {
|
8
|
+
if (JSON.parse(JSON.stringify((match[2]))).includes('any_eligible_challenges')) {
|
9
|
+
const Data_ = JSON.parse(match[2].replace('>', ''))
|
10
|
+
Data_resp = findAnyEligibleChallengesAndSiblings(Data_)
|
11
|
+
}
|
12
|
+
|
13
|
+
}
|
14
|
+
|
15
|
+
|
16
|
+
function findAnyEligibleChallengesAndSiblings(data) {
|
17
|
+
const screenData = findScreenData(data);
|
18
|
+
if (!screenData) {
|
19
|
+
return null;
|
20
|
+
}
|
21
|
+
|
22
|
+
const siblings = {};
|
23
|
+
for (const [key, value] of Object.entries(screenData)) {
|
24
|
+
if (key === 'any_eligible_challenges') {
|
25
|
+
siblings[key] = value;
|
26
|
+
}
|
27
|
+
else {
|
28
|
+
siblings[key] = value;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
return siblings;
|
33
|
+
}
|
34
|
+
|
35
|
+
function findScreenData(data) {
|
36
|
+
if (Array.isArray(data)) {
|
37
|
+
for (const item of data) {
|
38
|
+
const result = findScreenData(item);
|
39
|
+
if (result) {
|
40
|
+
return result;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
44
|
+
else if (typeof data === 'object' && data !== null) {
|
45
|
+
if (data.screen) {
|
46
|
+
return data.screen;
|
47
|
+
}
|
48
|
+
for (const value of Object.values(data)) {
|
49
|
+
const result = findScreenData(value);
|
50
|
+
if (result) {
|
51
|
+
return result;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
return null;
|
56
|
+
}
|
57
|
+
return Data_resp.token || null
|
58
|
+
}
|
59
|
+
|
60
|
+
module.exports.Check = Find_And_Parse
|
61
|
+
module.exports.Cook_And_Work = async function(ctx, defaultFuncs) {
|
62
|
+
const utils = require('../../../utils');
|
63
|
+
var Form_P1;
|
64
|
+
var CanResolve_P1;
|
65
|
+
var NextToken_P1;
|
66
|
+
var lsd;
|
67
|
+
|
68
|
+
const Level_1 = () => new Promise((re, rj) => {
|
69
|
+
try {
|
70
|
+
utils.get('https://www.facebook.com/checkpoint/828281030927956/?next=https%3A%2F%2Faccountscenter.facebook.com%2Fpassword_and_security', ctx.jar, null, ctx.globalOptions)
|
71
|
+
.then(function(data) {
|
72
|
+
lsd = utils.getFrom(data.body, "[\"LSD\",[],{\"token\":\"", "\"}")
|
73
|
+
Form_P1 = {
|
74
|
+
lsd: lsd,
|
75
|
+
fb_api_caller_class: 'RelayModern',
|
76
|
+
fb_api_req_friendly_name: 'useEpsilonNavigateMutation',
|
77
|
+
variables: JSON.stringify({
|
78
|
+
input:{
|
79
|
+
client_mutation_id:"1",
|
80
|
+
actor_id: ctx.userId,
|
81
|
+
step:"STEPPER_CONFIRMATION",
|
82
|
+
token : JSON.stringify({
|
83
|
+
sensitive_string_value: Find_And_Parse(data.body)
|
84
|
+
})
|
85
|
+
},
|
86
|
+
scale:1
|
87
|
+
}),
|
88
|
+
server_timestamps: true,
|
89
|
+
doc_id: 7414856831926043
|
90
|
+
};
|
91
|
+
})
|
92
|
+
.then(function() {
|
93
|
+
defaultFuncs.postFormData('https://www.facebook.com/api/graphql/', ctx.jar, Form_P1, {})
|
94
|
+
.then(function(resp) {
|
95
|
+
let checkpoint = resp.data.epsilon_navigate.epsilon_checkpoint;
|
96
|
+
if (checkpoint.id == '__EPSILON_CLIENT__' && checkpoint.__typename == "EpsilonStepperScreen" && checkpoint.screen.next_screen == 'CONTACT_POINT_REVIEW' && checkpoint.screen.steps.length === 3 && checkpoint.screen.steps[1].active == true) {
|
97
|
+
NextToken_P1 = checkpoint.screen.token;
|
98
|
+
CanResolve_P1 = true;
|
99
|
+
re(CanResolve_P1)
|
100
|
+
}
|
101
|
+
else {
|
102
|
+
CanResolve_P1 = false;
|
103
|
+
re(CanResolve_P1)
|
104
|
+
}
|
105
|
+
});
|
106
|
+
})
|
107
|
+
}
|
108
|
+
catch (e) {
|
109
|
+
rj(e);
|
110
|
+
}
|
111
|
+
})
|
112
|
+
|
113
|
+
await Level_1();
|
114
|
+
|
115
|
+
var CanResolve_P2;
|
116
|
+
var NextToken_P2;
|
117
|
+
|
118
|
+
const Level_2 = () => new Promise((re, rj) => {
|
119
|
+
let Form_P2 = {
|
120
|
+
doc_id: 7414856831926043,
|
121
|
+
lsd: lsd,
|
122
|
+
fb_api_caller_class: "RelayModern",
|
123
|
+
fb_api_req_friendly_name: "useEpsilonNavigateMutation",
|
124
|
+
server_timestamps: true,
|
125
|
+
variables: JSON.stringify({
|
126
|
+
input: {
|
127
|
+
client_mutation_id: 2,
|
128
|
+
actor_id: ctx.userId,
|
129
|
+
step:"CONTACT_POINT_REVIEW",
|
130
|
+
token: JSON.stringify({
|
131
|
+
sensitive_string_value: NextToken_P1
|
132
|
+
})
|
133
|
+
},
|
134
|
+
scale: 1
|
135
|
+
})
|
136
|
+
}
|
137
|
+
|
138
|
+
defaultFuncs.postFormData('https://www.facebook.com/api/graphql/', ctx.jar, Form_P2, {}).then(function(resp) {
|
139
|
+
let checkpoint = resp.data.epsilon_navigate.epsilon_checkpoint;
|
140
|
+
if (checkpoint.id == '__EPSILON_CLIENT__' && checkpoint.__typename == "EpsilonContactPointReview" && checkpoint.screen.contact_points.length >= 1 && checkpoint.screen.contact_points[0].suspicious == "UNSUSPICIOUS") {
|
141
|
+
NextToken_P2 = checkpoint.screen.token;
|
142
|
+
CanResolve_P2 = true;
|
143
|
+
re(CanResolve_P2)
|
144
|
+
}
|
145
|
+
else {
|
146
|
+
CanResolve_P2 = false;
|
147
|
+
re(CanResolve_P2)
|
148
|
+
}
|
149
|
+
});
|
150
|
+
})
|
151
|
+
|
152
|
+
if (CanResolve_P1 == true) await Level_2();
|
153
|
+
else return CanResolve_P1;
|
154
|
+
|
155
|
+
var CanResolve_P3;
|
156
|
+
var NextToken_P3;
|
157
|
+
|
158
|
+
const Level_3 = () => new Promise((re, rj) => {
|
159
|
+
let Form_P3 ={
|
160
|
+
doc_id: 7414856831926043,
|
161
|
+
lsd: lsd,
|
162
|
+
fb_api_caller_class: "RelayModern",
|
163
|
+
fb_api_req_friendly_name: "useEpsilonNavigateMutation",
|
164
|
+
server_timestamps: true,
|
165
|
+
variables: JSON.stringify({
|
166
|
+
input: {
|
167
|
+
client_mutation_id: 3,
|
168
|
+
actor_id: ctx.userId,
|
169
|
+
step: "CHANGE_PASSWORD", //bro where's change password :d?
|
170
|
+
token: JSON.stringify({
|
171
|
+
sensitive_string_value: NextToken_P2
|
172
|
+
})
|
173
|
+
},
|
174
|
+
scale:1
|
175
|
+
})
|
176
|
+
}
|
177
|
+
|
178
|
+
defaultFuncs.postFormData('https://www.facebook.com/api/graphql/', ctx.jar, Form_P3, {}).then(function(resp) {
|
179
|
+
let checkpoint = resp.data.epsilon_navigate.epsilon_checkpoint;
|
180
|
+
if (checkpoint.id == '__EPSILON_CLIENT__' && checkpoint.__typename == "EpsilonLoginDetailsConfirmationScreen" && checkpoint.screen.contact_points.length >= 1) {
|
181
|
+
NextToken_P3 = checkpoint.screen.token;
|
182
|
+
CanResolve_P3 = true;
|
183
|
+
re(CanResolve_P3)
|
184
|
+
}
|
185
|
+
else {
|
186
|
+
CanResolve_P3 = false;
|
187
|
+
rj(CanResolve_P3)
|
188
|
+
}
|
189
|
+
});
|
190
|
+
})
|
191
|
+
|
192
|
+
if (CanResolve_P2 == true) await Level_3();
|
193
|
+
else return CanResolve_P2
|
194
|
+
|
195
|
+
var CanResolve_P4;
|
196
|
+
var NextToken_P4;
|
197
|
+
|
198
|
+
const Level_Final = () => new Promise((re, rj) => {
|
199
|
+
let Form_P4 ={
|
200
|
+
doc_id: 7414856831926043,
|
201
|
+
lsd: lsd,
|
202
|
+
fb_api_caller_class: "RelayModern",
|
203
|
+
fb_api_req_friendly_name: "useEpsilonNavigateMutation",
|
204
|
+
server_timestamps: true,
|
205
|
+
variables: JSON.stringify({
|
206
|
+
input: {
|
207
|
+
client_mutation_id: 4,
|
208
|
+
actor_id: ctx.userId,
|
209
|
+
step: "OUTRO",
|
210
|
+
token: JSON.stringify({
|
211
|
+
sensitive_string_value: NextToken_P3
|
212
|
+
})
|
213
|
+
},
|
214
|
+
scale:1
|
215
|
+
})
|
216
|
+
}
|
217
|
+
|
218
|
+
defaultFuncs.postFormData('https://www.facebook.com/api/graphql/', ctx.jar, Form_P4, {}).then(function(resp) {
|
219
|
+
let checkpoint = resp.data.epsilon_navigate.epsilon_checkpoint;
|
220
|
+
if (checkpoint.id == '__EPSILON_CLIENT__' && checkpoint.__typename == "EpsilonOutroScreen" && checkpoint.screen.fallback.uri == 'https://www.facebook.com/') {
|
221
|
+
NextToken_P4 = checkpoint.screen.token;
|
222
|
+
CanResolve_P4 = true;
|
223
|
+
re(CanResolve_P4)
|
224
|
+
}
|
225
|
+
else {
|
226
|
+
CanResolve_P4 = false;
|
227
|
+
re(CanResolve_P4)
|
228
|
+
}
|
229
|
+
});
|
230
|
+
});
|
231
|
+
|
232
|
+
if (CanResolve_P3 == true) return await Level_Final();
|
233
|
+
else return (CanResolve_P3);
|
234
|
+
}
|
@@ -0,0 +1,170 @@
|
|
1
|
+
|
2
|
+
{
|
3
|
+
"require": [
|
4
|
+
[
|
5
|
+
"ScheduledServerJS",
|
6
|
+
"handle",
|
7
|
+
null,
|
8
|
+
[
|
9
|
+
{
|
10
|
+
"__bbox": {
|
11
|
+
"require": [
|
12
|
+
[
|
13
|
+
"EpsilonIntro_data$normalization.graphql"
|
14
|
+
],
|
15
|
+
[
|
16
|
+
"EpsilonIntro.react"
|
17
|
+
],
|
18
|
+
[
|
19
|
+
"emptyFunction",
|
20
|
+
"thatReturns",
|
21
|
+
[
|
22
|
+
"RequireDeferredReference"
|
23
|
+
],
|
24
|
+
[
|
25
|
+
[
|
26
|
+
{
|
27
|
+
"__dr": "EpsilonIntro_data$normalization.graphql"
|
28
|
+
},
|
29
|
+
{
|
30
|
+
"__dr": "EpsilonIntro.react"
|
31
|
+
}
|
32
|
+
]
|
33
|
+
]
|
34
|
+
],
|
35
|
+
[
|
36
|
+
"RelayPrefetchedStreamCache",
|
37
|
+
"next",
|
38
|
+
[
|
39
|
+
],
|
40
|
+
[
|
41
|
+
"adp_EpsilonAppQueryRelayPreloader_6633c02c658625382051842",
|
42
|
+
{
|
43
|
+
"__bbox": {
|
44
|
+
"complete": true,
|
45
|
+
"result": {
|
46
|
+
"data": {
|
47
|
+
"epsilon_checkpoint": {
|
48
|
+
"screen": {
|
49
|
+
"__typename": "EpsilonIntroScreen",
|
50
|
+
"any_eligible_challenges": true,
|
51
|
+
"is_unvetted_flow": false,
|
52
|
+
"title": "Naroki \u01a1i, t\u00e0i kho\u1ea3n c\u1ee7a b\u1ea1n \u0111\u00e3 b\u1ecb kh\u00f3a",
|
53
|
+
"description": "Ch\u00fang t\u00f4i \u0111\u00e3 ph\u00e1t hi\u1ec7n th\u1ea5y ho\u1ea1t \u0111\u1ed9ng b\u1ea5t th\u01b0\u1eddng tr\u00ean t\u00e0i kho\u1ea3n c\u1ee7a b\u1ea1n. Nh\u01b0 v\u1eady ngh\u0129a l\u00e0 ai \u0111\u00f3 \u0111\u00e3 s\u1eed d\u1ee5ng t\u00e0i kho\u1ea3n n\u00e0y m\u00e0 b\u1ea1n kh\u00f4ng bi\u1ebft.",
|
54
|
+
"secondary_title": null,
|
55
|
+
"secondary": "H\u00e3y c\u00f9ng th\u1ef1c hi\u1ec7n m\u1ed9t v\u00e0i b\u01b0\u1edbc theo h\u01b0\u1edbng d\u1eabn \u0111\u1ec3 m\u1edf kh\u00f3a t\u00e0i kho\u1ea3n c\u1ee7a b\u1ea1n nh\u00e9.",
|
56
|
+
"info_box": {
|
57
|
+
"heading": "Ng\u00e0y kh\u00f3a t\u00e0i kho\u1ea3n: Th\u00e1ng 5 2, 2024 ",
|
58
|
+
"body": "\u0110\u1ec3 b\u1ea3o v\u1ec7 b\u1ea1n, ch\u00fang t\u00f4i s\u1ebd \u1ea9n trang c\u00e1 nh\u00e2n c\u1ee7a b\u1ea1n v\u1edbi m\u1ecdi ng\u01b0\u1eddi tr\u00ean Facebook v\u00e0 b\u1ea1n c\u0169ng kh\u00f4ng th\u1ec3 s\u1eed d\u1ee5ng t\u00e0i kho\u1ea3n c\u1ee7a m\u00ecnh."
|
59
|
+
},
|
60
|
+
"button_text": "B\u1eaft \u0111\u1ea7u",
|
61
|
+
"token": "",
|
62
|
+
"view_vetted_devices_link": null,
|
63
|
+
"vetted_devices_title": "\u0110\u0103ng nh\u1eadp b\u1eb1ng b\u1ea5t k\u1ef3 thi\u1ebft b\u1ecb n\u00e0o sau \u0111\u00e2y",
|
64
|
+
"vetted_devices_body": "H\u00e3y \u0111\u1ea3m b\u1ea3o b\u1ea1n d\u00f9ng \u1ee9ng d\u1ee5ng ho\u1eb7c tr\u00ecnh duy\u1ec7t hi\u1ec3n th\u1ecb c\u00f9ng thi\u1ebft b\u1ecb.",
|
65
|
+
"vetted_devices": [
|
66
|
+
],
|
67
|
+
"__module_operation_EpsilonScreen_data": {
|
68
|
+
"__dr": "EpsilonIntro_data$normalization.graphql"
|
69
|
+
},
|
70
|
+
"__module_component_EpsilonScreen_data": {
|
71
|
+
"__dr": "EpsilonIntro.react"
|
72
|
+
}
|
73
|
+
},
|
74
|
+
"id": "__EPSILON_CLIENT__"
|
75
|
+
},
|
76
|
+
"viewer": {
|
77
|
+
"actor": {
|
78
|
+
"__typename": "User",
|
79
|
+
"__isActor": "User",
|
80
|
+
"id": "100077059530660",
|
81
|
+
"answer_agent_group_id": null,
|
82
|
+
"__isEntity": "User",
|
83
|
+
"profile_url": "https:\/\/www.facebook.com\/Horizon.Lucius.Synthesis.III",
|
84
|
+
"story_bucket": {
|
85
|
+
"nodes": [
|
86
|
+
{
|
87
|
+
"should_show_close_friend_badge": false,
|
88
|
+
"id": "100254162553235",
|
89
|
+
"first_story_to_show": null
|
90
|
+
}
|
91
|
+
]
|
92
|
+
},
|
93
|
+
"url": "https:\/\/www.facebook.com\/Horizon.Lucius.Synthesis.III",
|
94
|
+
"name": "Halzion Naroki",
|
95
|
+
"profile_picture": {
|
96
|
+
"uri": "https:\/\/scontent.fsgn15-1.fna.fbcdn.net\/v\/t39.30808-1\/399896211_348698977708751_6334756641854988641_n.jpg?stp=c0.53.120.120a_dst-jpg_p120x120&_nc_cat=103&ccb=1-7&_nc_sid=5f2048&_nc_ohc=KEEs_WVu_G8Q7kNvgExP4FT&_nc_ht=scontent.fsgn15-1.fna&oh=00_AfC6xFTxM16_NLs1beZLhfwOutDOc-BmzcA20030DBBvUA&oe=6639910A",
|
97
|
+
"width": 120,
|
98
|
+
"height": 120,
|
99
|
+
"scale": 2
|
100
|
+
}
|
101
|
+
}
|
102
|
+
}
|
103
|
+
},
|
104
|
+
"extensions": {
|
105
|
+
"prefetch_uris_v2": [
|
106
|
+
{
|
107
|
+
"uri": "https:\/\/scontent.fsgn15-1.fna.fbcdn.net\/v\/t39.30808-1\/399896211_348698977708751_6334756641854988641_n.jpg?stp=c0.53.120.120a_dst-jpg_p120x120&_nc_cat=103&ccb=1-7&_nc_sid=5f2048&_nc_ohc=KEEs_WVu_G8Q7kNvgExP4FT&_nc_ht=scontent.fsgn15-1.fna&oh=00_AfC6xFTxM16_NLs1beZLhfwOutDOc-BmzcA20030DBBvUA&oe=6639910A",
|
108
|
+
"label": null
|
109
|
+
}
|
110
|
+
],
|
111
|
+
"is_final": true
|
112
|
+
}
|
113
|
+
},
|
114
|
+
"sequence_number": 0
|
115
|
+
}
|
116
|
+
}
|
117
|
+
]
|
118
|
+
],
|
119
|
+
[
|
120
|
+
"Bootloader",
|
121
|
+
"markComponentsAsImmediate",
|
122
|
+
[
|
123
|
+
],
|
124
|
+
[
|
125
|
+
[
|
126
|
+
"EpsilonVettedDevicesDialog.react",
|
127
|
+
"CometProfileVideoSection.react",
|
128
|
+
"CometHovercardQueryRenderer.react"
|
129
|
+
]
|
130
|
+
]
|
131
|
+
],
|
132
|
+
[
|
133
|
+
"RequireDeferredReference",
|
134
|
+
"unblock",
|
135
|
+
[
|
136
|
+
],
|
137
|
+
[
|
138
|
+
[
|
139
|
+
"EpsilonIntro_data$normalization.graphql",
|
140
|
+
"EpsilonIntro.react"
|
141
|
+
],
|
142
|
+
"sd"
|
143
|
+
]
|
144
|
+
],
|
145
|
+
[
|
146
|
+
"RequireDeferredReference",
|
147
|
+
"unblock",
|
148
|
+
[
|
149
|
+
],
|
150
|
+
[
|
151
|
+
[
|
152
|
+
"EpsilonIntro_data$normalization.graphql",
|
153
|
+
"EpsilonIntro.react"
|
154
|
+
],
|
155
|
+
"css"
|
156
|
+
]
|
157
|
+
]
|
158
|
+
]
|
159
|
+
}
|
160
|
+
},
|
161
|
+
{
|
162
|
+
"__bbox": null
|
163
|
+
},
|
164
|
+
{
|
165
|
+
"__bbox": null
|
166
|
+
}
|
167
|
+
]
|
168
|
+
]
|
169
|
+
]
|
170
|
+
}
|
@@ -0,0 +1,188 @@
|
|
1
|
+
/** By @KanzuWakazaki 03/05/2024 - DD/MM/YYYY */
|
2
|
+
var Form_P1;
|
3
|
+
var CanResolve_P1;
|
4
|
+
var NextToken_P1;
|
5
|
+
var lsd;
|
6
|
+
utils.get('https://www.facebook.com/checkpoint/828281030927956/?next=https%3A%2F%2Faccountscenter.facebook.com%2Fpassword_and_security', ctx.jar, null, ctx.globalOptions)
|
7
|
+
.then(function(data) {
|
8
|
+
lsd = utils.getFrom(data.body, "[\"LSD\",[],{\"token\":\"", "\"}")
|
9
|
+
Form_P1 = {
|
10
|
+
lsd: lsd,
|
11
|
+
fb_api_caller_class: 'RelayModern',
|
12
|
+
fb_api_req_friendly_name: 'useEpsilonNavigateMutation',
|
13
|
+
variables: JSON.stringify({
|
14
|
+
input:{
|
15
|
+
client_mutation_id:"1",
|
16
|
+
actor_id: ctx.userId,
|
17
|
+
step:"STEPPER_CONFIRMATION",
|
18
|
+
token : JSON.stringify({
|
19
|
+
sensitive_string_value: Find_And_Parse(data.body)
|
20
|
+
})
|
21
|
+
},
|
22
|
+
scale:1
|
23
|
+
}),
|
24
|
+
server_timestamps: true,
|
25
|
+
doc_id: 7414856831926043
|
26
|
+
};
|
27
|
+
})
|
28
|
+
.then(function() {
|
29
|
+
defaultFuncs.postFormData('https://www.facebook.com/api/graphql/', ctx.jar, Form_P1, {})
|
30
|
+
.then(function(resp) {
|
31
|
+
let checkpoint = resp.data.epsilon_navigate.epsilon_checkpoint;
|
32
|
+
if (checkpoint.id == '__EPSILON_CLIENT__' && checkpoint.__typename == "EpsilonStepperScreen" && checkpoint.screen.next_screen == 'CONTACT_POINT_REVIEW' && checkpoint.screen.steps.length === 3 && checkpoint.screen.steps[1].active == true) {
|
33
|
+
NextToken_P1 = checkpoint.screen.token;
|
34
|
+
return CanResolve_P1 = true;
|
35
|
+
}
|
36
|
+
else return CanResolve_P1 = false;
|
37
|
+
});
|
38
|
+
})
|
39
|
+
|
40
|
+
var CanResolve_P2;
|
41
|
+
var NextToken_P2;
|
42
|
+
|
43
|
+
let Form_P2 = {
|
44
|
+
doc_id: 7414856831926043,
|
45
|
+
lsd: lsd,
|
46
|
+
fb_api_caller_class: "RelayModern",
|
47
|
+
fb_api_req_friendly_name: "useEpsilonNavigateMutation",
|
48
|
+
server_timestamps: true,
|
49
|
+
variables: JSON.stringify({
|
50
|
+
input: {
|
51
|
+
client_mutation_id: 2,
|
52
|
+
actor_id: ctx.userId,
|
53
|
+
step:"CONTACT_POINT_REVIEW",
|
54
|
+
token: JSON.stringify({
|
55
|
+
sensitive_string_value: NextToken_P1
|
56
|
+
})
|
57
|
+
},
|
58
|
+
scale: 1
|
59
|
+
})
|
60
|
+
}
|
61
|
+
|
62
|
+
defaultFuncs.postFormData('https://www.facebook.com/api/graphql/', ctx.jar, Form_P2, {}).then(function(resp) {
|
63
|
+
let checkpoint = resp.data.epsilon_navigate.epsilon_checkpoint;
|
64
|
+
if (checkpoint.id == '__EPSILON_CLIENT__' && checkpoint.__typename == "EpsilonContactPointReview" && checkpoint.screen.contact_points.length >= 1 && checkpoint.screen.contact_points[0].suspicious == "UNSUSPICIOUS") {
|
65
|
+
NextToken_P2 = checkpoint.screen.token;
|
66
|
+
return CanResolve_P2 = true;
|
67
|
+
}
|
68
|
+
else return CanResolve_P2 = false;
|
69
|
+
});
|
70
|
+
|
71
|
+
|
72
|
+
var CanResolve_P3;
|
73
|
+
var NextToken_P3;
|
74
|
+
let Form_P3 ={
|
75
|
+
doc_id: 7414856831926043,
|
76
|
+
lsd: lsd,
|
77
|
+
fb_api_caller_class: "RelayModern",
|
78
|
+
fb_api_req_friendly_name: "useEpsilonNavigateMutation",
|
79
|
+
server_timestamps: true,
|
80
|
+
variables: JSON.stringify({
|
81
|
+
input: {
|
82
|
+
client_mutation_id: 3,
|
83
|
+
actor_id: ctx.userId,
|
84
|
+
step: "CHANGE_PASSWORD",
|
85
|
+
token: JSON.stringify({
|
86
|
+
sensitive_string_value: NextToken_P2
|
87
|
+
})
|
88
|
+
},
|
89
|
+
scale:1
|
90
|
+
})
|
91
|
+
}
|
92
|
+
|
93
|
+
defaultFuncs.postFormData('https://www.facebook.com/api/graphql/', ctx.jar, Form_P3, {}).then(function(resp) {
|
94
|
+
let checkpoint = resp.data.epsilon_navigate.epsilon_checkpoint;
|
95
|
+
if (checkpoint.id == '__EPSILON_CLIENT__' && checkpoint.__typename == "EpsilonLoginDetailsConfirmationScreen" && checkpoint.screen.contact_points.length >= 1) {
|
96
|
+
NextToken_P3 = checkpoint.screen.token;
|
97
|
+
return CanResolve_P3 = true;
|
98
|
+
}
|
99
|
+
else return CanResolve_P3 = false;
|
100
|
+
});
|
101
|
+
|
102
|
+
var CanResolve_P4;
|
103
|
+
var NextToken_P4;
|
104
|
+
let Form_P4 ={
|
105
|
+
doc_id: 7414856831926043,
|
106
|
+
lsd: lsd,
|
107
|
+
fb_api_caller_class: "RelayModern",
|
108
|
+
fb_api_req_friendly_name: "useEpsilonNavigateMutation",
|
109
|
+
server_timestamps: true,
|
110
|
+
variables: JSON.stringify({
|
111
|
+
input: {
|
112
|
+
client_mutation_id: 4,
|
113
|
+
actor_id: ctx.userId,
|
114
|
+
step: "OUTRO",
|
115
|
+
token: JSON.stringify({
|
116
|
+
sensitive_string_value: NextToken_P3
|
117
|
+
})
|
118
|
+
},
|
119
|
+
scale:1
|
120
|
+
})
|
121
|
+
}
|
122
|
+
|
123
|
+
defaultFuncs.postFormData('https://www.facebook.com/api/graphql/', ctx.jar, Form_P4, {}).then(function(resp) {
|
124
|
+
let checkpoint = resp.data.epsilon_navigate.epsilon_checkpoint;
|
125
|
+
if (checkpoint.id == '__EPSILON_CLIENT__' && checkpoint.__typename == "EpsilonOutroScreen" && checkpoint.screen.fallback.uri == 'https://www.facebook.com/') {
|
126
|
+
NextToken_P4 = checkpoint.screen.token;
|
127
|
+
return CanResolve_P4 = true;
|
128
|
+
}
|
129
|
+
else return CanResolve_P4 = false;
|
130
|
+
});
|
131
|
+
|
132
|
+
|
133
|
+
function Find_And_Parse(Data) {
|
134
|
+
const regex = /<script\s+type="application\/json"\s+data-content-len="([0-9]+)"\s+data-sjs\s*(.*?)\s*<\/script>/gs;
|
135
|
+
const matches = Data.matchAll(regex);
|
136
|
+
let Data_resp;
|
137
|
+
for (const match of matches) {
|
138
|
+
if (JSON.parse(JSON.stringify((match[2]))).includes('any_eligible_challenges')) {
|
139
|
+
const Data_ = JSON.parse(match[2].replace('>', ''))
|
140
|
+
Data_resp = findAnyEligibleChallengesAndSiblings(Data_)
|
141
|
+
}
|
142
|
+
|
143
|
+
}
|
144
|
+
|
145
|
+
|
146
|
+
function findAnyEligibleChallengesAndSiblings(data) {
|
147
|
+
const screenData = findScreenData(data);
|
148
|
+
if (!screenData) {
|
149
|
+
return null;
|
150
|
+
}
|
151
|
+
|
152
|
+
const siblings = {};
|
153
|
+
for (const [key, value] of Object.entries(screenData)) {
|
154
|
+
if (key === 'any_eligible_challenges') {
|
155
|
+
siblings[key] = value;
|
156
|
+
}
|
157
|
+
else {
|
158
|
+
siblings[key] = value;
|
159
|
+
}
|
160
|
+
}
|
161
|
+
|
162
|
+
return siblings;
|
163
|
+
}
|
164
|
+
|
165
|
+
function findScreenData(data) {
|
166
|
+
if (Array.isArray(data)) {
|
167
|
+
for (const item of data) {
|
168
|
+
const result = findScreenData(item);
|
169
|
+
if (result) {
|
170
|
+
return result;
|
171
|
+
}
|
172
|
+
}
|
173
|
+
}
|
174
|
+
else if (typeof data === 'object' && data !== null) {
|
175
|
+
if (data.screen) {
|
176
|
+
return data.screen;
|
177
|
+
}
|
178
|
+
for (const value of Object.values(data)) {
|
179
|
+
const result = findScreenData(value);
|
180
|
+
if (result) {
|
181
|
+
return result;
|
182
|
+
}
|
183
|
+
}
|
184
|
+
}
|
185
|
+
return null;
|
186
|
+
}
|
187
|
+
return Data_resp.token || null
|
188
|
+
}
|