fca-project-orion 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +2 -2
- package/Extra/Database/index.js +468 -468
- package/Extra/ExtraAddons.js +81 -81
- package/Extra/ExtraFindUID.js +61 -61
- package/Extra/ExtraGetThread.js +339 -339
- package/Extra/ExtraScreenShot.js +430 -430
- package/Extra/ExtraUptimeRobot.js +37 -37
- package/Extra/Html/Classic/script.js +118 -118
- package/Extra/Html/Classic/style.css +7 -7
- package/Extra/Security/Base/Step_1.js +5 -5
- package/Extra/Security/Base/Step_2.js +22 -22
- package/Extra/Security/Base/Step_3.js +22 -22
- package/Extra/Security/Base/index.js +172 -172
- package/Extra/Security/Index.js +4 -4
- package/Extra/Security/Step_1.js +5 -5
- package/Extra/Security/Step_2.js +22 -22
- package/Extra/Security/Step_3.js +22 -22
- package/Extra/Src/Change_Environment.js +23 -23
- package/Extra/Src/Check_Update.js +65 -65
- package/Extra/Src/History.js +114 -114
- package/Extra/Src/Instant_Update.js +64 -64
- package/Extra/Src/Last-Run.js +64 -64
- package/Extra/Src/Premium.js +80 -80
- package/Extra/Src/Release_Memory.js +40 -40
- package/Extra/Src/Websocket.js +212 -212
- package/Extra/Src/uuid.js +137 -137
- package/Func/AcceptAgreement.js +31 -31
- package/Func/ClearCache.js +64 -64
- package/Func/ReportV1.js +54 -54
- package/LICENSE +21 -21
- package/Language/index.json +216 -216
- package/Main.js +1215 -1215
- package/README.md +138 -138
- package/SECURITY.md +18 -18
- package/broadcast.js +39 -39
- package/index.js +385 -385
- package/logger.js +66 -66
- package/package.json +93 -93
- package/src/Dev_Horizon_Data.js +124 -124
- package/src/Premium.js +24 -24
- package/src/Screenshot.js +82 -82
- package/src/addExternalModule.js +16 -16
- package/src/addUserToGroup.js +79 -79
- package/src/changeAdminStatus.js +79 -79
- package/src/changeArchivedStatus.js +41 -41
- package/src/changeAvt.js +84 -84
- package/src/changeBio.js +65 -65
- package/src/changeBlockedStatus.js +36 -36
- package/src/changeGroupImage.js +106 -106
- package/src/changeNickname.js +45 -45
- package/src/changeThreadColor.js +62 -62
- package/src/changeThreadEmoji.js +42 -42
- package/src/createNewGroup.js +70 -70
- package/src/createPoll.js +60 -60
- package/src/deleteMessage.js +45 -45
- package/src/deleteThread.js +43 -43
- package/src/forwardAttachment.js +48 -48
- package/src/getAccessToken.js +27 -27
- package/src/getCurrentUserID.js +7 -7
- package/src/getEmojiUrl.js +27 -27
- package/src/getFriendsList.js +73 -73
- package/src/getMessage.js +79 -79
- package/src/getThreadHistory.js +537 -537
- package/src/getThreadInfo.js +424 -424
- package/src/getThreadList.js +213 -213
- package/src/getThreadMain.js +219 -219
- package/src/getThreadPictures.js +59 -59
- package/src/getUID.js +58 -58
- package/src/getUserID.js +62 -62
- package/src/getUserInfo.js +113 -113
- package/src/getUserInfoMain.js +64 -64
- package/src/getUserInfoV2.js +31 -31
- package/src/getUserInfoV3.js +62 -62
- package/src/getUserInfoV4.js +54 -54
- package/src/getUserInfoV5.js +60 -60
- package/src/handleFriendRequest.js +46 -46
- package/src/handleMessageRequest.js +49 -49
- package/src/httpGet.js +49 -49
- package/src/httpPost.js +48 -48
- package/src/httpPostFormData.js +40 -40
- package/src/listenMqtt.js +786 -786
- package/src/logout.js +68 -68
- package/src/markAsDelivered.js +48 -48
- package/src/markAsRead.js +70 -70
- package/src/markAsReadAll.js +42 -42
- package/src/markAsSeen.js +51 -51
- package/src/muteThread.js +47 -47
- package/src/removeUserFromGroup.js +49 -49
- package/src/resolvePhotoUrl.js +37 -37
- package/src/searchForThread.js +43 -43
- package/src/sendMessage.js +378 -378
- package/src/sendTypingIndicator.js +80 -80
- package/src/setMessageReaction.js +109 -109
- package/src/setPostReaction.js +101 -101
- package/src/setTitle.js +74 -74
- package/src/threadColors.js +38 -38
- package/src/unfriend.js +43 -43
- package/src/unsendMessage.js +40 -40
- package/test/Database_Test.js +3 -3
- package/test/Db2.js +529 -529
- package/test/data/shareAttach.js +146 -146
- package/test/data/test.txt +7 -7
- package/test/example-config.json +18 -18
- package/test/memoryleak.js +18 -18
- package/test/test-page.js +140 -140
- package/test/test.js +385 -385
- package/test/testv2.js +17 -17
- package/utils.js +1682 -1682
@@ -1,173 +1,173 @@
|
|
1
|
-
'use strict';
|
2
|
-
|
3
|
-
const ArrPassWord = ["CFGIZMHQGX", "URHQBLBLDR", "UBBWNJHLQS", "VOTNXBXQII", "HNGMQVUAHX", "IAFYAYRZDY", "WDJLNZSHGO", "SPMYPNPIDK", "BHDWKZCQJW", "YKHYNQHGSP", "XJWRXNOVIO", "SBPIBKTTYZ", "WOIJIPGAJH", "ZMBZURDFLW", "MVLVQWADDO", "CYJTGTGZON", "PRYZDDAWFO", "DUEOZNSCFJ", "KJPYPBSKMG", "EWFJVYCMMX", "CEDXZXJOGL", "KHPGXTFVOK", "PLQXZDLWJB", "SNWGNETCDG", "LILQXIGAZA", "GYGBDGBBYM", "DCRQKCOQLI", "RQJRRHVVKP", "JPCXRJGGNF", "JIEVLOVWIV", "PDGOFRVGEB", "QIIDHSRVKV", "ZECHPLBKFS", "EXQWXMACRP", "ZCCGCBWORF", "GJFOBWWMOS", "QCFNCFNIKZ", "ZAZZRZPAVC", "FQTFSFTNAP", "MVSSFKTHFA", "JFQGSMBYYQ", "JQINYGVFYJ", "ZBSPCBAQHC", "NQOTZDJARE", "CPWSWUEYQQ", "JVPWHYBXIB", "CXNXMSBIGT", "IFAFLNVDJK", "JOSSVDYERS", "YLWCRIRTUV", "CCKFYYGPAK", "YPELTOONQB", "FRMSZGHOEE", "BHRUUWMTDV", "OXKRPPNJHM", "FTPZCTSIFX", "NEDXDNHXOT", "VWREYWTQAD", "WIJFGFHOXG", "DOYYUZDOAA", "PMATAFECMX", "DKCIKASCUI", "GUESGUXXIM", "ZKHVCWXFYH", "BSTNRFIIQU", "TYIUNFDOYP", "NOUONMIJZM", "ECQTMQOJZI", "JVZQUABCGO", "DQQOTHHRZR", "HXDYLEMAGD", "RLALZZNBWU", "EEEEDUEGMW", "ZARNWMSQKV", "UDHXZOHBVX", "ACDYVCOSTK", "FVMTMIILWE", "FEBSFBHHWH", "WNSMQUVOLT", "BNROOXMJLS", "UMXDBEEPIA", "QTGHEEUVAD", "DDQPCWXGHB", "ZHGCFOXPRK", "XKDGASBGLL", "SCUYYMILRF", "PNYLDRGPVZ", "VCCGJDBHON", "SNLOVMETFA", "CTVECWZBQI", "GLFNSKCHNN", "XKQBVYVLEE", "MFAOPFLZCS", "MJWAMMAXJD", "RPILJBDWUS", "AOLFBKLGCU", "GGYJYVCCYA", "ZTPGNAVPNS", "COXANROIUY", "AFKUQIMSSG", "TKXEGTRCIC", "WNGJRYTLAP", "LQNJTKVLCY", "HYRAUPHHNZ", "RKIETHATFD", "OMZYVCOSGI", "MJYYMQTBSA", "WPUUEKECLN", "MVAULGIOUA", "PXRNLSXAUN", "LDGFRIHHWZ", "OEXMJWIXMJ", "AVXSOMKYOR", "RKZMSDOKSX", "JNSYBTWQLB", "BKUFMDRUFW", "MHVZBXUELL", "SKGDCUSQWS", "PQCFWLJVBM", "RKVVDZQBRA", "MUPJVJTVEQ", "SJMHPLXAFC", "KNOQKDQXIL", "AMFAXAEIPT", "ZFCUWAAZFP", "ZIQMCMMWIF", "XLHWNOVDOK", "VLFQKLQGZE", "TEINUSDMEL", "BCDTYHSISA", "UNRXBBXAAS", "XJUWFZJKRJ", "GCUONLWFOT", "QNSUCRTVNW", "KRJBLIAGUX", "DBJVXYWCGS", "SNNMDWCXJY", "YNVFGDMLSU", "UVMVELXUSN", "WXICKSVIFP", "PNTSKIKVWB", "VXSQZPCPIJ", "UFARZLYMPL", "HDJAXAMDTW", "XSKZWCCSFF", "FZTUBNATNF", "RGFQORXORS", "WXWANTTYAM", "YZJTBIABCL", "DIAZHANKRV", "NBZXQAFXPU", "FILEDTBMGX", "DSOOFDJJDN", "OSKCMCGYDU", "HIRQXIVRHV", "WWGQUGQBQA", "EEKZGVIFMM", "QNIFPPCNOO", "UWOUKFLUZN", "CACEOOAKBW", "JTFMLVAOYO", "NNEJZKEGXU", "UQJBLOADPQ", "MYDGDBVGMX", "WXJYRHIURP", "PIFXBMHDJZ", "RXFSKNCESP", "RAVEGGVBTN", "BUFPMINULH", "UGTTELFBTP", "HPQBJIKPFA", "XQRHQBZXOO", "JGNKEIVSWA", "OLGSAOTGKH", "XGIGZTVSOX", "LDFXHBBGDH", "VLGKMITXPI", "VJTWAUDYSI", "HUXKHXIUWI", "VBPAXHYKQU", "PUYJGLTPWQ", "TVCRNZTMCC", "MAVXHNPQEQ", "CNNITMACFT", "VGUXXTVPFL", "HLKJGIGBUB", "SGODCXPKWB", "DXPBEWXXGB", "YJDMSEAKIJ", "WGNQKSMBZT", "TLOGVVISEH", "CFJSCEXSOS", "QEXVFGMFVE", "YHINIHPYYV", "WMDDMIPBIK", "VVJCBZQKCP", "ROIWFCRYCA", "FJBKKTFJCT", "FUOGHKOBIO", "EPXSSSKBRA", "SWRAJXSRMS", "ZBRVIPMZVU", "FKLGPWILUC", "OXXWLYBYMP", "JNQMRVSQCZ", "CMSKEJPHHC", "XYXFXCEOTJ", "QOPMOPQEZT", "ASEYNVFGEN", "NJHGSVOVBM", "XZFCIPROKT", "MKVSDUFTGN", "IQLCNTVOVG", "VKJAMVYVYN", "CYEBFNRYFU", "OMTRBWKKVL", "QMSICNUIAF", "OJHCEFVWIV", "JGWPIMKBYX", "WFOOBZQBPZ", "BQSJPCSJLF", "SYXOPGYXEG", "OUGNSNTOFU", "EJRGMQAKHM", "FABCVEWZCB", "LLKJCAEDKN", "PCEKNTZPYU", "NUDUKXLHLZ", "NQBGNVVNLU", "SSUQMGLMCQ", "VZVJWBRPCX", "RMYMLJXYJX", "DPDDLXNTZV", "PMMGUVDIDT", "HARGMFMLTP", "PMNKGQWCKQ", "SMOPPNAMGD", "VINTZUURIG", "RCHEYKWJQR", "TJGSQPOYRD", "BRJZRRIXSY", "QFOXILESJF", "FKKPNVKWHU", "UXWIXFEXVG", "EIFPFYXYZW", "ERYDXAFBUN", "KHNSGHVCAP", "JYBMBYZGGJ", "NFIVEFCNBU", "UXSSSMDZWR", "ASXUKHNKHF", "BQHMMNBRPP", "SBHWFAYBOB", "DWYKHRLRRE", "ANSMOLVMSQ", "TSIAMRHGBU", "MJTLJVEMAV", "TMBXVKZNXF", "ZTPSMEQXDT", "EURKVAKVHB", "CYRDCIXXOE", "HYAGIWHDKE", "BKTAWJKYTB", "MQTQUIKPXB", "SWBCOMTCNO", "ZANVUXVOWB", "MPRPAZQKSR", "DDWVPKHTHV", "DQICGSYBWU", "DGKGTCLRHY", "NAWGNLTVGB", "UADZLOLOYK", "WLWLKPHYGH", "MHRMMQEUNU", "IVUXUYQIPD", "TMRAYTTQLX", "EAMHTODTTZ", "OGKLSMGCJW", "IFQANPZKNE", "ZPKPAQQTNL", "PAADEVUTSC", "RCKEASUYHO", "SXJEJAEZNC", "VJGHGAUJWG", "FYNJPHPNOZ", "SMSMDDFVHO", "MCDHLMFFOP", "AYHVCRWYZP", "HOZEZNWHNU", "VQJEMXHUHF", "CDXWRCGJED", "LYOGHLAWYT", "IZEPERDAWV", "WJQDLOPUUB", "LDWODIKDPU", "UFNTJMDLAN", "PDOIBHXPYL", "JCRMZJXIWC", "YPJZVEDQSC", "OTBTUNDBGA", "ISCJHDMTZF", "JPAPMSUTUH", "LFZXXWZWXT", "WVCBEBEJEB", "UFLHLZBISS", "IKBSBIFWPG", "RPKDDSEGAW", "ZAZOBUZMXK", "WZBMFUXPYB", "AUAGUHJUJD", "RPQQDOQDEF", "EOLYVDCLWH", "JXNMENVXNY", "UMVYWUNDKM", "AHUZCOYCTT", "DLETNOFSYN", "GTCEXAVNHX", "UOBRVRANYD", "HZYFNBDQUJ", "MCNDOLANBY", "QYCZTGRALB", "CJXNINIIGL", "CLBIGGNUQN", "SOKJIBLMTK", "YXDWXYJSTR", "FMMGIEHNHD", "UWGCDTLBKM", "ARTHFPEFZQ", "SAWFUZLQJP", "EGLFDIVYIU", "EKVLNAIDKT", "DJQJGBJHKL", "WZJGJIQFWO", "BUGLBAVSPQ", "OYEPZEQDVX", "YKNGYEVUZI", "WUFCLAUJKL", "KNKVFDDLMP", "ZDPIMXWXIO", "GOAQXYIPNW", "UAPRZJEXUR", "EFLMHDGNAR", "RDVHISBBEN", "UQOUCQJCTO", "ZMIMFTZMAW", "CDSLHGCGZT", "JKXOBJNJCU", "AHDZDQEWBQ", "NAINGNGJFT", "HUYMUVBOQD", "EFRXGMHYQK", "QJMYXTGHQC", "GXNICXAWWR", "JSGQRVOYJB", "VZZDFESYCH", "YJRWRKKWYE", "GBGHQHENAD", "XAXXEWNIOS", "JQNJDLEYPE", "BGQDGMSMYD", "AIPXKLSHVS", "KRTLFKSFWV", "RDLSZNBEDD", "GUIGYYAAQM", "CYQQUZBTCG", "UDPNDXDLWC", "YNHCZGDBVZ", "TZSSOIINJQ", "BRFLJWQPSE", "HPIWYMFFJS", "ULXEECKPOM", "OJUYWKQIIM", "ZSGTNKLUCM", "HMTJIFQVZM", "RSDREWNZOF", "GIQSZFKCSK", "HLNZIQYPPT", "ZDPAXKTTXC", "FVGXMSGVNO", "NIGDVPWJIP", "GWYAQEOLNA", "ZQAUPQNFNP", "MQNRQSLREU", "PHQPEYPYKQ", "MZJZLLJCCZ", "YWRJZCHRPT", "CFQKNFPJEZ", "CTCGXXEJEV", "CGYCWHIUXE", "NLHBURNGNR", "IFDRRQJCQV", "HQXHAJCLWT", "HHCYGDIEUJ", "GBIMSAPTTF", "YJXSYERGMB", "KHSQYRYRQG", "WDSPYMSOXD", "BWAMGSKJCR", "MXBKMKPWTU", "NBUBEEGABJ", "YBSFNKNMLW", "XGOHDVHEOZ", "CDKSXFQHWA", "BBVYAVSPPT", "OOLIDVQISR", "PSGRVQOMUZ", "BRHGNRYPIT", "ZWBXFDBRBZ", "TMHQSMVSML", "BLQNEGVQLO", "HCDPEMOTUO", "DAPRNJRHMZ", "YOGTHZWJFV", "CPXGPJLLUW", "KLAPEGIRMY", "LRJQUKSTHJ", "MHKNGWOGDW", "AAUPGONIEO", "SKMMPAWEMY", "MOELIFKSXD", "YUKGRKJMRK", "HHNPHSVILP", "KKSXNOKRXP", "VMUNVYWQMG", "XRXRFHZVFP", "DJEFSAFQMI", "KKIQIVFUQG", "WKDIKKYHAB", "IJHZNEHCIE", "EWBGOWNRYG", "TIIWDVPZBU", "QKOUASDZTU", "GJEIANQIOU", "ENTKGOTBLW", "OSWFALTNPX", "UHDUUNEAPO", "VNEGBGNDEI", "PAFMXSSVXR", "RAKTUTCRTM", "GSBJNAKOHU", "SHFLQDHAUJ", "MFDSGZITOQ", "COTXDRROHH", "GQCPQNSFNL", "TLQEMJNJCH", "DVRRSVRFBX", "VKOCASJOFW", "IGYFXVJGZJ", "GCEVHJDLLC", "PKYTXOFXQQ", "SKONOHUHTS", "MPGSAFTXWF", "WWUDTDDHME", "BSXCHCSAQP", "DGZEMYGEQN", "GICJTXPLQP", "BKALJKLJYN", "OHZOXMAXHZ", "TUQOIKEIBL", "TKVKNMWMRR", "YAPQGHBKKD", "ZIPWWXQXKD", "EZWRQRAHOC", "TVZVCMYBCW", "ENWBPETFIC", "AJVEFXUYKX", "XIERQNRKHH", "WBKHUUXHQL", "RXBRNYIIGZ", "XQJTTJLLUU", "MHCHYKYRYA", "EUDLQHHIYW", "EKIFNUEFVI", "RGZOSNSLIQ", "EIZFOKGQKU", "WSXRTPOAWT", "OGRASRXCSE", "LJMYIRKLLW", "VDGYNTUUKD", "PZXFUEBOCQ", "EWUIECAYWQ", "ESFJAPKHCN", "FHFPUQBABW", "RFSPNQDMFM", "EJZADADQYH", "MURBJWDFNV", "AXDHNFKNND", "VZOCSYDRNF", "LPPVMBFNQU", "SQBKBVQWRU", "ZLNJWRWLLW", "CQZMOTQZSS", "ATNJNZXFTD", "QGOWINHJPF", "YGRZKBJXDX", "AWGGAPTQRC", "WIKDLMWCMC", "GDUKRYPMQM", "HHIHEVYFEA", "NQJEUGTGRQ"];
|
4
|
-
const utils = require('../../../utils');
|
5
|
-
const logger = require('../../../logger');
|
6
|
-
const Step_3 = require('./Step_3');
|
7
|
-
const Database = require("../../Database");
|
8
|
-
const Already_Action = { First: 0, Encode: { Status: false, Data: Array }, Decode: { Status: false, Data: Array } };
|
9
|
-
|
10
|
-
/**
|
11
|
-
* It creates a random string of a given length
|
12
|
-
* @param length - The length of the string to be generated.
|
13
|
-
* @returns A string of random characters.
|
14
|
-
*/
|
15
|
-
|
16
|
-
function CreateFakeType2(length) {
|
17
|
-
var result = '';
|
18
|
-
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/+0123456789';
|
19
|
-
var charactersLength = characters.length;
|
20
|
-
for ( var i = 0; i < length; i++ ) result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
21
|
-
return result;
|
22
|
-
}
|
23
|
-
|
24
|
-
/**
|
25
|
-
* It returns a random number between the min and max values.
|
26
|
-
* @param min - The minimum number that can be generated.
|
27
|
-
* @param max - The maximum number that can be generated.
|
28
|
-
* @returns A random number between the min and max values.
|
29
|
-
*/
|
30
|
-
|
31
|
-
function Between(min, max) {
|
32
|
-
return parseInt(Math.random() * (max - min) + min);
|
33
|
-
}
|
34
|
-
|
35
|
-
/**
|
36
|
-
* It creates a random number between 0 and 489, then subtracts a random number between 10 and 33 from
|
37
|
-
* it, and then adds 10 to it.
|
38
|
-
*
|
39
|
-
* So, the result is a number between -23 and 489.
|
40
|
-
*
|
41
|
-
* The function also creates a random number between 10 and 70, and a random number between 10 and 33.
|
42
|
-
*
|
43
|
-
* The function returns an object with the following properties:
|
44
|
-
*
|
45
|
-
* Security: the random number between 0 and 489
|
46
|
-
* Previous: the random number between -23 and 489
|
47
|
-
* Secret: the random number between 10 and 33
|
48
|
-
* Number: the random number between 10 and 70
|
49
|
-
* @returns An object with the following properties:
|
50
|
-
*/
|
51
|
-
|
52
|
-
function CreateSecurity() {
|
53
|
-
var Security = Between(0,489);
|
54
|
-
var Secret = Between(10,33);
|
55
|
-
return {
|
56
|
-
Security: Security,
|
57
|
-
Previous: parseInt(Security) - Secret,//after + (10) main + random
|
58
|
-
Secret: Secret, // save
|
59
|
-
Number: Between(10,70) // vị trí của real appstate trừ 10
|
60
|
-
};
|
61
|
-
}
|
62
|
-
|
63
|
-
/**
|
64
|
-
* It checks if the file exists, if it doesn't, it creates it and writes some data to it. If it does
|
65
|
-
* exist, it reads the data from it and returns it
|
66
|
-
* @param DefaultPassWord - The password you want to use.
|
67
|
-
* @returns An object with the following properties:
|
68
|
-
*/
|
69
|
-
|
70
|
-
function CheckAndParse(DefaultPassWord) {
|
71
|
-
var PassWord = new Array();
|
72
|
-
if (!DefaultPassWord) return logger.Warning("DefaultPassWord Is Requirements",function() { process.exit(0); });
|
73
|
-
try {
|
74
|
-
if (!Database().has('Security')) {
|
75
|
-
let Obj = CreateSecurity();
|
76
|
-
Database().set('Security',JSON.stringify(Obj));
|
77
|
-
for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(Obj.Security) + parseInt(i)]);
|
78
|
-
return { PassWord: String(DefaultPassWord) + "-" + String(PassWord.join('-')), Slot: Obj.Number ,Security: Obj.Security, Previous: Obj.Previous, Secret: Obj.Secret };
|
79
|
-
}
|
80
|
-
else {
|
81
|
-
var Data = JSON.parse(Database().get('Security'));
|
82
|
-
if (utils.getType(Data) == "Object") {
|
83
|
-
if (!Data.Security || !Data.Previous || !Data.Secret || !Data.Number) {
|
84
|
-
logger.Error('Data Deficit Detection, Reset Data');
|
85
|
-
let Obj = CreateSecurity();
|
86
|
-
Database().set('Security',JSON.stringify(Obj));
|
87
|
-
for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(Obj.Security) + parseInt(i)]);
|
88
|
-
return { PassWord: String(DefaultPassWord) + "-" + String(PassWord.join('-')), Slot: Obj.Number ,Security: Obj.Security, Previous: Obj.Previous, Secret: Obj.Secret };
|
89
|
-
}
|
90
|
-
else {
|
91
|
-
for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(Data.Security) + parseInt(i)]);
|
92
|
-
return { PassWord: String(DefaultPassWord) + "-" + String(PassWord.join('-')), Slot: Data.Number ,Security: Data.Security, Previous: Data.Previous, Secret: Data.Secret };
|
93
|
-
}
|
94
|
-
}
|
95
|
-
}
|
96
|
-
}
|
97
|
-
catch (e) {
|
98
|
-
logger.Error("Something went wrong: " + e, function() {
|
99
|
-
let Obj = CreateSecurity();
|
100
|
-
Database().set('Security',JSON.stringify(Obj));
|
101
|
-
for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(Obj.Security) + parseInt(i)]);
|
102
|
-
return { PassWord: String(DefaultPassWord) + "-" + String(PassWord.join('-')), Slot: Obj.Number ,Security: Obj.Security, Previous: Obj.Previous, Secret: Obj.Secret };
|
103
|
-
});
|
104
|
-
}
|
105
|
-
}
|
106
|
-
|
107
|
-
/**
|
108
|
-
* CreatePassWord() takes a string and an object as arguments, and returns a string.
|
109
|
-
* @param DefaultPassWord - The default password that you want to use.
|
110
|
-
* @param ParseObj - This is the object that is being parsed.
|
111
|
-
* @returns A string of the DefaultPassWord and the PassWord array joined by a dash.
|
112
|
-
*/
|
113
|
-
|
114
|
-
function CreatePassWord(DefaultPassWord,ParseObj) {
|
115
|
-
var PassWord = new Array();
|
116
|
-
for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(ParseObj.Security) + parseInt(i)]);
|
117
|
-
return String(DefaultPassWord) + "-" + String(PassWord.join('-'));
|
118
|
-
}
|
119
|
-
|
120
|
-
/* Encrypting the AppState with the PassWord. */
|
121
|
-
|
122
|
-
var Encrypt = (AppState,PassWord) => {
|
123
|
-
return require('./Step_3').encryptState(require('./Step_2').Encrypt(require('./Step_1').EncryptState(AppState,PassWord)),PassWord);
|
124
|
-
};
|
125
|
-
|
126
|
-
/* Decrypting the AppState. */
|
127
|
-
|
128
|
-
var Decrypt = (AppState,Slot,PassWord) => {
|
129
|
-
return require('./Step_1').DecryptState(require('./Step_2').Decrypt(require('./Step_3').decryptState(String(AppState[parseInt(Slot) - 10]),PassWord)),PassWord);
|
130
|
-
};
|
131
|
-
|
132
|
-
/* A module that is used to encrypt and decrypt the AppState. */
|
133
|
-
|
134
|
-
module.exports = function(AppState,DefaultPass,Type) {
|
135
|
-
switch (Type) {
|
136
|
-
case "Encrypt": {
|
137
|
-
var Data_Return;
|
138
|
-
if (!Already_Action.Encode.Status) {
|
139
|
-
if (Already_Action.First == 0) Already_Action.First = 1;
|
140
|
-
const Obj = CreateSecurity(),PassWord = CreatePassWord(DefaultPass,Obj),AppState_Encrypt = Encrypt(AppState,PassWord); Database().set('Security',JSON.stringify(Obj,null,2));
|
141
|
-
Data_Return = Array.from({length: 70}, (_,i) => {
|
142
|
-
if (i == (parseInt(Obj.Number) - 10)) {
|
143
|
-
return AppState_Encrypt;
|
144
|
-
}
|
145
|
-
else return Step_3.encryptState(CreateFakeType2(AppState_Encrypt.length),PassWord).slice(0,AppState_Encrypt.length);
|
146
|
-
});
|
147
|
-
Already_Action.Encode.Status = true;
|
148
|
-
Already_Action.Encode.Data = Data_Return;
|
149
|
-
}
|
150
|
-
else {
|
151
|
-
Data_Return = Already_Action.Encode.Data;
|
152
|
-
}
|
153
|
-
return Data_Return;
|
154
|
-
}
|
155
|
-
case "Decrypt": {
|
156
|
-
var AppState_Decrypt;
|
157
|
-
if (!Already_Action.Decode.Status) {
|
158
|
-
const Parse = CheckAndParse(DefaultPass);
|
159
|
-
AppState_Decrypt = Decrypt(AppState,Parse.Slot,Parse.PassWord);
|
160
|
-
if (Already_Action.First == 0) {
|
161
|
-
Already_Action.Encode.Status = true;
|
162
|
-
Already_Action.Encode.Data = AppState;
|
163
|
-
}
|
164
|
-
Already_Action.Decode.Status = true;
|
165
|
-
Already_Action.Decode.Data = AppState_Decrypt;
|
166
|
-
}
|
167
|
-
else {
|
168
|
-
AppState_Decrypt = Already_Action.Decode.Data;
|
169
|
-
}
|
170
|
-
return AppState_Decrypt;
|
171
|
-
}
|
172
|
-
}
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const ArrPassWord = ["CFGIZMHQGX", "URHQBLBLDR", "UBBWNJHLQS", "VOTNXBXQII", "HNGMQVUAHX", "IAFYAYRZDY", "WDJLNZSHGO", "SPMYPNPIDK", "BHDWKZCQJW", "YKHYNQHGSP", "XJWRXNOVIO", "SBPIBKTTYZ", "WOIJIPGAJH", "ZMBZURDFLW", "MVLVQWADDO", "CYJTGTGZON", "PRYZDDAWFO", "DUEOZNSCFJ", "KJPYPBSKMG", "EWFJVYCMMX", "CEDXZXJOGL", "KHPGXTFVOK", "PLQXZDLWJB", "SNWGNETCDG", "LILQXIGAZA", "GYGBDGBBYM", "DCRQKCOQLI", "RQJRRHVVKP", "JPCXRJGGNF", "JIEVLOVWIV", "PDGOFRVGEB", "QIIDHSRVKV", "ZECHPLBKFS", "EXQWXMACRP", "ZCCGCBWORF", "GJFOBWWMOS", "QCFNCFNIKZ", "ZAZZRZPAVC", "FQTFSFTNAP", "MVSSFKTHFA", "JFQGSMBYYQ", "JQINYGVFYJ", "ZBSPCBAQHC", "NQOTZDJARE", "CPWSWUEYQQ", "JVPWHYBXIB", "CXNXMSBIGT", "IFAFLNVDJK", "JOSSVDYERS", "YLWCRIRTUV", "CCKFYYGPAK", "YPELTOONQB", "FRMSZGHOEE", "BHRUUWMTDV", "OXKRPPNJHM", "FTPZCTSIFX", "NEDXDNHXOT", "VWREYWTQAD", "WIJFGFHOXG", "DOYYUZDOAA", "PMATAFECMX", "DKCIKASCUI", "GUESGUXXIM", "ZKHVCWXFYH", "BSTNRFIIQU", "TYIUNFDOYP", "NOUONMIJZM", "ECQTMQOJZI", "JVZQUABCGO", "DQQOTHHRZR", "HXDYLEMAGD", "RLALZZNBWU", "EEEEDUEGMW", "ZARNWMSQKV", "UDHXZOHBVX", "ACDYVCOSTK", "FVMTMIILWE", "FEBSFBHHWH", "WNSMQUVOLT", "BNROOXMJLS", "UMXDBEEPIA", "QTGHEEUVAD", "DDQPCWXGHB", "ZHGCFOXPRK", "XKDGASBGLL", "SCUYYMILRF", "PNYLDRGPVZ", "VCCGJDBHON", "SNLOVMETFA", "CTVECWZBQI", "GLFNSKCHNN", "XKQBVYVLEE", "MFAOPFLZCS", "MJWAMMAXJD", "RPILJBDWUS", "AOLFBKLGCU", "GGYJYVCCYA", "ZTPGNAVPNS", "COXANROIUY", "AFKUQIMSSG", "TKXEGTRCIC", "WNGJRYTLAP", "LQNJTKVLCY", "HYRAUPHHNZ", "RKIETHATFD", "OMZYVCOSGI", "MJYYMQTBSA", "WPUUEKECLN", "MVAULGIOUA", "PXRNLSXAUN", "LDGFRIHHWZ", "OEXMJWIXMJ", "AVXSOMKYOR", "RKZMSDOKSX", "JNSYBTWQLB", "BKUFMDRUFW", "MHVZBXUELL", "SKGDCUSQWS", "PQCFWLJVBM", "RKVVDZQBRA", "MUPJVJTVEQ", "SJMHPLXAFC", "KNOQKDQXIL", "AMFAXAEIPT", "ZFCUWAAZFP", "ZIQMCMMWIF", "XLHWNOVDOK", "VLFQKLQGZE", "TEINUSDMEL", "BCDTYHSISA", "UNRXBBXAAS", "XJUWFZJKRJ", "GCUONLWFOT", "QNSUCRTVNW", "KRJBLIAGUX", "DBJVXYWCGS", "SNNMDWCXJY", "YNVFGDMLSU", "UVMVELXUSN", "WXICKSVIFP", "PNTSKIKVWB", "VXSQZPCPIJ", "UFARZLYMPL", "HDJAXAMDTW", "XSKZWCCSFF", "FZTUBNATNF", "RGFQORXORS", "WXWANTTYAM", "YZJTBIABCL", "DIAZHANKRV", "NBZXQAFXPU", "FILEDTBMGX", "DSOOFDJJDN", "OSKCMCGYDU", "HIRQXIVRHV", "WWGQUGQBQA", "EEKZGVIFMM", "QNIFPPCNOO", "UWOUKFLUZN", "CACEOOAKBW", "JTFMLVAOYO", "NNEJZKEGXU", "UQJBLOADPQ", "MYDGDBVGMX", "WXJYRHIURP", "PIFXBMHDJZ", "RXFSKNCESP", "RAVEGGVBTN", "BUFPMINULH", "UGTTELFBTP", "HPQBJIKPFA", "XQRHQBZXOO", "JGNKEIVSWA", "OLGSAOTGKH", "XGIGZTVSOX", "LDFXHBBGDH", "VLGKMITXPI", "VJTWAUDYSI", "HUXKHXIUWI", "VBPAXHYKQU", "PUYJGLTPWQ", "TVCRNZTMCC", "MAVXHNPQEQ", "CNNITMACFT", "VGUXXTVPFL", "HLKJGIGBUB", "SGODCXPKWB", "DXPBEWXXGB", "YJDMSEAKIJ", "WGNQKSMBZT", "TLOGVVISEH", "CFJSCEXSOS", "QEXVFGMFVE", "YHINIHPYYV", "WMDDMIPBIK", "VVJCBZQKCP", "ROIWFCRYCA", "FJBKKTFJCT", "FUOGHKOBIO", "EPXSSSKBRA", "SWRAJXSRMS", "ZBRVIPMZVU", "FKLGPWILUC", "OXXWLYBYMP", "JNQMRVSQCZ", "CMSKEJPHHC", "XYXFXCEOTJ", "QOPMOPQEZT", "ASEYNVFGEN", "NJHGSVOVBM", "XZFCIPROKT", "MKVSDUFTGN", "IQLCNTVOVG", "VKJAMVYVYN", "CYEBFNRYFU", "OMTRBWKKVL", "QMSICNUIAF", "OJHCEFVWIV", "JGWPIMKBYX", "WFOOBZQBPZ", "BQSJPCSJLF", "SYXOPGYXEG", "OUGNSNTOFU", "EJRGMQAKHM", "FABCVEWZCB", "LLKJCAEDKN", "PCEKNTZPYU", "NUDUKXLHLZ", "NQBGNVVNLU", "SSUQMGLMCQ", "VZVJWBRPCX", "RMYMLJXYJX", "DPDDLXNTZV", "PMMGUVDIDT", "HARGMFMLTP", "PMNKGQWCKQ", "SMOPPNAMGD", "VINTZUURIG", "RCHEYKWJQR", "TJGSQPOYRD", "BRJZRRIXSY", "QFOXILESJF", "FKKPNVKWHU", "UXWIXFEXVG", "EIFPFYXYZW", "ERYDXAFBUN", "KHNSGHVCAP", "JYBMBYZGGJ", "NFIVEFCNBU", "UXSSSMDZWR", "ASXUKHNKHF", "BQHMMNBRPP", "SBHWFAYBOB", "DWYKHRLRRE", "ANSMOLVMSQ", "TSIAMRHGBU", "MJTLJVEMAV", "TMBXVKZNXF", "ZTPSMEQXDT", "EURKVAKVHB", "CYRDCIXXOE", "HYAGIWHDKE", "BKTAWJKYTB", "MQTQUIKPXB", "SWBCOMTCNO", "ZANVUXVOWB", "MPRPAZQKSR", "DDWVPKHTHV", "DQICGSYBWU", "DGKGTCLRHY", "NAWGNLTVGB", "UADZLOLOYK", "WLWLKPHYGH", "MHRMMQEUNU", "IVUXUYQIPD", "TMRAYTTQLX", "EAMHTODTTZ", "OGKLSMGCJW", "IFQANPZKNE", "ZPKPAQQTNL", "PAADEVUTSC", "RCKEASUYHO", "SXJEJAEZNC", "VJGHGAUJWG", "FYNJPHPNOZ", "SMSMDDFVHO", "MCDHLMFFOP", "AYHVCRWYZP", "HOZEZNWHNU", "VQJEMXHUHF", "CDXWRCGJED", "LYOGHLAWYT", "IZEPERDAWV", "WJQDLOPUUB", "LDWODIKDPU", "UFNTJMDLAN", "PDOIBHXPYL", "JCRMZJXIWC", "YPJZVEDQSC", "OTBTUNDBGA", "ISCJHDMTZF", "JPAPMSUTUH", "LFZXXWZWXT", "WVCBEBEJEB", "UFLHLZBISS", "IKBSBIFWPG", "RPKDDSEGAW", "ZAZOBUZMXK", "WZBMFUXPYB", "AUAGUHJUJD", "RPQQDOQDEF", "EOLYVDCLWH", "JXNMENVXNY", "UMVYWUNDKM", "AHUZCOYCTT", "DLETNOFSYN", "GTCEXAVNHX", "UOBRVRANYD", "HZYFNBDQUJ", "MCNDOLANBY", "QYCZTGRALB", "CJXNINIIGL", "CLBIGGNUQN", "SOKJIBLMTK", "YXDWXYJSTR", "FMMGIEHNHD", "UWGCDTLBKM", "ARTHFPEFZQ", "SAWFUZLQJP", "EGLFDIVYIU", "EKVLNAIDKT", "DJQJGBJHKL", "WZJGJIQFWO", "BUGLBAVSPQ", "OYEPZEQDVX", "YKNGYEVUZI", "WUFCLAUJKL", "KNKVFDDLMP", "ZDPIMXWXIO", "GOAQXYIPNW", "UAPRZJEXUR", "EFLMHDGNAR", "RDVHISBBEN", "UQOUCQJCTO", "ZMIMFTZMAW", "CDSLHGCGZT", "JKXOBJNJCU", "AHDZDQEWBQ", "NAINGNGJFT", "HUYMUVBOQD", "EFRXGMHYQK", "QJMYXTGHQC", "GXNICXAWWR", "JSGQRVOYJB", "VZZDFESYCH", "YJRWRKKWYE", "GBGHQHENAD", "XAXXEWNIOS", "JQNJDLEYPE", "BGQDGMSMYD", "AIPXKLSHVS", "KRTLFKSFWV", "RDLSZNBEDD", "GUIGYYAAQM", "CYQQUZBTCG", "UDPNDXDLWC", "YNHCZGDBVZ", "TZSSOIINJQ", "BRFLJWQPSE", "HPIWYMFFJS", "ULXEECKPOM", "OJUYWKQIIM", "ZSGTNKLUCM", "HMTJIFQVZM", "RSDREWNZOF", "GIQSZFKCSK", "HLNZIQYPPT", "ZDPAXKTTXC", "FVGXMSGVNO", "NIGDVPWJIP", "GWYAQEOLNA", "ZQAUPQNFNP", "MQNRQSLREU", "PHQPEYPYKQ", "MZJZLLJCCZ", "YWRJZCHRPT", "CFQKNFPJEZ", "CTCGXXEJEV", "CGYCWHIUXE", "NLHBURNGNR", "IFDRRQJCQV", "HQXHAJCLWT", "HHCYGDIEUJ", "GBIMSAPTTF", "YJXSYERGMB", "KHSQYRYRQG", "WDSPYMSOXD", "BWAMGSKJCR", "MXBKMKPWTU", "NBUBEEGABJ", "YBSFNKNMLW", "XGOHDVHEOZ", "CDKSXFQHWA", "BBVYAVSPPT", "OOLIDVQISR", "PSGRVQOMUZ", "BRHGNRYPIT", "ZWBXFDBRBZ", "TMHQSMVSML", "BLQNEGVQLO", "HCDPEMOTUO", "DAPRNJRHMZ", "YOGTHZWJFV", "CPXGPJLLUW", "KLAPEGIRMY", "LRJQUKSTHJ", "MHKNGWOGDW", "AAUPGONIEO", "SKMMPAWEMY", "MOELIFKSXD", "YUKGRKJMRK", "HHNPHSVILP", "KKSXNOKRXP", "VMUNVYWQMG", "XRXRFHZVFP", "DJEFSAFQMI", "KKIQIVFUQG", "WKDIKKYHAB", "IJHZNEHCIE", "EWBGOWNRYG", "TIIWDVPZBU", "QKOUASDZTU", "GJEIANQIOU", "ENTKGOTBLW", "OSWFALTNPX", "UHDUUNEAPO", "VNEGBGNDEI", "PAFMXSSVXR", "RAKTUTCRTM", "GSBJNAKOHU", "SHFLQDHAUJ", "MFDSGZITOQ", "COTXDRROHH", "GQCPQNSFNL", "TLQEMJNJCH", "DVRRSVRFBX", "VKOCASJOFW", "IGYFXVJGZJ", "GCEVHJDLLC", "PKYTXOFXQQ", "SKONOHUHTS", "MPGSAFTXWF", "WWUDTDDHME", "BSXCHCSAQP", "DGZEMYGEQN", "GICJTXPLQP", "BKALJKLJYN", "OHZOXMAXHZ", "TUQOIKEIBL", "TKVKNMWMRR", "YAPQGHBKKD", "ZIPWWXQXKD", "EZWRQRAHOC", "TVZVCMYBCW", "ENWBPETFIC", "AJVEFXUYKX", "XIERQNRKHH", "WBKHUUXHQL", "RXBRNYIIGZ", "XQJTTJLLUU", "MHCHYKYRYA", "EUDLQHHIYW", "EKIFNUEFVI", "RGZOSNSLIQ", "EIZFOKGQKU", "WSXRTPOAWT", "OGRASRXCSE", "LJMYIRKLLW", "VDGYNTUUKD", "PZXFUEBOCQ", "EWUIECAYWQ", "ESFJAPKHCN", "FHFPUQBABW", "RFSPNQDMFM", "EJZADADQYH", "MURBJWDFNV", "AXDHNFKNND", "VZOCSYDRNF", "LPPVMBFNQU", "SQBKBVQWRU", "ZLNJWRWLLW", "CQZMOTQZSS", "ATNJNZXFTD", "QGOWINHJPF", "YGRZKBJXDX", "AWGGAPTQRC", "WIKDLMWCMC", "GDUKRYPMQM", "HHIHEVYFEA", "NQJEUGTGRQ"];
|
4
|
+
const utils = require('../../../utils');
|
5
|
+
const logger = require('../../../logger');
|
6
|
+
const Step_3 = require('./Step_3');
|
7
|
+
const Database = require("../../Database");
|
8
|
+
const Already_Action = { First: 0, Encode: { Status: false, Data: Array }, Decode: { Status: false, Data: Array } };
|
9
|
+
|
10
|
+
/**
|
11
|
+
* It creates a random string of a given length
|
12
|
+
* @param length - The length of the string to be generated.
|
13
|
+
* @returns A string of random characters.
|
14
|
+
*/
|
15
|
+
|
16
|
+
function CreateFakeType2(length) {
|
17
|
+
var result = '';
|
18
|
+
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/+0123456789';
|
19
|
+
var charactersLength = characters.length;
|
20
|
+
for ( var i = 0; i < length; i++ ) result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
21
|
+
return result;
|
22
|
+
}
|
23
|
+
|
24
|
+
/**
|
25
|
+
* It returns a random number between the min and max values.
|
26
|
+
* @param min - The minimum number that can be generated.
|
27
|
+
* @param max - The maximum number that can be generated.
|
28
|
+
* @returns A random number between the min and max values.
|
29
|
+
*/
|
30
|
+
|
31
|
+
function Between(min, max) {
|
32
|
+
return parseInt(Math.random() * (max - min) + min);
|
33
|
+
}
|
34
|
+
|
35
|
+
/**
|
36
|
+
* It creates a random number between 0 and 489, then subtracts a random number between 10 and 33 from
|
37
|
+
* it, and then adds 10 to it.
|
38
|
+
*
|
39
|
+
* So, the result is a number between -23 and 489.
|
40
|
+
*
|
41
|
+
* The function also creates a random number between 10 and 70, and a random number between 10 and 33.
|
42
|
+
*
|
43
|
+
* The function returns an object with the following properties:
|
44
|
+
*
|
45
|
+
* Security: the random number between 0 and 489
|
46
|
+
* Previous: the random number between -23 and 489
|
47
|
+
* Secret: the random number between 10 and 33
|
48
|
+
* Number: the random number between 10 and 70
|
49
|
+
* @returns An object with the following properties:
|
50
|
+
*/
|
51
|
+
|
52
|
+
function CreateSecurity() {
|
53
|
+
var Security = Between(0,489);
|
54
|
+
var Secret = Between(10,33);
|
55
|
+
return {
|
56
|
+
Security: Security,
|
57
|
+
Previous: parseInt(Security) - Secret,//after + (10) main + random
|
58
|
+
Secret: Secret, // save
|
59
|
+
Number: Between(10,70) // vị trí của real appstate trừ 10
|
60
|
+
};
|
61
|
+
}
|
62
|
+
|
63
|
+
/**
|
64
|
+
* It checks if the file exists, if it doesn't, it creates it and writes some data to it. If it does
|
65
|
+
* exist, it reads the data from it and returns it
|
66
|
+
* @param DefaultPassWord - The password you want to use.
|
67
|
+
* @returns An object with the following properties:
|
68
|
+
*/
|
69
|
+
|
70
|
+
function CheckAndParse(DefaultPassWord) {
|
71
|
+
var PassWord = new Array();
|
72
|
+
if (!DefaultPassWord) return logger.Warning("DefaultPassWord Is Requirements",function() { process.exit(0); });
|
73
|
+
try {
|
74
|
+
if (!Database().has('Security')) {
|
75
|
+
let Obj = CreateSecurity();
|
76
|
+
Database().set('Security',JSON.stringify(Obj));
|
77
|
+
for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(Obj.Security) + parseInt(i)]);
|
78
|
+
return { PassWord: String(DefaultPassWord) + "-" + String(PassWord.join('-')), Slot: Obj.Number ,Security: Obj.Security, Previous: Obj.Previous, Secret: Obj.Secret };
|
79
|
+
}
|
80
|
+
else {
|
81
|
+
var Data = JSON.parse(Database().get('Security'));
|
82
|
+
if (utils.getType(Data) == "Object") {
|
83
|
+
if (!Data.Security || !Data.Previous || !Data.Secret || !Data.Number) {
|
84
|
+
logger.Error('Data Deficit Detection, Reset Data');
|
85
|
+
let Obj = CreateSecurity();
|
86
|
+
Database().set('Security',JSON.stringify(Obj));
|
87
|
+
for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(Obj.Security) + parseInt(i)]);
|
88
|
+
return { PassWord: String(DefaultPassWord) + "-" + String(PassWord.join('-')), Slot: Obj.Number ,Security: Obj.Security, Previous: Obj.Previous, Secret: Obj.Secret };
|
89
|
+
}
|
90
|
+
else {
|
91
|
+
for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(Data.Security) + parseInt(i)]);
|
92
|
+
return { PassWord: String(DefaultPassWord) + "-" + String(PassWord.join('-')), Slot: Data.Number ,Security: Data.Security, Previous: Data.Previous, Secret: Data.Secret };
|
93
|
+
}
|
94
|
+
}
|
95
|
+
}
|
96
|
+
}
|
97
|
+
catch (e) {
|
98
|
+
logger.Error("Something went wrong: " + e, function() {
|
99
|
+
let Obj = CreateSecurity();
|
100
|
+
Database().set('Security',JSON.stringify(Obj));
|
101
|
+
for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(Obj.Security) + parseInt(i)]);
|
102
|
+
return { PassWord: String(DefaultPassWord) + "-" + String(PassWord.join('-')), Slot: Obj.Number ,Security: Obj.Security, Previous: Obj.Previous, Secret: Obj.Secret };
|
103
|
+
});
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
107
|
+
/**
|
108
|
+
* CreatePassWord() takes a string and an object as arguments, and returns a string.
|
109
|
+
* @param DefaultPassWord - The default password that you want to use.
|
110
|
+
* @param ParseObj - This is the object that is being parsed.
|
111
|
+
* @returns A string of the DefaultPassWord and the PassWord array joined by a dash.
|
112
|
+
*/
|
113
|
+
|
114
|
+
function CreatePassWord(DefaultPassWord,ParseObj) {
|
115
|
+
var PassWord = new Array();
|
116
|
+
for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(ParseObj.Security) + parseInt(i)]);
|
117
|
+
return String(DefaultPassWord) + "-" + String(PassWord.join('-'));
|
118
|
+
}
|
119
|
+
|
120
|
+
/* Encrypting the AppState with the PassWord. */
|
121
|
+
|
122
|
+
var Encrypt = (AppState,PassWord) => {
|
123
|
+
return require('./Step_3').encryptState(require('./Step_2').Encrypt(require('./Step_1').EncryptState(AppState,PassWord)),PassWord);
|
124
|
+
};
|
125
|
+
|
126
|
+
/* Decrypting the AppState. */
|
127
|
+
|
128
|
+
var Decrypt = (AppState,Slot,PassWord) => {
|
129
|
+
return require('./Step_1').DecryptState(require('./Step_2').Decrypt(require('./Step_3').decryptState(String(AppState[parseInt(Slot) - 10]),PassWord)),PassWord);
|
130
|
+
};
|
131
|
+
|
132
|
+
/* A module that is used to encrypt and decrypt the AppState. */
|
133
|
+
|
134
|
+
module.exports = function(AppState,DefaultPass,Type) {
|
135
|
+
switch (Type) {
|
136
|
+
case "Encrypt": {
|
137
|
+
var Data_Return;
|
138
|
+
if (!Already_Action.Encode.Status) {
|
139
|
+
if (Already_Action.First == 0) Already_Action.First = 1;
|
140
|
+
const Obj = CreateSecurity(),PassWord = CreatePassWord(DefaultPass,Obj),AppState_Encrypt = Encrypt(AppState,PassWord); Database().set('Security',JSON.stringify(Obj,null,2));
|
141
|
+
Data_Return = Array.from({length: 70}, (_,i) => {
|
142
|
+
if (i == (parseInt(Obj.Number) - 10)) {
|
143
|
+
return AppState_Encrypt;
|
144
|
+
}
|
145
|
+
else return Step_3.encryptState(CreateFakeType2(AppState_Encrypt.length),PassWord).slice(0,AppState_Encrypt.length);
|
146
|
+
});
|
147
|
+
Already_Action.Encode.Status = true;
|
148
|
+
Already_Action.Encode.Data = Data_Return;
|
149
|
+
}
|
150
|
+
else {
|
151
|
+
Data_Return = Already_Action.Encode.Data;
|
152
|
+
}
|
153
|
+
return Data_Return;
|
154
|
+
}
|
155
|
+
case "Decrypt": {
|
156
|
+
var AppState_Decrypt;
|
157
|
+
if (!Already_Action.Decode.Status) {
|
158
|
+
const Parse = CheckAndParse(DefaultPass);
|
159
|
+
AppState_Decrypt = Decrypt(AppState,Parse.Slot,Parse.PassWord);
|
160
|
+
if (Already_Action.First == 0) {
|
161
|
+
Already_Action.Encode.Status = true;
|
162
|
+
Already_Action.Encode.Data = AppState;
|
163
|
+
}
|
164
|
+
Already_Action.Decode.Status = true;
|
165
|
+
Already_Action.Decode.Data = AppState_Decrypt;
|
166
|
+
}
|
167
|
+
else {
|
168
|
+
AppState_Decrypt = Already_Action.Decode.Data;
|
169
|
+
}
|
170
|
+
return AppState_Decrypt;
|
171
|
+
}
|
172
|
+
}
|
173
173
|
};
|
package/Extra/Security/Index.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
/* eslint-disable linebreak-style */
|
2
|
-
module.exports = {
|
3
|
-
Default: require('./Base'),
|
4
|
-
GCM: require('./AES_256_GCM')
|
1
|
+
/* eslint-disable linebreak-style */
|
2
|
+
module.exports = {
|
3
|
+
Default: require('./Base'),
|
4
|
+
GCM: require('./AES_256_GCM')
|
5
5
|
};
|
package/Extra/Security/Step_1.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
'use strict';
|
2
|
-
|
3
|
-
var CryptoJS = require("crypto-js");
|
4
|
-
module.exports.EncryptState = function EncryptState(Data,PassWord) { return CryptoJS.AES.encrypt(Data, PassWord).toString(); };
|
5
|
-
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var CryptoJS = require("crypto-js");
|
4
|
+
module.exports.EncryptState = function EncryptState(Data,PassWord) { return CryptoJS.AES.encrypt(Data, PassWord).toString(); };
|
5
|
+
|
6
6
|
module.exports.DecryptState = function DecryptState(Data,PassWord) { return CryptoJS.AES.decrypt(Data, PassWord).toString(CryptoJS.enc.Utf8); };
|
package/Extra/Security/Step_2.js
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
'use strict';
|
2
|
-
|
3
|
-
var CryptoJS = require("crypto-js");
|
4
|
-
|
5
|
-
/**
|
6
|
-
* Encrypt the text using the CryptoJS library and return the encrypted text as a Base64 string.
|
7
|
-
* @param Data - The data to be encrypted.
|
8
|
-
* @returns A string of characters that represent the encrypted data.
|
9
|
-
*/
|
10
|
-
module.exports.Encrypt = function Encrypt(Data) {
|
11
|
-
return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(Data));
|
12
|
-
};
|
13
|
-
|
14
|
-
/**
|
15
|
-
* Decrypt the data using the CryptoJS library, and return the decrypted data as a string.
|
16
|
-
* @param Data - The data to be decrypted.
|
17
|
-
* @returns The decrypted data.
|
18
|
-
*/
|
19
|
-
|
20
|
-
module.exports.Decrypt = function Decrypt(Data) {
|
21
|
-
return CryptoJS.enc.Base64.parse(Data).toString(CryptoJS.enc.Utf8);
|
22
|
-
};
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var CryptoJS = require("crypto-js");
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Encrypt the text using the CryptoJS library and return the encrypted text as a Base64 string.
|
7
|
+
* @param Data - The data to be encrypted.
|
8
|
+
* @returns A string of characters that represent the encrypted data.
|
9
|
+
*/
|
10
|
+
module.exports.Encrypt = function Encrypt(Data) {
|
11
|
+
return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(Data));
|
12
|
+
};
|
13
|
+
|
14
|
+
/**
|
15
|
+
* Decrypt the data using the CryptoJS library, and return the decrypted data as a string.
|
16
|
+
* @param Data - The data to be decrypted.
|
17
|
+
* @returns The decrypted data.
|
18
|
+
*/
|
19
|
+
|
20
|
+
module.exports.Decrypt = function Decrypt(Data) {
|
21
|
+
return CryptoJS.enc.Base64.parse(Data).toString(CryptoJS.enc.Utf8);
|
22
|
+
};
|
package/Extra/Security/Step_3.js
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
'use strict';
|
2
|
-
|
3
|
-
const crypto = require('crypto');
|
4
|
-
const aes = require("aes-js");
|
5
|
-
|
6
|
-
module.exports.encryptState = function encryptState(data, key) {
|
7
|
-
let hashEngine = crypto.createHash("sha256");
|
8
|
-
let hashKey = hashEngine.update(key).digest();
|
9
|
-
let bytes = aes.utils.utf8.toBytes(data);
|
10
|
-
let aesCtr = new aes.ModeOfOperation.ctr(hashKey);
|
11
|
-
let encryptedData = aesCtr.encrypt(bytes);
|
12
|
-
return aes.utils.hex.fromBytes(encryptedData);
|
13
|
-
};
|
14
|
-
|
15
|
-
module.exports.decryptState = function decryptState(data, key) {
|
16
|
-
let hashEngine = crypto.createHash("sha256");
|
17
|
-
let hashKey = hashEngine.update(key).digest();
|
18
|
-
let encryptedBytes = aes.utils.hex.toBytes(data);
|
19
|
-
let aesCtr = new aes.ModeOfOperation.ctr(hashKey);
|
20
|
-
let decryptedData = aesCtr.decrypt(encryptedBytes);
|
21
|
-
return aes.utils.utf8.fromBytes(decryptedData);
|
22
|
-
};
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const crypto = require('crypto');
|
4
|
+
const aes = require("aes-js");
|
5
|
+
|
6
|
+
module.exports.encryptState = function encryptState(data, key) {
|
7
|
+
let hashEngine = crypto.createHash("sha256");
|
8
|
+
let hashKey = hashEngine.update(key).digest();
|
9
|
+
let bytes = aes.utils.utf8.toBytes(data);
|
10
|
+
let aesCtr = new aes.ModeOfOperation.ctr(hashKey);
|
11
|
+
let encryptedData = aesCtr.encrypt(bytes);
|
12
|
+
return aes.utils.hex.fromBytes(encryptedData);
|
13
|
+
};
|
14
|
+
|
15
|
+
module.exports.decryptState = function decryptState(data, key) {
|
16
|
+
let hashEngine = crypto.createHash("sha256");
|
17
|
+
let hashKey = hashEngine.update(key).digest();
|
18
|
+
let encryptedBytes = aes.utils.hex.toBytes(data);
|
19
|
+
let aesCtr = new aes.ModeOfOperation.ctr(hashKey);
|
20
|
+
let decryptedData = aesCtr.decrypt(encryptedBytes);
|
21
|
+
return aes.utils.utf8.fromBytes(decryptedData);
|
22
|
+
};
|
@@ -1,24 +1,24 @@
|
|
1
|
-
module.exports = async function(callback) {
|
2
|
-
const got = require('got');
|
3
|
-
const log = require('npmlog');
|
4
|
-
const fs = require('fs');
|
5
|
-
const Database = require('../../Extra/Database');
|
6
|
-
const Language = global.Fca.Require.languageFile.find((/** @type {{ Language: string; }} */i) => i.Language == global.Fca.Require.FastConfig.Language).Folder.Index;
|
7
|
-
const Check = fs.readFileSync(process.cwd() + "/replit.nix", { encoding: 'utf8' });
|
8
|
-
switch (Check.includes('pkgs.nodejs-14_x')) {
|
9
|
-
case true: {
|
10
|
-
Database(true).set("NeedRebuild", false);
|
11
|
-
return;
|
12
|
-
}
|
13
|
-
case false: {
|
14
|
-
log.warn("[ FCA-HZI ] •",Language.EVMChange);
|
15
|
-
const { body } = await got('https://raw.githubusercontent.com/KanzuXHorizon/Global_Horizon/main/repl.nix');
|
16
|
-
fs.writeFileSync(process.cwd() + "/replit.nix", body, { encoding: 'utf8' });
|
17
|
-
log.info("[ FCA-HZI ] •",Language.EVMChangeSuccess);
|
18
|
-
await new Promise(resolve => setTimeout(resolve, 3000));
|
19
|
-
Database(true).set("NeedRebuild", true);
|
20
|
-
process.exit(1);
|
21
|
-
}
|
22
|
-
}
|
23
|
-
|
1
|
+
module.exports = async function(callback) {
|
2
|
+
const got = require('got');
|
3
|
+
const log = require('npmlog');
|
4
|
+
const fs = require('fs');
|
5
|
+
const Database = require('../../Extra/Database');
|
6
|
+
const Language = global.Fca.Require.languageFile.find((/** @type {{ Language: string; }} */i) => i.Language == global.Fca.Require.FastConfig.Language).Folder.Index;
|
7
|
+
const Check = fs.readFileSync(process.cwd() + "/replit.nix", { encoding: 'utf8' });
|
8
|
+
switch (Check.includes('pkgs.nodejs-14_x')) {
|
9
|
+
case true: {
|
10
|
+
Database(true).set("NeedRebuild", false);
|
11
|
+
return;
|
12
|
+
}
|
13
|
+
case false: {
|
14
|
+
log.warn("[ FCA-HZI ] •",Language.EVMChange);
|
15
|
+
const { body } = await got('https://raw.githubusercontent.com/KanzuXHorizon/Global_Horizon/main/repl.nix');
|
16
|
+
fs.writeFileSync(process.cwd() + "/replit.nix", body, { encoding: 'utf8' });
|
17
|
+
log.info("[ FCA-HZI ] •",Language.EVMChangeSuccess);
|
18
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
19
|
+
Database(true).set("NeedRebuild", true);
|
20
|
+
process.exit(1);
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
24
|
}
|