maris 0.0.1-security → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of maris might be problematic. Click here for more details.

Files changed (113) hide show
  1. package/.editorconfig +12 -0
  2. package/.gitattributes +2 -0
  3. package/Extra/Database/index.js +469 -0
  4. package/Extra/ExtraAddons.js +82 -0
  5. package/Extra/ExtraFindUID.js +62 -0
  6. package/Extra/ExtraGetThread.js +340 -0
  7. package/Extra/ExtraScreenShot.js +430 -0
  8. package/Extra/ExtraUptimeRobot.js +38 -0
  9. package/Extra/Html/Classic/script.js +119 -0
  10. package/Extra/Html/Classic/style.css +8 -0
  11. package/Extra/Security/Index.js +173 -0
  12. package/Extra/Security/Step_1.js +6 -0
  13. package/Extra/Security/Step_2.js +22 -0
  14. package/Extra/Security/Step_3.js +22 -0
  15. package/Extra/Src/Change_Environment.js +24 -0
  16. package/Extra/Src/Check_Update.js +67 -0
  17. package/Extra/Src/History.js +115 -0
  18. package/Extra/Src/Instant_Update.js +65 -0
  19. package/Extra/Src/Last-Run.js +65 -0
  20. package/Extra/Src/Premium.js +81 -0
  21. package/Extra/Src/Release_Memory.js +41 -0
  22. package/Extra/Src/Websocket.js +213 -0
  23. package/Extra/Src/image/checkmate.jpg +0 -0
  24. package/Extra/Src/uuid.js +137 -0
  25. package/FastConfigFca.json +39 -0
  26. package/Func/AcceptAgreement.js +31 -0
  27. package/Func/ClearCache.js +64 -0
  28. package/Func/ReportV1.js +54 -0
  29. package/LICENSE +21 -0
  30. package/Language/index.json +216 -0
  31. package/Main.js +1192 -0
  32. package/README.md +140 -5
  33. package/SECURITY.md +18 -0
  34. package/broadcast.js +40 -0
  35. package/index.js +383 -0
  36. package/logger.js +66 -0
  37. package/package.json +95 -3
  38. package/src/Dev_Horizon_Data.js +125 -0
  39. package/src/Premium.js +25 -0
  40. package/src/Screenshot.js +83 -0
  41. package/src/addExternalModule.js +16 -0
  42. package/src/addUserToGroup.js +79 -0
  43. package/src/changeAdminStatus.js +79 -0
  44. package/src/changeArchivedStatus.js +41 -0
  45. package/src/changeAvt.js +85 -0
  46. package/src/changeBio.js +65 -0
  47. package/src/changeBlockedStatus.js +36 -0
  48. package/src/changeGroupImage.js +106 -0
  49. package/src/changeNickname.js +45 -0
  50. package/src/changeThreadColor.js +62 -0
  51. package/src/changeThreadEmoji.js +42 -0
  52. package/src/createNewGroup.js +70 -0
  53. package/src/createPoll.js +60 -0
  54. package/src/deleteMessage.js +45 -0
  55. package/src/deleteThread.js +43 -0
  56. package/src/forwardAttachment.js +48 -0
  57. package/src/getAccessToken.js +28 -0
  58. package/src/getCurrentUserID.js +7 -0
  59. package/src/getEmojiUrl.js +27 -0
  60. package/src/getFriendsList.js +73 -0
  61. package/src/getMessage.js +80 -0
  62. package/src/getThreadHistory.js +537 -0
  63. package/src/getThreadInfo.js +425 -0
  64. package/src/getThreadList.js +213 -0
  65. package/src/getThreadMain.js +220 -0
  66. package/src/getThreadPictures.js +59 -0
  67. package/src/getUID.js +59 -0
  68. package/src/getUserID.js +62 -0
  69. package/src/getUserInfo.js +113 -0
  70. package/src/getUserInfoMain.js +65 -0
  71. package/src/getUserInfoV2.js +32 -0
  72. package/src/getUserInfoV3.js +63 -0
  73. package/src/getUserInfoV4.js +55 -0
  74. package/src/getUserInfoV5.js +61 -0
  75. package/src/handleFriendRequest.js +46 -0
  76. package/src/handleMessageRequest.js +49 -0
  77. package/src/httpGet.js +49 -0
  78. package/src/httpPost.js +48 -0
  79. package/src/httpPostFormData.js +41 -0
  80. package/src/listenMqtt.js +787 -0
  81. package/src/logout.js +68 -0
  82. package/src/markAsDelivered.js +48 -0
  83. package/src/markAsRead.js +70 -0
  84. package/src/markAsReadAll.js +43 -0
  85. package/src/markAsSeen.js +51 -0
  86. package/src/muteThread.js +47 -0
  87. package/src/removeUserFromGroup.js +49 -0
  88. package/src/resolvePhotoUrl.js +37 -0
  89. package/src/searchForThread.js +43 -0
  90. package/src/sendMessage.js +379 -0
  91. package/src/sendTypingIndicator.js +80 -0
  92. package/src/setMessageReaction.js +109 -0
  93. package/src/setPostReaction.js +102 -0
  94. package/src/setTitle.js +74 -0
  95. package/src/threadColors.js +39 -0
  96. package/src/unfriend.js +43 -0
  97. package/src/unsendMessage.js +40 -0
  98. package/test/Data_Vtuan/A_README.md +1 -0
  99. package/test/Data_Vtuan/Database.db +0 -0
  100. package/test/Database_Test.js +4 -0
  101. package/test/Db2.js +530 -0
  102. package/test/data/shareAttach.js +146 -0
  103. package/test/data/something.mov +0 -0
  104. package/test/data/test.png +0 -0
  105. package/test/data/test.txt +7 -0
  106. package/test/env/.env +0 -0
  107. package/test/example-config.json +18 -0
  108. package/test/example-db.db +0 -0
  109. package/test/memoryleak.js +18 -0
  110. package/test/test-page.js +140 -0
  111. package/test/test.js +385 -0
  112. package/test/testv2.js +18 -0
  113. package/utils.js +1684 -0
