├── LICENSE ├── README.md ├── cipher_value.js ├── config.yml ├── input └── proxies.txt ├── main.py ├── output └── genned.txt └── requirements.txt /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ----------- 2 | # Paid version 3 | - Currently the free version isn’t working we have another paid version that actually work , DM Me on telegram to buy it :) 4 | - contact me by : [telegram](https://contact-mano.vercel.app/) 5 | - Free trials provided. 6 | # 🚀 Features : 7 | - Create outlook accounts easy and fast 8 | - Multi Threads and the number of threads is fully controlable from config . 9 | - [CapSolver](https://www.capsolver.com/?utm_source=github&utm_medium=exploited) Supported 10 | - [Cap-Bypass](https://capbypass.com) Supported 11 | - Proxies Support 12 | - Fully Requests 13 | - No accounts locks 14 | 15 | # 🛠 Updates 16 | - Added new solver ( capbypass ) 17 | - Removed EZ-Captcha since its not working any more 18 | - Updated and working again ( 2024/06/21 ) 19 | - Better Error Handling 20 | - New UI 21 | - Randomizing password instead of loading from config 22 | - Updated and working again ( 2024/08/06 ) , improved speed 23 | # 📷 Preview : 24 | ![image](https://github.com/Exploited7/outlook-account-creator/assets/143853197/e1c96825-4503-4045-a2eb-419c2a89a9d8) 25 | - Please use good proxies , other wise it will be slow asf or generating bad accounts . 26 | 27 | # ✅ Setup 28 | - pip install -r requirements.txt 29 | - open the config and fill it , solver value is the used solver name and capKey value is the clientkey of you the used solver, other values are clean and readable. 30 | - add proxies in input/proxies.txt filr , must be residential and follow this format : user:pass@ip:port 31 | - run main.py , enjoy using it 32 | 33 | # ❓ Need help 34 | - Reach us on : [discord](https://contact-mano.vercel.app/) 35 | - Looking for a paid project? Dm me by : [telegram](https://contact-mano.vercel.app/) 36 | ----------- 37 | - Status : Working - 8/6/2024 38 | - Use capbypass because capsolver is already patched and they asked me to remove it 39 | ----------- 40 | Outlook account creator / generator Requests based . enjoy using it. 41 | -------------------------------------------------------------------------------- /cipher_value.js: -------------------------------------------------------------------------------- 1 | function encrypt(r, t, e) { 2 | if (o = PackageNewPwdOnly(r), null == o || "undefined" == typeof o) return o; 3 | if (void 0 !== e && void 0 !== parseRSAKeyFromString) var a = parseRSAKeyFromString(e); 4 | return RSAEncrypt(o, a, t) 5 | } 6 | 7 | function PackagePwdOnly(r) { 8 | var t = [], 9 | e = 0; 10 | t[e++] = 1, t[e++] = 1, t[e++] = 0, t[e++] = 0; 11 | var a, n = r.length; 12 | for (t[e++] = n, a = 0; n > a; a++) t[e++] = 127 & r.charCodeAt(a); 13 | return t 14 | } 15 | 16 | function RSAEncrypt(r, t, e) { 17 | t || (t = { 18 | n: [] 19 | }); 20 | for (var a = [], n = 2 * t.n.size - 42, o = 0; o < r.length; o += n) { 21 | var i; 22 | if (o + n >= r.length)(i = RSAEncryptBlock(r.slice(o), t, e)) && (a = i.concat(a)); 23 | else(i = RSAEncryptBlock(r.slice(o, o + n), t, e)) && (a = i.concat(a)) 24 | } 25 | return byteArrayToBase64(a) 26 | } 27 | 28 | function RSAEncryptBlock(r, t, e) { 29 | var a = t.n, 30 | n = t.e, 31 | o = r.length, 32 | i = 2 * a.size; 33 | if (o + 42 > i) return null; 34 | applyPKCSv2Padding(r, i, e); 35 | var u = byteArrayToMP(r = r.reverse()), 36 | f = modularExp(u, n, a); 37 | f.size = a.size; 38 | var l = mpToByteArray(f); 39 | return l.reverse() 40 | } 41 | 42 | function parseRSAKeyFromString(r) { 43 | var t = r.indexOf(";"); 44 | if (0 > t) return null; 45 | var e = r.substr(0, t), 46 | a = r.substr(t + 1), 47 | n = e.indexOf("="); 48 | if (0 > n) return null; 49 | var o = e.substr(n + 1); 50 | if (0 > (n = a.indexOf("="))) return null; 51 | var i = a.substr(n + 1), 52 | u = new Object; 53 | return u.n = hexStringToMP(i), u.e = parseInt(o, 16), u 54 | } 55 | 56 | function applyPKCSv2Padding(r, t, e) { 57 | var a, n = t - r.length - 40 - 2, 58 | o = []; 59 | for (a = 0; n > a; a++) o[a] = 0; 60 | o[n] = 1; 61 | var i = [218, 57, 163, 238, 94, 107, 75, 13, 50, 85, 191, 239, 149, 96, 24, 144, 175, 216, 7, 9].concat(o, r), 62 | u = []; 63 | for (a = 0; 20 > a; a++) u[a] = Math.floor(256 * Math.random()); 64 | var f = XORarrays(i, MGF(u = SHA1(u.concat(e)), t - 21)), 65 | l = XORarrays(u, MGF(f, 20)), 66 | d = []; 67 | for (d[0] = 0, d = d.concat(l, f), a = 0; a < d.length; a++) r[a] = d[a] 68 | } 69 | 70 | function SHA1(r) { 71 | var t, e = r.slice(0); 72 | PadSHA1Input(e); 73 | var a = { 74 | A: 1732584193, 75 | B: 4023233417, 76 | C: 2562383102, 77 | D: 271733878, 78 | E: 3285377520 79 | }; 80 | for (t = 0; t < e.length; t += 64) SHA1RoundFunction(a, e, t); 81 | var n = []; 82 | return wordToBytes(a.A, n, 0), wordToBytes(a.B, n, 4), wordToBytes(a.C, n, 8), wordToBytes(a.D, n, 12), wordToBytes(a.E, n, 16), n 83 | } 84 | 85 | function PadSHA1Input(r) { 86 | var t, e = r.length, 87 | a = e, 88 | n = e % 64, 89 | o = 55 > n ? 56 : 120; 90 | for (r[a++] = 128, t = n + 1; o > t; t++) r[a++] = 0; 91 | var i = 8 * e; 92 | for (t = 1; 8 > t; t++) r[a + 8 - t] = 255 & i, i >>>= 8 93 | } 94 | 95 | function SHA1RoundFunction(r, t, e) { 96 | var a, n, o, i, u = [], 97 | f = r.A, 98 | l = r.B, 99 | d = r.C, 100 | c = r.D, 101 | s = r.E; 102 | for (n = 0, o = e; 16 > n; n++, o += 4) u[n] = t[o] << 24 | t[o + 1] << 16 | t[o + 2] << 8 | t[o + 3] << 0; 103 | for (n = 16; 80 > n; n++) u[n] = rotateLeft(u[n - 3] ^ u[n - 8] ^ u[n - 14] ^ u[n - 16], 1); 104 | for (a = 0; 20 > a; a++) i = rotateLeft(f, 5) + (l & d | ~l & c) + s + u[a] + 1518500249 & 4294967295, s = c, c = d, d = rotateLeft(l, 30), l = f, f = i; 105 | for (a = 20; 40 > a; a++) i = rotateLeft(f, 5) + (l ^ d ^ c) + s + u[a] + 1859775393 & 4294967295, s = c, c = d, d = rotateLeft(l, 30), l = f, f = i; 106 | for (a = 40; 60 > a; a++) i = rotateLeft(f, 5) + (l & d | l & c | d & c) + s + u[a] + 2400959708 & 4294967295, s = c, c = d, d = rotateLeft(l, 30), l = f, f = i; 107 | for (a = 60; 80 > a; a++) i = rotateLeft(f, 5) + (l ^ d ^ c) + s + u[a] + 3395469782 & 4294967295, s = c, c = d, d = rotateLeft(l, 30), l = f, f = i; 108 | r.A = r.A + f & 4294967295, r.B = r.B + l & 4294967295, r.C = r.C + d & 4294967295, r.D = r.D + c & 4294967295, r.E = r.E + s & 4294967295 109 | } 110 | 111 | function wordToBytes(r, t, e) { 112 | var a; 113 | for (a = 3; a >= 0; a--) t[e + a] = 255 & r, r >>>= 8 114 | } 115 | 116 | function rotateLeft(r, t) { 117 | return (r & (1 << 32 - t) - 1) << t | r >>> 32 - t 118 | } 119 | 120 | function hexStringToMP(r) { 121 | var t, e, a = Math.ceil(r.length / 4), 122 | n = new JSMPnumber; 123 | for (n.size = a, t = 0; a > t; t++) e = r.substr(4 * t, 4), n.data[a - 1 - t] = parseInt(e, 16); 124 | return n 125 | } 126 | 127 | function MGF(r, t) { 128 | if (t > 4096) return null; 129 | var e = r.slice(0), 130 | a = e.length; 131 | e[a++] = 0, e[a++] = 0, e[a++] = 0, e[a] = 0; 132 | for (var n = 0, o = []; o.length < t;) e[a] = n++, o = o.concat(SHA1(e)); 133 | return o.slice(0, t) 134 | } 135 | 136 | function XORarrays(r, t) { 137 | if (r.length != t.length) return null; 138 | for (var e = [], a = r.length, n = 0; a > n; n++) e[n] = r[n] ^ t[n]; 139 | return e 140 | } 141 | 142 | function byteArrayToBase64(r) { 143 | var t, e, a = r.length, 144 | n = ""; 145 | for (t = a - 3; t >= 0; t -= 3) n += base64Encode(e = r[t] | r[t + 1] << 8 | r[t + 2] << 16, 4); 146 | var o = a % 3; 147 | for (e = 0, t += 2; t >= 0; t--) e = e << 8 | r[t]; 148 | return 1 == o ? n = n + base64Encode(e << 16, 2) + "==" : 2 == o && (n = n + base64Encode(e << 8, 3) + "="), n 149 | } 150 | 151 | function byteArrayToMP(r) { 152 | var t = new JSMPnumber, 153 | e = 0, 154 | a = r.length, 155 | n = a >> 1; 156 | for (e = 0; n > e; e++) t.data[e] = r[2 * e] + (r[1 + 2 * e] << 8); 157 | return a % 2 && (t.data[e++] = r[a - 1]), t.size = e, t 158 | } 159 | 160 | function mpToByteArray(r) { 161 | var t = [], 162 | e = 0, 163 | a = r.size; 164 | for (e = 0; a > e; e++) { 165 | t[2 * e] = 255 & r.data[e]; 166 | var n = r.data[e] >>> 8; 167 | t[2 * e + 1] = n 168 | } 169 | return t 170 | } 171 | 172 | function modularExp(r, t, e) { 173 | for (var a = [], n = 0; t > 0;) a[n] = 1 & t, t >>>= 1, n++; 174 | for (var o = duplicateMP(r), i = n - 2; i >= 0; i--) o = modularMultiply(o, o, e), 1 == a[i] && (o = modularMultiply(o, r, e)); 175 | return o 176 | } 177 | 178 | function JSMPnumber() { 179 | this.size = 1, this.data = [], this.data[0] = 0 180 | } 181 | 182 | function duplicateMP(r) { 183 | var t = new JSMPnumber; 184 | return t.size = r.size, t.data = r.data.slice(0), t 185 | } 186 | 187 | function modularExp(r, t, e) { 188 | for (var a = [], n = 0; t > 0;) a[n] = 1 & t, t >>>= 1, n++; 189 | for (var o = duplicateMP(r), i = n - 2; i >= 0; i--) o = modularMultiply(o, o, e), 1 == a[i] && (o = modularMultiply(o, r, e)); 190 | return o 191 | } 192 | 193 | function modularMultiply(r, t, e) { 194 | return divideMP(multiplyMP(r, t), e).r 195 | } 196 | 197 | function multiplyMP(r, t) { 198 | var e, a, n = new JSMPnumber; 199 | for (n.size = r.size + t.size, e = 0; e < n.size; e++) n.data[e] = 0; 200 | var o = r.data, 201 | i = t.data, 202 | u = n.data; 203 | if (r == t) { 204 | for (e = 0; e < r.size; e++) u[2 * e] += o[e] * o[e]; 205 | for (e = 1; e < r.size; e++) 206 | for (a = 0; e > a; a++) u[e + a] += 2 * o[e] * o[a] 207 | } else 208 | for (e = 0; e < r.size; e++) 209 | for (a = 0; a < t.size; a++) u[e + a] += o[e] * i[a]; 210 | return normalizeJSMP(n), n 211 | } 212 | 213 | function normalizeJSMP(r) { 214 | var t, e, a, n; 215 | for (a = r.size, e = 0, t = 0; a > t; t++) n = r.data[t], n += e, n -= 65536 * (e = Math.floor(n / 65536)), r.data[t] = n 216 | } 217 | 218 | function removeLeadingZeroes(r) { 219 | for (var t = r.size - 1; t > 0 && 0 == r.data[t--];) r.size-- 220 | } 221 | 222 | function divideMP(r, t) { 223 | var e = r.size, 224 | a = t.size, 225 | n = t.data[a - 1], 226 | o = t.data[a - 1] + t.data[a - 2] / 65536, 227 | i = new JSMPnumber; 228 | i.size = e - a + 1, r.data[e] = 0; 229 | for (var u = e - 1; u >= a - 1; u--) { 230 | var f = u - a + 1, 231 | l = Math.floor((65536 * r.data[u + 1] + r.data[u]) / o); 232 | if (l > 0) { 233 | var d = multiplyAndSubtract(r, l, t, f); 234 | for (0 > d && multiplyAndSubtract(r, --l, t, f); d > 0 && r.data[u] >= n;)(d = multiplyAndSubtract(r, 1, t, f)) > 0 && l++ 235 | } 236 | i.data[f] = l 237 | } 238 | return removeLeadingZeroes(r), { 239 | q: i, 240 | r: r 241 | } 242 | } 243 | 244 | function multiplyAndSubtract(r, t, e, a) { 245 | var n, o = r.data.slice(0), 246 | i = 0, 247 | u = r.data; 248 | for (n = 0; n < e.size; n++) { 249 | var f = i + e.data[n] * t; 250 | (f -= 65536 * (i = f >>> 16)) > u[n + a] ? (u[n + a] += 65536 - f, i++) : u[n + a] -= f 251 | } 252 | return i > 0 && (u[n + a] -= i), u[n + a] < 0 ? (r.data = o.slice(0), -1) : 1 253 | } 254 | 255 | function base64Encode(r, t) { 256 | var e, a = ""; 257 | for (e = t; 4 > e; e++) r >>= 6; 258 | for (e = 0; t > e; e++) a = mapByteToBase64(63 & r) + a, r >>= 6; 259 | return a 260 | } 261 | 262 | function mapByteToBase64(r) { 263 | return r >= 0 && 26 > r ? String.fromCharCode(65 + r) : r >= 26 && 52 > r ? String.fromCharCode(97 + r - 26) : r >= 52 && 62 > r ? String.fromCharCode(48 + r - 52) : 62 == r ? "+" : "/" 264 | } 265 | 266 | function PackageNewPwdOnly(r) { 267 | var t = [], 268 | e = 0; 269 | t[e++] = 1, t[e++] = 1; 270 | var a, n = r.length; 271 | for (t[e++] = n, a = 0; n > a; a++) t[e++] = 127 & r.charCodeAt(a); 272 | return t[e++] = 0, t[e++] = 0, t 273 | } -------------------------------------------------------------------------------- /config.yml: -------------------------------------------------------------------------------- 1 | threads: 5 # THREADS Amount 2 | solver: "" # CAPSOLVER , CAPBYPASS 3 | capKey: "" # CAPTCHA KEY 4 | -------------------------------------------------------------------------------- /input/proxies.txt: -------------------------------------------------------------------------------- 1 | user:pass@ip:port 2 | please use good proxies for good results 😪 3 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | from bs4 import BeautifulSoup 2 | import re 3 | import tls_client 4 | import httpx 5 | from tls_client.exceptions import TLSClientExeption 6 | 7 | import base64 8 | import os 9 | import time 10 | import random 11 | import string 12 | import json 13 | import tls_client 14 | from execjs import compile as js_compile 15 | import requests 16 | from colorama import init, Fore 17 | import capsolver 18 | import yaml 19 | from datetime import datetime 20 | import concurrent.futures 21 | import ctypes 22 | import imaplib 23 | 24 | config = yaml.safe_load(open("config.yml", "r").read()) 25 | 26 | init() 27 | print(f''' 28 | 29 | {Fore.CYAN} 30 | 31 | ░█████╗░██╗░░░██╗████████╗██╗░░░░░░█████╗░░█████╗░██╗░░██╗ 32 | ██╔══██╗██║░░░██║╚══██╔══╝██║░░░░░██╔══██╗██╔══██╗██║░██╔╝ 33 | ██║░░██║██║░░░██║░░░██║░░░██║░░░░░██║░░██║██║░░██║█████═╝░ 34 | ██║░░██║██║░░░██║░░░██║░░░██║░░░░░██║░░██║██║░░██║██╔═██╗░ 35 | ╚█████╔╝╚██████╔╝░░░██║░░░███████╗╚█████╔╝╚█████╔╝██║░╚██╗ 36 | ░╚════╝░░╚═════╝░░░░╚═╝░░░╚══════╝░╚════╝░░╚════╝░╚═╝░░╚═╝ 37 | https://github.com/exploited7/outlook-account-creator 38 | https://guns.lol/exploited7 39 | 40 | 41 | ''') 42 | 43 | class Encryptor: 44 | def __init__(self): 45 | self._cipher = js_compile(open("cipher_value.js").read()) 46 | 47 | def encrypt_value(self, password, num, key) -> str: 48 | return self._cipher.call("encrypt", password, num, key) 49 | 50 | 51 | GENNED = 0 52 | LOCKED = 0 53 | 54 | def solvecap(proxy,arkoseBlob): 55 | try: 56 | if config['solver'] == 'CAPSOLVER': # down do not use 57 | apiKeyyy = config['capKey'] 58 | payload = { 59 | "clientKey":apiKeyyy, 60 | "appId":"8C7C8A1B-0404-4E00-80C8-1C05A569CB57", 61 | "task": { 62 | "type": "FunCaptchaTaskProxyLess", 63 | "websitePublicKey": "B7D8911C-5CC8-A9A3-35B0-554ACEE604DA", 64 | "websiteURL": "https://signup.live.com", 65 | "data": '{"blob": "' + arkoseBlob + '"}', 66 | #"proxy": proxy 67 | } 68 | } 69 | 70 | result = requests.post("https://api.capsolver.com/createTask", json=payload) 71 | task_id = result.json()["taskId"] 72 | payload = {"taskId": task_id,"clientKey":apiKeyyy} 73 | while True: 74 | result = requests.post("https://api.capsolver.com/getTaskResult",json=payload) 75 | data = result.json() 76 | if data['status'] == 'failed': 77 | return solvecap(proxy,arkoseBlob) 78 | elif data["status"] != "ready": 79 | continue 80 | capkey = data["solution"]["token"] 81 | return capkey 82 | 83 | 84 | elif config['solver'] == 'EZ-CAPTCHA': # idk how is it going rn 85 | apiKeyyy = config['capKey'] 86 | payload = { 87 | "clientKey": apiKeyyy, 88 | "task": { 89 | "websiteURL": "https://iframe.arkoselabs.com/", 90 | "websiteKey": "B7D8911C-5CC8-A9A3-35B0-554ACEE604DA", 91 | "type": "FuncaptchaTaskProxyless", 92 | "data": arkoseBlob, 93 | "funcaptchaApiJSSubdomain": "" 94 | } 95 | } 96 | 97 | result = requests.post("https://api.ez-captcha.com/createTask", json=payload) 98 | task_id = result.json()["taskId"] 99 | payload = {"taskId": task_id,"clientKey":apiKeyyy} 100 | while True: 101 | result = requests.post("https://api.ez-captcha.com/getTaskResult",json=payload) 102 | data = result.json() 103 | if data['status'] == 'failed': 104 | return solvecap(proxy,arkoseBlob) 105 | elif data["status"] != "ready": 106 | continue 107 | capkey = data["solution"]["token"] 108 | return capkey 109 | 110 | elif config['solver'] == "CAPBYPASS": 111 | parts = proxy.split('@') 112 | if len(parts) == 2: 113 | user_pass, ip_port = parts 114 | proxy = f"{ip_port}:{user_pass}" 115 | apiKeyyy = config['capKey'] 116 | payload = { 117 | "clientKey":apiKeyyy, 118 | "task": { 119 | "type": "FunCaptchaTask", 120 | "websitePublicKey": "B7D8911C-5CC8-A9A3-35B0-554ACEE604DA", 121 | "websiteURL": "https://www.signu.live.com", 122 | "data": "{\"blob\": \""+arkoseBlob+"\"}", 123 | "proxy":proxy 124 | 125 | } 126 | } 127 | 128 | result = requests.post("https://capbypass.com/api/createTask", json=payload) 129 | task_id = result.json()["taskId"] 130 | payload = {"taskId": task_id,"clientKey":apiKeyyy} 131 | while True: 132 | result = requests.post("https://capbypass.com/api/getTaskResult",json=payload) 133 | data = result.json() 134 | if data['errorId'] == 1: 135 | return None 136 | elif data["status"] != "DONE": 137 | continue 138 | capkey = data["solution"] 139 | return capkey 140 | 141 | except Exception as e: 142 | print('Failed to solve captcha.') 143 | return None 144 | 145 | def set_cmd_window_title(GENNED, LOCKED): 146 | if platform.system() == 'Windows': 147 | 148 | title = f"[Exploited7 justmanooo] | [ Generated : {GENNED} ] [ Failed : {LOCKED} ]" 149 | ctypes.windll.kernel32.SetConsoleTitleW(title) 150 | 151 | else: 152 | return " NOT MF WINDOWS 153 | 154 | set_cmd_window_title(GENNED, LOCKED) 155 | 156 | 157 | def get_timestamp(): 158 | time_idk = time.strftime("%H:%M:%S") 159 | timestamp = f"{time_idk}" 160 | return timestamp 161 | 162 | 163 | def decode_url(encoded_string): 164 | decoded_string = re.sub( 165 | r"\\u([0-9a-fA-F]{4})", lambda m: chr(int(m.group(1), 16)), encoded_string 166 | ) 167 | return decoded_string 168 | 169 | 170 | def generate_ai_session(): 171 | session_id = base64.urlsafe_b64encode(os.urandom(16)).decode("utf-8").rstrip("=") 172 | 173 | timestamp = str(int(time.time() * 1000)) 174 | 175 | ai_session = f"{session_id}|{timestamp}|{timestamp}" 176 | 177 | return ai_session 178 | 179 | 180 | 181 | 182 | def generate_random(): 183 | username = "".join(random.choices(string.ascii_lowercase + string.digits, k=10)) 184 | email = username 185 | return email 186 | 187 | 188 | def decode_enc(encoded_string): 189 | decoded_string = encoded_string.replace("\\\\", "\\") 190 | 191 | decoded_string = re.sub( 192 | r"\\u([0-9a-fA-F]{4})", lambda m: chr(int(m.group(1), 16)), decoded_string 193 | ) 194 | 195 | return decoded_string 196 | 197 | 198 | def read_proxies(file_path): 199 | with open(file_path, "r") as file: 200 | proxies = file.readlines() 201 | return [proxy.strip() for proxy in proxies] 202 | 203 | 204 | proxies = read_proxies("input/proxies.txt") 205 | proxy_index = 0 206 | 207 | def get_next_proxy(): 208 | global proxy_index 209 | if not proxies: 210 | return None 211 | proxy = proxies[proxy_index] 212 | proxy_index = (proxy_index + 1) % len(proxies) 213 | return proxy 214 | 215 | 216 | def gen(): 217 | try: 218 | global GENNED, LOCKED 219 | arkoseBlob = "" 220 | password = generate_random() 221 | proxy = get_next_proxy() 222 | 223 | email = f"{generate_random()}@outlook.com" 224 | session = tls_client.Session( 225 | 226 | client_identifier="chrome126", 227 | 228 | random_tls_extension_order=True 229 | 230 | ) 231 | headers = { 232 | "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 233 | "Accept-Encoding": "gzip, deflate, br, zstd", 234 | "Accept-Language": "en-US,en;q=0.9", 235 | "Connection": "keep-alive", 236 | "Host": "signup.live.com", 237 | "Upgrade-Insecure-Requests": "1", 238 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36", 239 | } 240 | resp1 = session.get("https://signup.live.com/signup", headers=headers,proxy=f"http://{proxy}") 241 | soup = BeautifulSoup(resp1.text, "html.parser") 242 | link_tag = soup.find("a") 243 | if link_tag: 244 | href_value = link_tag.get("href") 245 | coo1 = resp1.cookies 246 | cookies = { 247 | "amsc": coo1.get("amsc"), 248 | } 249 | headers["Host"] = "login.live.com" 250 | 251 | resp2 = session.get(href_value, headers=headers, cookies=cookies,proxy=f"http://{proxy}") 252 | 253 | coo2 = resp2.cookies 254 | uaid = coo2.get("uaid") 255 | 256 | headers["Host"] = "signup.live.com" 257 | resp3 = session.get( 258 | f"https://signup.live.com/signup?lic=1&uaid={uaid}", 259 | headers=headers, 260 | cookies=cookies,proxy=f"http://{proxy}" 261 | ) 262 | 263 | coo3 = resp3.cookies 264 | cookies = { 265 | "amsc": coo3.get("amsc"), 266 | } 267 | js_content = resp3.text 268 | 269 | match = re.search(r'https://fpt\.live\.com/\?[^"\']+', js_content) 270 | if match: 271 | fptLink1 = match.group(0) 272 | 273 | api_canary_match = re.search(r'"apiCanary"\s*:\s*"([^"]+)"', js_content) 274 | if api_canary_match: 275 | api_canary_value = api_canary_match.group(1) 276 | #print(api_canary_value) 277 | else: 278 | return None 279 | api_canary_match = re.search(r'"sHipFid"\s*:\s*"([^"]+)"', js_content) 280 | if api_canary_match: 281 | fid = api_canary_match.group(1) 282 | #print(fid) 283 | else: 284 | return None 285 | api_canary_match = re.search(r'"SKI"\s*:\s*"([^"]+)"', js_content) 286 | if api_canary_match: 287 | api_canary_value = api_canary_match.group(1) 288 | else: 289 | okok = None 290 | hpgid_match = re.search(r'"hpgid"\s*:\s*(\d+)', js_content) 291 | if hpgid_match: 292 | hpgid_value = hpgid_match.group(1) 293 | else: 294 | hpgid_value = 200225 295 | 296 | i_ui_flavor_match = re.search(r'"iUiFlavor":\s*(\d+)', js_content) 297 | if i_ui_flavor_match: 298 | i_ui_flavor_value = int(i_ui_flavor_match.group(1)) 299 | 300 | else: 301 | i_ui_flavor_match2 = re.search(r'"uiflvr":\s*(\d+)', js_content) 302 | i_ui_flavor_value = i_ui_flavor_match2.group(1) 303 | 304 | scenario_id_match = re.search(r'"iScenarioId"\s*:\s*(\d+)', js_content) 305 | if scenario_id_match: 306 | scenario_id = int(scenario_id_match.group(1)) 307 | 308 | else: 309 | scenario_id_match2 = re.search(r'"scid"\s*:\s*(\d+)', js_content) 310 | scenario_id = int(scenario_id_match2.group(1)) 311 | 312 | key_match = re.search(r'var\s+Key\s*=\s*"([^"]+)"', js_content) 313 | random_num_match = re.search(r'var\s+randomNum\s*=\s*"([^"]+)"', js_content) 314 | ski_match = re.search(r'var\s+SKI\s*=\s*"([^"]+)"', js_content) 315 | 316 | if key_match and random_num_match and ski_match: 317 | key = key_match.group(1) 318 | random_num = random_num_match.group(1) 319 | ski = ski_match.group(1) 320 | 321 | else: 322 | return None 323 | 324 | headers['Referer'] = "https://signup.live.com/" 325 | headers['Host'] = "fpt.live.com" 326 | resp4 = session.get( 327 | fptLink1, headers=headers, cookies=cookies,proxy=f"http://{proxy}" 328 | ) # -> https://fpt.live.com/?session_id=0ebabd70fbb44990a3d667010dc1e625&CustomerId=33e01921-4d64-4f8c-a055-5bdaffd5e33d&PageId=SU 329 | coo4 = resp4.cookies 330 | cookies = { 331 | "MUID": coo4.get("MUID"), 332 | } 333 | cookies = { 334 | "fptctx2": coo4.get("fptctx2"), 335 | } 336 | # print(resp4.cookies) 337 | html_content = resp4.text 338 | 339 | soup = BeautifulSoup(html_content, "html.parser") 340 | script_content = None 341 | for script in soup.find_all("script"): 342 | if script.string and "txnId" in script.string: 343 | script_content = script.string 344 | break 345 | if script_content: 346 | txnId = re.search(r"txnId\s*=\s*'([^']+)'", script_content).group(1) 347 | ticks = re.search(r"ticks\s*=\s*'([^']+)'", script_content).group(1) 348 | rid = re.search(r"rid\s*=\s*'([^']+)'", script_content).group(1) 349 | authKey = re.search(r"authKey\s*=\s*'([^']+)'", script_content).group(1) 350 | cid = re.search(r"cid\s*=\s*'([^']+)'", script_content).group(1) 351 | 352 | else: 353 | return None 354 | 355 | headers['Referer'] = "https://fpt.live.com/" 356 | headers['Host'] = "fpt2.microsoft.com" 357 | resp5 = session.get( 358 | f"https://fpt2.microsoft.com/Clear.HTML?ctx=Ls1.0&wl=False&session_id={txnId}&id={rid}&w={ticks}&tkt={authKey}&CustomerId={cid}", 359 | headers=headers,proxy=f"http://{proxy}" 360 | ) 361 | 362 | 363 | coo5 = resp5.cookies # muid (real) 364 | 365 | data = { 366 | "signInName": email, 367 | "uaid": uaid, 368 | "includeSuggestions": True, 369 | "uiflvr": 1001, 370 | "scid": 100118, 371 | "hpgid": 200639, 372 | } 373 | 374 | cookies = { 375 | "amsc": coo3.get("amsc"), 376 | "ai_session": generate_ai_session(), 377 | "MUID": coo4.get("MUID"), 378 | "fptctx2": coo4.get("fptctx2"), 379 | "_pxvid": "5bbc9e2f-13e0-11ef-ba24-69de9190bebd", 380 | "_px3": "303fa43a2a720026c7440d0b95bf90b9bd2853cd4060a3bf40a62798b034d00d%3AHyCHygk9SecaEgt3KTvuIvTZ7UdAeUOUjiMgZoHfiTA8ed388dghd%2FC0rCd30nc1JwFa3KUlvlqu02uYtSDijg%3D%3D%3A1000%3APccVug%2B7WU1UnCvkHBEXYSMbb%2B6ZLc7Ks32%2B8VJOCCEWlnC%2BuWf2R7GtC6RpX5gkv2NzIUEUgWFYJl9AXrARBqXndpQd0PVWYzb4O6Bp6OX%2Bt0FVnTQ419fwXou0BQY58QeLmqLdFXNQOiaYtvFV72KkC6PSgRD85ecuLSv%2FgUWKHEsbYzCaQ8nd0E%2FTxbHxXK47wJHHBXY4KoJEdQsYXRvPLGRZHPj%2Fy43PL75PPRk%3D", 381 | "_pxde": "34858ae13dd0c46cca55769a4bc1e180cd7753f885234f7f72262df626f2ab1d%3AeyJ0aW1lc3RhbXAiOjE3MTU5MDM5ODE4MzUsImZfa2IiOjAsImlwY19pZCI6W119", 382 | } 383 | decoded = decode_url(api_canary_value) 384 | #print(decoded) 385 | 386 | headers = { 387 | "Accept": "application/json", 388 | "Accept-Encoding": "gzip, deflate, br, zstd", 389 | "Accept-Language": "en-US,en;q=0.9", 390 | "canary": decoded, 391 | "Cookie": "; ".join([f"{k}={v}" for k, v in cookies.items() if v is not None]), 392 | "Connection": "keep-alive", 393 | "Content-Length": str(len(json.dumps(data))), 394 | "Content-type": "application/json; charset=utf-8", 395 | "correlationId": uaid, 396 | "Host": "signup.live.com", 397 | "hpgact": "0", 398 | "hpgid": hpgid_value, 399 | "Origin": "https://signup.live.com", 400 | "Referer": f"https://signup.live.com/signup?lic=1&amp;uaid={uaid}", 401 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36", 402 | } 403 | 404 | resp6 = session.post( 405 | f"https://signup.live.com/API/CheckAvailableSigninNames", 406 | headers=headers, 407 | json=data,proxy=f"http://{proxy}" 408 | ) 409 | #print(resp6.text) 410 | apiCanary = resp6.json()["apiCanary"] 411 | telemetryContext = resp6.json()["telemetryContext"] 412 | timestamp = str(int(time.time() * 1000)) 413 | 414 | data = { 415 | "pageApiId": 200640, 416 | "clientDetails": [], 417 | "country": "EG", 418 | "userAction": "Action_ClientSideTelemetry", 419 | "source": "PageView", 420 | "clientTelemetryData": { 421 | "category": "PageView", 422 | "pageName": "200640", 423 | "eventInfo": { 424 | "timestamp": timestamp, 425 | "enforcementSessionToken": None, 426 | "appVersion": None, 427 | "networkType": None, 428 | }, 429 | }, 430 | "cxhFunctionRes": None, 431 | "netId": None, 432 | "uiflvr": 1001, 433 | "uaid": uaid, 434 | "scid": 100118, 435 | "hpgid": 200640, 436 | } 437 | 438 | headers = { 439 | "Accept": "application/json", 440 | "Accept-Encoding": "gzip, deflate, br, zstd", 441 | "Accept-Language": "en-US,en;q=0.9", 442 | "canary": apiCanary, 443 | "Connection": "keep-alive", 444 | "Content-Length": str(len(json.dumps(data))), 445 | "Content-Type": "application/json", 446 | "Cookie": f'amsc={coo3.get("amsc")}; MicrosoftApplicationsTelemetryDeviceId=dfa874b8-9e17-4654-bb56-42187176e7ad; MUID={coo4.get("MUID")}; fptctx2={coo4.get("fptctx2")}; clrc={{"19861":["d7PFy/1V","+VC+x0R6","FutSZdvn"]}}; ai_session={generate_ai_session()}', 447 | "Host": "signup.live.com", 448 | "hpgid": "200640", 449 | "Origin": "https://signup.live.com", 450 | "Referer": "https://signup.live.com/?lic=1", 451 | "scid": "100118", 452 | "tcxt": telemetryContext, 453 | "uaid": uaid, 454 | "uiflvr": "1001", 455 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36", 456 | "x-ms-apiTransport": "xhr", 457 | "x-ms-apiVersion": "2", 458 | } 459 | res = session.post( 460 | "https://signup.live.com/API/ReportClientEvent?lic=1", 461 | headers=headers, 462 | json=data,proxy=f"http://{proxy}" 463 | ) 464 | 465 | apiCanary = res.json()["apiCanary"] 466 | telemetryContext = res.json()["telemetryContext"] 467 | 468 | current_time = datetime.utcnow() 469 | 470 | formatted_time = current_time.strftime("%Y-%m-%dT%H:%M:%S.%fZ") 471 | 472 | encryptor = Encryptor() 473 | encrypted_value = encryptor.encrypt_value(password, random_num, key) 474 | data = { 475 | "RequestTimeStamp": formatted_time, 476 | "MemberName": email, 477 | "CheckAvailStateMap": [f"{email}:undefined"], 478 | "EvictionWarningShown": [], 479 | "UpgradeFlowToken": {}, 480 | "FirstName": 'justmanooo', 481 | "LastName": 'exploited7', 482 | "MemberNameChangeCount": 1, 483 | "MemberNameAvailableCount": 1, 484 | "MemberNameUnavailableCount": 0, 485 | "CipherValue": encrypted_value, 486 | "SKI": ski, 487 | "BirthDate": "17:11:1999", 488 | "Country": "EG", 489 | "IsOptOutEmailDefault": False, 490 | "IsOptOutEmailShown": True, 491 | "IsOptOutEmail": False, 492 | "LW": True, 493 | "SiteId": "68692", 494 | "IsRDM": 0, 495 | "WReply": None, 496 | "ReturnUrl": None, 497 | "SignupReturnUrl": None, 498 | "uiflvr": 1001, 499 | "uaid": uaid, 500 | "SuggestedAccountType": "EASI", 501 | "HFId": fid, 502 | "encAttemptToken": "", 503 | "dfpRequestId": "", 504 | "PhoneRepRiskScoreDetails": "", 505 | "RiskAssessmentDetails": "", 506 | "RepMapRequestIdentifierDetails": "", 507 | "scid": 100118, 508 | "hpgid": 200650, 509 | } 510 | headersx = { 511 | "Accept": "application/json", 512 | "Accept-Encoding": "gzip, deflate, br, zstd", 513 | "Accept-Language": "en-US,en;q=0.9", 514 | "canary": apiCanary, 515 | "Connection": "keep-alive", 516 | "Content-Length": str(len(json.dumps(data))), 517 | "Content-Type": "application/json", 518 | "Cookie": f'amsc={coo3.get("amsc")}; MicrosoftApplicationsTelemetryDeviceId=dfa874b8-9e17-4654-bb56-42187176e7ad; MUID={coo4.get("MUID")}; fptctx2={coo4.get("fptctx2")}; clrc={{"19861":["d7PFy/1V","+VC+x0R6","FutSZdvn"]}}; ai_session={generate_ai_session()}', 519 | "Host": "signup.live.com", 520 | "hpgid": "200650", 521 | "Origin": "https://signup.live.com", 522 | "Referer": "https://signup.live.com/?lic=1", 523 | "scid": "100118", 524 | "tcxt": telemetryContext, 525 | "uaid": uaid, 526 | "uiflvr": "1001", 527 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36", 528 | "x-ms-apiTransport": "xhr", 529 | "x-ms-apiVersion": "2", 530 | } 531 | resp7 = session.post( 532 | "https://signup.live.com/API/CreateAccount?lic=1", headers=headersx, json=data,proxy=f"http://{proxy}" 533 | ) 534 | resp_data = json.loads(resp7.text) 535 | 536 | if "error" in resp_data: 537 | error_data = resp_data["error"] 538 | if "telemetryContext" in error_data: 539 | telemetryContext = error_data["telemetryContext"] 540 | if "data" in error_data: 541 | data = json.loads(error_data["data"]) 542 | if "riskAssessmentDetails" in data: 543 | RiskAssessmentDetails = data["riskAssessmentDetails"] 544 | 545 | if "repMapRequestIdentifierDetails" in data: 546 | repMapRequestIdentifierDetails = data[ 547 | "repMapRequestIdentifierDetails" 548 | ] 549 | if "dfpRequestId" in data: 550 | dfpRequestId = data["dfpRequestId"] 551 | 552 | if "arkoseBlob" in data: 553 | arkoseBlob = data["arkoseBlob"] 554 | #print(arkoseBlob) 555 | 556 | else: 557 | return None 558 | 559 | solution = solvecap(proxy,arkoseBlob) 560 | if solution == None: 561 | return "Failed" 562 | print(f"{Fore.LIGHTBLACK_EX}[{get_timestamp()}] ! {Fore.CYAN} Solved Captcha {Fore.LIGHTBLACK_EX}[ {solution[0:33]} ]") 563 | 564 | timestamp = str(int(time.time() * 1000)) 565 | 566 | data = { 567 | "pageApiId": 201040, 568 | "clientDetails": [], 569 | "country": "EG", 570 | "userAction": "Action_LoadEnforcement,Action_ClientSideTelemetry", 571 | "source": "UserAction", 572 | "clientTelemetryData": { 573 | "category": "UserAction", 574 | "pageName": "201040", 575 | "eventInfo": { 576 | "timestamp": timestamp, 577 | "enforcementSessionToken": None, 578 | "appVersion": None, 579 | "networkType": None, 580 | }, 581 | }, 582 | "cxhFunctionRes": None, 583 | "netId": None, 584 | "uiflvr": 1001, 585 | "uaid": uaid, 586 | "scid": 100118, 587 | "hpgid": 201040, 588 | } 589 | headers['Content-Length'] = str(len(json.dumps(data))) 590 | headers['tcxt'] = telemetryContext 591 | headers['uaid'] = uaid 592 | headers['canary'] = apiCanary 593 | headers['Cookie'] = f'amsc={coo3.get("amsc")}; MUID={coo5.get("MUID")}; fptctx2={coo4.get("fptctx2")}; clrc={{"19861":["d7PFy/1V","+VC+x0R6","FutSZdvn"]}}; ai_session={generate_ai_session()}' 594 | 595 | x = session.post( 596 | "https://signup.live.com/API/ReportClientEvent?lic=1", 597 | headers=headers, 598 | json=data,proxy=f"http://{proxy}" 599 | ) 600 | apiCanary = x.json()["apiCanary"] 601 | telemetryContext = x.json()["telemetryContext"] 602 | 603 | zz = solution 604 | data = { 605 | "pageApiId": 201040, 606 | "clientDetails": [], 607 | "country": "EG", 608 | "userAction": "Action_CompleteEnforcement,Action_ClientSideTelemetry", 609 | "source": "UserAction", 610 | "clientTelemetryData": { 611 | "category": "UserAction", 612 | "pageName": "201040", 613 | "eventInfo": { 614 | "timestamp": 1715957630419, 615 | "enforcementSessionToken": zz, 616 | "appVersion": None, 617 | "networkType": None, 618 | }, 619 | }, 620 | "cxhFunctionRes": None, 621 | "netId": None, 622 | "uiflvr": 1001, 623 | "uaid": uaid, 624 | "scid": 100118, 625 | "hpgid": 201040, 626 | } 627 | # headers['Content-Length'] = str(len(json.dumps(data))) 628 | headers.pop('Content-Length') 629 | headers['tcxt'] = telemetryContext 630 | headers['uaid'] = uaid 631 | headers['canary'] = apiCanary 632 | headers['Cookie'] = f'amsc={coo3.get("amsc")}; MUID={coo5.get("MUID")}; fptctx2={coo4.get("fptctx2")}; clrc={{"19861":["d7PFy/1V","+VC+x0R6","FutSZdvn"]}}; ai_session={generate_ai_session()}' 633 | 634 | c = session.post( 635 | "https://signup.live.com/API/ReportClientEvent?lic=1", 636 | headers=headers, 637 | json=data,proxy=f"http://{proxy}" 638 | ) 639 | apiCanary = c.json()["apiCanary"] 640 | telemetryContext = c.json()["telemetryContext"] 641 | current_time = datetime.utcnow() 642 | 643 | formatted_time = current_time.strftime("%Y-%m-%dT%H:%M:%S.%fZ") 644 | 645 | encryptor = Encryptor() 646 | encrypted_value = encryptor.encrypt_value(password, random_num, key) 647 | data = { 648 | "RequestTimeStamp": formatted_time, 649 | "MemberName": email, 650 | "CheckAvailStateMap": [f"{email}:undefined"], 651 | "EvictionWarningShown": [], 652 | "UpgradeFlowToken": {}, 653 | "FirstName": "manuel", 654 | "LastName": "emad", 655 | "Password": password, 656 | "MemberNameChangeCount": 1, 657 | "MemberNameAvailableCount": 1, 658 | "MemberNameUnavailableCount": 0, 659 | "CipherValue": encrypted_value, 660 | "SKI": ski, 661 | "BirthDate": "17:11:1999", 662 | "IsUserConsentedToChinaPIPL": False, 663 | "Country": "TR", 664 | "IsOptOutEmailDefault": True, 665 | "VerificationCode": None, 666 | "IsOptOutEmailShown": 1, 667 | "IsOptOutEmail": True, 668 | "VerificationCodeSlt": None, 669 | "PrefillMemberNamePassed": True, 670 | "LW": 1, 671 | "SiteId": "68692", 672 | "IsRDM": False, 673 | "WReply": None, 674 | "ReturnUrl": None, 675 | "SignupReturnUrl": None, 676 | "uiflvr": 1001, 677 | "uaid": uaid, 678 | "SuggestedAccountType": "EASI", 679 | "HFId": fid, 680 | "HType": "enforcement", 681 | "HSol": zz, 682 | "HPId": "B7D8911C-5CC8-A9A3-35B0-554ACEE604DA", 683 | "scid": 100118, 684 | "hpgid": 200639, 685 | } 686 | 687 | data['RiskAssessmentDetails'] = RiskAssessmentDetails 688 | 689 | headersx.pop('Content-Length') 690 | headersx['Cookie'] = f'amsc={coo3.get("amsc")}; MicrosoftApplicationsTelemetryDeviceId=dfa874b8-9e17-4654-bb56-42187176e7ad; MUID={coo4.get("MUID")}; fptctx2={coo4.get("fptctx2")}; clrc={{"19861":["d7PFy/1V","+VC+x0R6","FutSZdvn"]}}; ai_session={generate_ai_session()}' 691 | headersx['tcxt'] = telemetryContext 692 | headersx['uaid'] = uaid 693 | headersx['canary'] = apiCanary 694 | d = session.post( 695 | "https://signup.live.com/API/CreateAccount?lic=1", headers=headers, json=data,proxy=f"http://{proxy}" 696 | ) 697 | #print(d.text) 698 | if d.status_code == 200: 699 | print(f"{Fore.LIGHTBLACK_EX}[{get_timestamp()}] # {Fore.LIGHTCYAN_EX} Account created {Fore.LIGHTBLACK_EX}[ {email}:{password} ]") 700 | with open("output/Genned.txt", "a") as f: 701 | f.write(f"{email}:{password}\n") 702 | 703 | GENNED += 1 704 | set_cmd_window_title(GENNED, LOCKED) 705 | 706 | else: 707 | print(d.text) 708 | except TLSClientExeption: 709 | print(f"{Fore.LIGHTBLACK_EX}[{get_timestamp()}] ❌ {Fore.LIGHTRED_EX} Proxy Error {Fore.LIGHTBLACK_EX}[ {proxy[0:33]} ]") 710 | 711 | except Exception as e: 712 | # print(e) 713 | pass 714 | 715 | 716 | 717 | MAX_CONCURRENT_TASKS = config["threads"] 718 | 719 | 720 | def main(): 721 | while True: 722 | with concurrent.futures.ThreadPoolExecutor(max_workers=MAX_CONCURRENT_TASKS) as executor: 723 | futures = [executor.submit(gen) for _ in range(MAX_CONCURRENT_TASKS)] 724 | for future in concurrent.futures.as_completed(futures): 725 | try: 726 | future.result(timeout=60) 727 | except Exception as e: 728 | # print(e) 729 | pass 730 | 731 | if __name__ == "__main__": 732 | main() 733 | -------------------------------------------------------------------------------- /output/genned.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Exploited7/outlook-account-creator/921f1fb9c77cc764722fb2e2cc3ea2e210d29826/output/genned.txt -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | httpx 2 | beautifulsoup4 3 | requests 4 | tls-client 5 | colorama 6 | capsolver 7 | pyyaml 8 | pyexecjs 9 | --------------------------------------------------------------------------------