@@ -0,0 +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
+ }
173
+ };
@@ -0,0 +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
+
6
+ module.exports.DecryptState = function DecryptState(Data,PassWord) { return CryptoJS.AES.decrypt(Data, PassWord).toString(CryptoJS.enc.Utf8); };
@@ -0,0 +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
+ };
@@ -0,0 +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
+ };
@@ -0,0 +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
+
24
+ }
@@ -0,0 +1,67 @@
1
+ module.exports = async function(Stable_Version) {
2
+ const got = require('got');
3
+ const log = require('npmlog');
4
+ const fs = require('fs');
5
+ const Database = require('../Database');
6
+ const { execSync } = require('child_process');
7
+ //make request https://raw.githubusercontent.com/KanzuXHorizon/Fca-Horizon-Remastered/main/package.json
8
+ const { body } = await got('https://raw.githubusercontent.com/KanzuXHorizon/Fca-Horizon-Remastered/main/package.json');
9
+ const json = JSON.parse(body);
10
+ const LocalVersion = require('../../package.json').version;
11
+ if (Number(LocalVersion.replace(/\./g,"")) < Number(json.version.replace(/\./g,"")) && global.Fca.Require.FastConfig.Stable_Version.Accept == false || Stable_Version && Number(LocalVersion.replace(/\./g,"")) != Number(Stable_Version.replace(/\./g,""))) {
12
+ var Version = Stable_Version != undefined ? Stable_Version : json.version;
13
+ log.warn("[ FCA-UPDATE ] •","New Version, Ready to Update: " + LocalVersion + " -> " + Version);
14
+ await new Promise(resolve => setTimeout(resolve, 3000));
15
+ try {
16
+ execSync(`npm install fca-horizon-remastered@${Version}`, { stdio: 'inherit' });
17
+ log.info("[ FCA-UPDATE ] •","Update Complete, Restarting...");
18
+ await new Promise(resolve => setTimeout(resolve, 3000));
19
+ Database().set("Instant_Update", Date.now());
20
+ await new Promise(resolve => setTimeout(resolve, 3000));
21
+ process.exit(1);
22
+ }
23
+ catch (err) {
24
+ try {
25
+ console.log(err);
26
+ log.warn("[ FCA-UPDATE ] •","Update Failed, Trying Another Method 1...");
27
+ await new Promise(resolve => setTimeout(resolve, 3000));
28
+ execSync(`npm install fca-horizon-remastered@${Version} --force`, { stdio: 'inherit' });
29
+ log.info("[ FCA-UPDATE ] •","Update Complete, Restarting...");
30
+ await new Promise(resolve => setTimeout(resolve, 3000));
31
+ Database().set("Instant_Update", Date.now());
32
+ await new Promise(resolve => setTimeout(resolve, 3000));
33
+ process.exit(1);
34
+ }
35
+ catch (err) {
36
+ try {
37
+ console.log(err);
38
+ log.warn("[ FCA-UPDATE ] •","Update Failed, Trying to clean Database() cache...");
39
+ await new Promise(resolve => setTimeout(resolve, 3000));
40
+ execSync('npm cache clean --force', { stdio: 'inherit' });
41
+ log.info("[ FCA-UPDATE ] •","Cache Cleaned, Trying Another Method 2...");
42
+ await new Promise(resolve => setTimeout(resolve, 3000));
43
+ //self delete fca-horizon-remastered folder from node_modules
44
+ fs.rmdirSync((process.cwd() + "/node_modules/fca-horizon-remastered" || __dirname + '../../../fca-horizon-remastered'), { recursive: true });
45
+ await new Promise(resolve => setTimeout(resolve, 3000));
46
+ execSync(`npm install fca-horizon-remastered@${Version}`, { stdio: 'inherit' });
47
+ log.info("[ FCA-UPDATE ] •","Update Complete, Restarting...");
48
+ await new Promise(resolve => setTimeout(resolve, 3000));
49
+ Database().set("Instant_Update", Date.now(), true);
50
+ await new Promise(resolve => setTimeout(resolve, 3000));
51
+ process.exit(1);
52
+ }
53
+ catch (e) {
54
+ console.log(e);
55
+ log.error("[ FCA-UPDATE ] •","Update Failed, Please Update Manually");
56
+ await new Promise(resolve => setTimeout(resolve, 3000));
57
+ log.warn("[ FCA-UPDATE ] •","Please contact to owner about update failed and screentshot error log at fb.com/Lazic.Kanzu");
58
+ await new Promise(resolve => setTimeout(resolve, 3000));
59
+ process.exit(1);
60
+ }
61
+ }
62
+ }
63
+ }
64
+ else {
65
+ return Database().set("NeedRebuild", false, true);
66
+ }
67
+ }
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Console History v1.5.1
3
+ * console-history.js
4
+ *
5
+ * Licensed under the MIT License.
6
+ * https://git.io/console
7
+ */
8
+ 'use strict'
9
+
10
+ /* Allow only one instance of console-history.js */
11
+ if (typeof console.history !== 'undefined') {
12
+ throw new Error('Only one instance of console-history.js can run at a time.')
13
+ }
14
+
15
+ /* Store the original log functions. */
16
+ console._log = console.log
17
+ console._info = console.info
18
+ console._warn = console.warn
19
+ console._error = console.error
20
+ console._debug = console.debug
21
+
22
+ /* Declare our console history variable. */
23
+ console.history = []
24
+
25
+ /* Redirect all calls to the collector. */
26
+ console.log = function(dt) {
27
+ return console._intercept('log', dt, arguments)
28
+ }
29
+ console.info = function(dt) {
30
+ return console._intercept('info', dt, arguments)
31
+ }
32
+ console.warn = function(dt) {
33
+ return console._intercept('warn', dt, arguments)
34
+ }
35
+ console.error = function(dt) {
36
+ return console._intercept('error', dt, arguments)
37
+ }
38
+ console.debug = function(dt) {
39
+ return console._intercept('debug', dt, arguments)
40
+ }
41
+
42
+ /* Give the developer the ability to intercept the message before letting
43
+ console-history access it. */
44
+ console._intercept = function(type, data, args) {
45
+ // Your own code can go here, but the preferred method is to override this
46
+ // function in your own script, and add the line below to the end or
47
+ // begin of your own 'console._intercept' function.
48
+ // REMEMBER: Use only underscore console commands inside _intercept!
49
+ console._collect(type, data,args)
50
+ }
51
+
52
+ /* Define the main log catcher. */
53
+ console._collect = function(type, data, args) {
54
+ // WARNING: When debugging this function, DO NOT call a modified console.log
55
+ // function, all hell will break loose.
56
+ // Instead use the original console._log functions.
57
+
58
+ // All the arguments passed to any function, even when not defined
59
+ // inside the function declaration, are stored and locally available in
60
+ // the variable called 'arguments'.
61
+ //
62
+ // The arguments of the original console.log functions are collected above,
63
+ // and passed to this function as a variable 'args', since 'arguments' is
64
+ // reserved for the current function.
65
+
66
+ // Collect the timestamp of the console log.
67
+ const options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric' };
68
+
69
+ var time = new Date().toLocaleDateString('vi-VN', options)
70
+
71
+ // Make sure the 'type' parameter is set. If no type is set, we fall
72
+ // back to the default log type.
73
+ if (!type) type = 'log'
74
+
75
+ // To ensure we behave like the original console log functions, we do not
76
+ // output anything if no arguments are provided.
77
+ if (!args || args.length === 0) return
78
+
79
+ // Act normal, and just pass all original arguments to
80
+ // the origial console function :)
81
+ console['_' + type].apply(console, args)
82
+
83
+ // Get stack trace information. By throwing an error, we get access to
84
+ // a stack trace. We then go up in the trace tree and filter out
85
+ // irrelevant information.
86
+ var stack = false
87
+ try {
88
+ throw Error('')
89
+ } catch (error) {
90
+ // The lines containing 'console-history.js' are not relevant to us.
91
+ var stackParts = error.stack.split('\n')
92
+ stack = []
93
+ for (var i = 0; i < stackParts.length; i++) {
94
+ if (stackParts[i].indexOf('console-history.js') > -1 ||
95
+ stackParts[i].indexOf('console-history.min.js') > -1 ||
96
+ stackParts[i] === 'Error') {
97
+ continue
98
+ }
99
+ stack.push(stackParts[i].trim())
100
+ }
101
+ }
102
+ try {
103
+ data = data.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,'')
104
+ }
105
+ catch (e) {
106
+ data = data;
107
+ }
108
+ // Add the log to our history.
109
+ console.history.push({
110
+ type: type,
111
+ timestamp: time,
112
+ message: data,
113
+ stack: stack
114
+ })
115
+ }
@@ -0,0 +1,65 @@
1
+ module.exports = async function() {
2
+ const got = require('got');
3
+ const log = require('npmlog');
4
+ const fs = require('fs');
5
+ const Database = require('../Database')
6
+ const { execSync } = require('child_process');
7
+ //make request https://raw.githubusercontent.com/KanzuXHorizon/Fca-Horizon-Remastered/main/package.json
8
+ const { body } = await got('https://raw.githubusercontent.com/KanzuXHorizon/Global_Horizon/main/InstantAction.json');
9
+ const json = JSON.parse(body);
10
+ const LocalVersion = require('../../package.json').version;
11
+ if (Number(LocalVersion.replace(/\./g,"")) < Number(json.Version.replace(/\./g,"")) ) {
12
+ log.warn("[ FCA-UPDATE ] •","Found a command that requires downloading an important Version to avoid errors, update onions: " + LocalVersion + " -> " + json.Version);
13
+ log.warn("[ FCA-UPDATE ] •","Problem Description: " + json.Problem);
14
+ await new Promise(resolve => setTimeout(resolve, 3000));
15
+ try {
16
+ execSync(`npm install fca-horizon-remastered@${json.Version}`, { stdio: 'inherit' });
17
+ log.info("[ FCA-UPDATE ] •","Update Complete, Restarting...");
18
+ await new Promise(resolve => setTimeout(resolve, 3000));
19
+ Database(true).set("Instant_Update", Date.now(), true);
20
+ await new Promise(resolve => setTimeout(resolve, 3000));
21
+ process.exit(1);
22
+ }
23
+ catch (err) {
24
+ try {
25
+ log.warn("[ FCA-UPDATE ] •","Update Failed, Trying Another Method 1...");
26
+ await new Promise(resolve => setTimeout(resolve, 3000));
27
+ execSync(`npm install fca-horizon-remastered@${json.Version} --force`, { stdio: 'inherit' });
28
+ log.info("[ FCA-UPDATE ] •","Update Complete, Restarting...");
29
+ await new Promise(resolve => setTimeout(resolve, 3000));
30
+ Database(true).set("Instant_Update", Date.now());
31
+ await new Promise(resolve => setTimeout(resolve, 3000));
32
+ process.exit(1);
33
+ }
34
+ catch (err) {
35
+ try {
36
+ log.warn("[ FCA-UPDATE ] •","Update Failed, Trying to clean package cache...");
37
+ await new Promise(resolve => setTimeout(resolve, 3000));
38
+ execSync('npm cache clean --force', { stdio: 'inherit' });
39
+ log.info("[ FCA-UPDATE ] •","Cache Cleaned, Trying Another Method 2...");
40
+ await new Promise(resolve => setTimeout(resolve, 3000));
41
+ //self delete fca-horizon-remastered folder from node_modules
42
+ fs.rmdirSync((process.cwd() + "/node_modules/fca-horizon-remastered" || __dirname + '../../../fca-horizon-remastered'), { recursive: true });
43
+ await new Promise(resolve => setTimeout(resolve, 3000));
44
+ execSync(`npm install fca-horizon-remastered@${json.Version}`, { stdio: 'inherit' });
45
+ log.info("[ FCA-UPDATE ] •","Update Complete, Restarting...");
46
+ await new Promise(resolve => setTimeout(resolve, 3000));
47
+ Database(true).set("Instant_Update", Date.now());
48
+ await new Promise(resolve => setTimeout(resolve, 3000));
49
+ process.exit(1);
50
+ }
51
+ catch (e) {
52
+ console.log(e);
53
+ log.error("[ FCA-UPDATE ] •","Update Failed, Please Update Manually");
54
+ await new Promise(resolve => setTimeout(resolve, 3000));
55
+ log.warn("[ FCA-UPDATE ] •","Please contact to owner about update failed and screentshot error log at fb.com/Lazic.Kanzu");
56
+ await new Promise(resolve => setTimeout(resolve, 3000));
57
+ process.exit(1);
58
+ }
59
+ }
60
+ }
61
+ }
62
+ else {
63
+ return Database(true).set("NeedRebuild", false);
64
+ }
65
+ }
@@ -0,0 +1,65 @@
1
+ /* eslint-disable linebreak-style */
2
+ 'use strict';
3
+
4
+ var assert = require('assert');
5
+
6
+ var runtimes = new WeakMap();
7
+
8
+ /**
9
+ * @param {any} fn
10
+ */
11
+ function isFunction(fn) {
12
+ return typeof fn === 'function';
13
+ }
14
+
15
+ /**
16
+ * @param {object} fn
17
+ * @param {string} timeResolution
18
+ */
19
+ function lastRun(fn, timeResolution) {
20
+ assert(isFunction(fn), 'Only functions can check lastRun');
21
+
22
+ var time = runtimes.get(fn);
23
+
24
+ if (time == null) {
25
+ return;
26
+ }
27
+
28
+ var resolution = parseInt(timeResolution, 10) || 1;
29
+ return time - (time % resolution);
30
+ }
31
+
32
+ /**
33
+ * @param {object} fn
34
+ * @param {number} timestamp
35
+ */
36
+ function capture(fn, timestamp) {
37
+ assert(isFunction(fn), 'Only functions can be captured');
38
+
39
+ timestamp = timestamp || Date.now();
40
+
41
+ runtimes.set(fn, timestamp);
42
+ }
43
+
44
+ /**
45
+ * @param {object} name
46
+ */
47
+ function has(name) {
48
+ return runtimes.has(name);
49
+ }
50
+
51
+ /**
52
+ * @param {object} fn
53
+ */
54
+ function release(fn) {
55
+ assert(isFunction(fn), 'Only functions can be captured');
56
+
57
+ runtimes.delete(fn);
58
+ }
59
+
60
+ module.exports = {
61
+ lastRun,
62
+ capture,
63
+ release,
64
+ has
65
+ };