| skipped 59 lines |
60 | 60 | | |
61 | 61 | | # 1337 mode configs, well you can add more lines if you add it to config file too. |
62 | 62 | | # You will need to add more lines in two places in cupp.py code as well... |
63 | | - | a = config.get("leet", "a") |
64 | | - | i = config.get("leet", "i") |
65 | | - | e = config.get("leet", "e") |
66 | | - | t = config.get("leet", "t") |
67 | | - | o = config.get("leet", "o") |
68 | | - | s = config.get("leet", "s") |
69 | | - | g = config.get("leet", "g") |
70 | | - | z = config.get("leet", "z") |
| 63 | + | leet = {} |
| 64 | + | leet["a"] = config.get("leet", "a") |
| 65 | + | leet["i"] = config.get("leet", "i") |
| 66 | + | leet["e"] = config.get("leet", "e") |
| 67 | + | leet["t"] = config.get("leet", "t") |
| 68 | + | leet["o"] = config.get("leet", "o") |
| 69 | + | leet["s"] = config.get("leet", "s") |
| 70 | + | leet["g"] = config.get("leet", "g") |
| 71 | + | leet["z"] = config.get("leet", "z") |
71 | 72 | | |
72 | 73 | | |
73 | 74 | | # for concatenations... |
| skipped 199 lines |
273 | 274 | | |
274 | 275 | | # We need some information first! |
275 | 276 | | |
| 277 | + | profile = {} |
| 278 | + | |
276 | 279 | | name = input("> First Name: ").lower() |
277 | 280 | | while len(name) == 0 or name == " " or name == " " or name == " ": |
278 | 281 | | print("\r\n[-] You must enter a name at least!") |
279 | 282 | | name = input("> Name: ").lower() |
280 | | - | name = str(name) |
| 283 | + | profile["name"] = str(name) |
281 | 284 | | |
282 | | - | surname = input("> Surname: ").lower() |
283 | | - | nick = input("> Nickname: ").lower() |
| 285 | + | profile["surname"] = input("> Surname: ").lower() |
| 286 | + | profile["nick"] = input("> Nickname: ").lower() |
284 | 287 | | birthdate = input("> Birthdate (DDMMYYYY): ") |
285 | 288 | | while len(birthdate) != 0 and len(birthdate) != 8: |
286 | 289 | | print("\r\n[-] You must enter 8 digits for birthday!") |
287 | 290 | | birthdate = input("> Birthdate (DDMMYYYY): ") |
288 | | - | birthdate = str(birthdate) |
| 291 | + | profile["birthdate"] = str(birthdate) |
289 | 292 | | |
290 | 293 | | print("\r\n") |
291 | 294 | | |
292 | | - | wife = input("> Partners) name: ").lower() |
293 | | - | wifen = input("> Partners) nickname: ").lower() |
| 295 | + | profile["wife"] = input("> Partners) name: ").lower() |
| 296 | + | profile["wifen"] = input("> Partners) nickname: ").lower() |
294 | 297 | | wifeb = input("> Partners) birthdate (DDMMYYYY): ") |
295 | 298 | | while len(wifeb) != 0 and len(wifeb) != 8: |
296 | 299 | | print("\r\n[-] You must enter 8 digits for birthday!") |
297 | 300 | | wifeb = input("> Partners birthdate (DDMMYYYY): ") |
298 | | - | wifeb = str(wifeb) |
| 301 | + | profile["wifeb"] = str(wifeb) |
299 | 302 | | print("\r\n") |
300 | 303 | | |
301 | | - | kid = input("> Child's name: ").lower() |
302 | | - | kidn = input("> Child's nickname: ").lower() |
| 304 | + | profile["kid"] = input("> Child's name: ").lower() |
| 305 | + | profile["kidn"] = input("> Child's nickname: ").lower() |
303 | 306 | | kidb = input("> Child's birthdate (DDMMYYYY): ") |
304 | 307 | | while len(kidb) != 0 and len(kidb) != 8: |
305 | 308 | | print("\r\n[-] You must enter 8 digits for birthday!") |
306 | 309 | | kidb = input("> Child's birthdate (DDMMYYYY): ") |
307 | | - | kidb = str(kidb) |
| 310 | + | profile["kidb"] = str(kidb) |
308 | 311 | | print("\r\n") |
309 | 312 | | |
310 | | - | pet = input("> Pet's name: ").lower() |
311 | | - | company = input("> Company name: ").lower() |
| 313 | + | profile["pet"] = input("> Pet's name: ").lower() |
| 314 | + | profile["company"] = input("> Company name: ").lower() |
312 | 315 | | print("\r\n") |
313 | 316 | | |
314 | | - | words = [""] |
| 317 | + | profile["words"] = [""] |
315 | 318 | | words1 = input( |
316 | 319 | | "> Do you want to add some key words about the victim? Y/[N]: " |
317 | 320 | | ).lower() |
| skipped 2 lines |
320 | 323 | | words2 = input( |
321 | 324 | | "> Please enter the words, separated by comma. [i.e. hacker,juice,black], spaces will be removed: " |
322 | 325 | | ).replace(" ", "") |
323 | | - | words = words2.split(",") |
| 326 | + | profile["words"] = words2.split(",") |
324 | 327 | | |
325 | | - | spechars = [""] |
326 | | - | spechars1 = input( |
| 328 | + | profile["spechars1"] = input( |
327 | 329 | | "> Do you want to add special chars at the end of words? Y/[N]: " |
328 | 330 | | ).lower() |
329 | | - | if spechars1 == "y": |
330 | | - | for spec1 in chars: |
331 | | - | spechars.append(spec1) |
332 | | - | for spec2 in chars: |
333 | | - | spechars.append(spec1 + spec2) |
334 | | - | for spec3 in chars: |
335 | | - | spechars.append(spec1 + spec2 + spec3) |
336 | 331 | | |
337 | | - | randnum = input( |
| 332 | + | profile["randnum"] = input( |
338 | 333 | | "> Do you want to add some random numbers at the end of words? Y/[N]:" |
339 | 334 | | ).lower() |
340 | | - | leetmode = input("> Leet mode? (i.e. leet = 1337) Y/[N]: ").lower() |
| 335 | + | profile["leetmode"] = input("> Leet mode? (i.e. leet = 1337) Y/[N]: ").lower() |
| 336 | + | |
| 337 | + | generate_wordlist_from_profile(profile) # generate the wordlist |
| 338 | + | |
| 339 | + | |
| 340 | + | def generate_wordlist_from_profile(profile): |
| 341 | + | """ Generates a wordlist from a given profile """ |
| 342 | + | |
| 343 | + | profile["spechars"] = [] |
| 344 | + | |
| 345 | + | if profile["spechars1"] == "y": |
| 346 | + | for spec1 in chars: |
| 347 | + | profile["spechars"].append(spec1) |
| 348 | + | for spec2 in chars: |
| 349 | + | profile["spechars"].append(spec1 + spec2) |
| 350 | + | for spec3 in chars: |
| 351 | + | profile["spechars"].append(spec1 + spec2 + spec3) |
341 | 352 | | |
342 | 353 | | print("\r\n[+] Now making a dictionary...") |
343 | 354 | | |
| skipped 1 lines |
345 | 356 | | |
346 | 357 | | # Birthdays first |
347 | 358 | | |
348 | | - | birthdate_yy = birthdate[-2:] |
349 | | - | birthdate_yyy = birthdate[-3:] |
350 | | - | birthdate_yyyy = birthdate[-4:] |
351 | | - | birthdate_xd = birthdate[1:2] |
352 | | - | birthdate_xm = birthdate[3:4] |
353 | | - | birthdate_dd = birthdate[:2] |
354 | | - | birthdate_mm = birthdate[2:4] |
| 359 | + | birthdate_yy = profile["birthdate"][-2:] |
| 360 | + | birthdate_yyy = profile["birthdate"][-3:] |
| 361 | + | birthdate_yyyy = profile["birthdate"][-4:] |
| 362 | + | birthdate_xd = profile["birthdate"][1:2] |
| 363 | + | birthdate_xm = profile["birthdate"][3:4] |
| 364 | + | birthdate_dd = profile["birthdate"][:2] |
| 365 | + | birthdate_mm = profile["birthdate"][2:4] |
355 | 366 | | |
356 | | - | wifeb_yy = wifeb[-2:] |
357 | | - | wifeb_yyy = wifeb[-3:] |
358 | | - | wifeb_yyyy = wifeb[-4:] |
359 | | - | wifeb_xd = wifeb[1:2] |
360 | | - | wifeb_xm = wifeb[3:4] |
361 | | - | wifeb_dd = wifeb[:2] |
362 | | - | wifeb_mm = wifeb[2:4] |
| 367 | + | wifeb_yy = profile["wifeb"][-2:] |
| 368 | + | wifeb_yyy = profile["wifeb"][-3:] |
| 369 | + | wifeb_yyyy = profile["wifeb"][-4:] |
| 370 | + | wifeb_xd = profile["wifeb"][1:2] |
| 371 | + | wifeb_xm = profile["wifeb"][3:4] |
| 372 | + | wifeb_dd = profile["wifeb"][:2] |
| 373 | + | wifeb_mm = profile["wifeb"][2:4] |
363 | 374 | | |
364 | | - | kidb_yy = kidb[-2:] |
365 | | - | kidb_yyy = kidb[-3:] |
366 | | - | kidb_yyyy = kidb[-4:] |
367 | | - | kidb_xd = kidb[1:2] |
368 | | - | kidb_xm = kidb[3:4] |
369 | | - | kidb_dd = kidb[:2] |
370 | | - | kidb_mm = kidb[2:4] |
| 375 | + | kidb_yy = profile["kidb"][-2:] |
| 376 | + | kidb_yyy = profile["kidb"][-3:] |
| 377 | + | kidb_yyyy = profile["kidb"][-4:] |
| 378 | + | kidb_xd = profile["kidb"][1:2] |
| 379 | + | kidb_xm = profile["kidb"][3:4] |
| 380 | + | kidb_dd = profile["kidb"][:2] |
| 381 | + | kidb_mm = profile["kidb"][2:4] |
371 | 382 | | |
372 | 383 | | # Convert first letters to uppercase... |
373 | 384 | | |
374 | | - | nameup = name.title() |
375 | | - | surnameup = surname.title() |
376 | | - | nickup = nick.title() |
377 | | - | wifeup = wife.title() |
378 | | - | wifenup = wifen.title() |
379 | | - | kidup = kid.title() |
380 | | - | kidnup = kidn.title() |
381 | | - | petup = pet.title() |
382 | | - | companyup = company.title() |
| 385 | + | nameup = profile["name"].title() |
| 386 | + | surnameup = profile["surname"].title() |
| 387 | + | nickup = profile["nick"].title() |
| 388 | + | wifeup = profile["wife"].title() |
| 389 | + | wifenup = profile["wifen"].title() |
| 390 | + | kidup = profile["kid"].title() |
| 391 | + | kidnup = profile["kidn"].title() |
| 392 | + | petup = profile["pet"].title() |
| 393 | + | companyup = profile["company"].title() |
383 | 394 | | |
384 | 395 | | wordsup = [] |
385 | | - | wordsup = list(map(str.title, words)) |
| 396 | + | wordsup = list(map(str.title, profile["words"])) |
386 | 397 | | |
387 | | - | word = words + wordsup |
| 398 | + | word = profile["words"] + wordsup |
388 | 399 | | |
389 | 400 | | # reverse a name |
390 | 401 | | |
391 | | - | rev_name = name[::-1] |
| 402 | + | rev_name = profile["name"][::-1] |
392 | 403 | | rev_nameup = nameup[::-1] |
393 | | - | rev_nick = nick[::-1] |
| 404 | + | rev_nick = profile["nick"][::-1] |
394 | 405 | | rev_nickup = nickup[::-1] |
395 | | - | rev_wife = wife[::-1] |
| 406 | + | rev_wife = profile["wife"][::-1] |
396 | 407 | | rev_wifeup = wifeup[::-1] |
397 | | - | rev_kid = kid[::-1] |
| 408 | + | rev_kid = profile["kid"][::-1] |
398 | 409 | | rev_kidup = kidup[::-1] |
399 | 410 | | |
400 | 411 | | reverse = [ |
| skipped 76 lines |
477 | 488 | | |
478 | 489 | | # string combinations.... |
479 | 490 | | |
480 | | - | kombinaac = [pet, petup, company, companyup] |
| 491 | + | kombinaac = [profile["pet"], petup, profile["company"], companyup] |
481 | 492 | | |
482 | | - | kombina = [name, surname, nick, nameup, surnameup, nickup] |
| 493 | + | kombina = [ |
| 494 | + | profile["name"], |
| 495 | + | profile["surname"], |
| 496 | + | profile["nick"], |
| 497 | + | nameup, |
| 498 | + | surnameup, |
| 499 | + | nickup, |
| 500 | + | ] |
483 | 501 | | |
484 | | - | kombinaw = [wife, wifen, wifeup, wifenup, surname, surnameup] |
| 502 | + | kombinaw = [ |
| 503 | + | profile["wife"], |
| 504 | + | profile["wifen"], |
| 505 | + | wifeup, |
| 506 | + | wifenup, |
| 507 | + | profile["surname"], |
| 508 | + | surnameup, |
| 509 | + | ] |
485 | 510 | | |
486 | | - | kombinak = [kid, kidn, kidup, kidnup, surname, surnameup] |
| 511 | + | kombinak = [ |
| 512 | + | profile["kid"], |
| 513 | + | profile["kidn"], |
| 514 | + | kidup, |
| 515 | + | kidnup, |
| 516 | + | profile["surname"], |
| 517 | + | surnameup, |
| 518 | + | ] |
487 | 519 | | |
488 | 520 | | kombinaa = [] |
489 | 521 | | for kombina1 in kombina: |
| skipped 51 lines |
541 | 573 | | kombi[15] = [""] |
542 | 574 | | kombi[16] = [""] |
543 | 575 | | kombi[21] = [""] |
544 | | - | if randnum == "y": |
| 576 | + | if profile["randnum"] == "y": |
545 | 577 | | kombi[12] = list(concats(word, numfrom, numto)) |
546 | 578 | | kombi[13] = list(concats(kombinaa, numfrom, numto)) |
547 | 579 | | kombi[14] = list(concats(kombinaac, numfrom, numto)) |
| skipped 14 lines |
562 | 594 | | komb004 = [""] |
563 | 595 | | komb005 = [""] |
564 | 596 | | komb006 = [""] |
565 | | - | if spechars1 == "y": |
566 | | - | komb001 = list(komb(kombinaa, spechars)) |
567 | | - | komb002 = list(komb(kombinaac, spechars)) |
568 | | - | komb003 = list(komb(kombinaaw, spechars)) |
569 | | - | komb004 = list(komb(kombinaak, spechars)) |
570 | | - | komb005 = list(komb(word, spechars)) |
571 | | - | komb006 = list(komb(reverse, spechars)) |
| 597 | + | if len(profile["spechars"]) > 0: |
| 598 | + | komb001 = list(komb(kombinaa, profile["spechars"])) |
| 599 | + | komb002 = list(komb(kombinaac, profile["spechars"])) |
| 600 | + | komb003 = list(komb(kombinaaw, profile["spechars"])) |
| 601 | + | komb004 = list(komb(kombinaak, profile["spechars"])) |
| 602 | + | komb005 = list(komb(word, profile["spechars"])) |
| 603 | + | komb006 = list(komb(reverse, profile["spechars"])) |
572 | 604 | | |
573 | 605 | | print("[+] Sorting list and removing duplicates...") |
574 | 606 | | |
575 | 607 | | komb_unique = {} |
576 | | - | for i in range(1,22): |
| 608 | + | for i in range(1, 22): |
577 | 609 | | komb_unique[i] = list(dict.fromkeys(kombi[i]).keys()) |
578 | 610 | | |
579 | 611 | | komb_unique01 = list(dict.fromkeys(kombinaa).keys()) |
| skipped 20 lines |
600 | 632 | | + komb_unique05 |
601 | 633 | | ) |
602 | 634 | | |
603 | | - | for i in range(1,21): |
| 635 | + | for i in range(1, 21): |
604 | 636 | | uniqlist += komb_unique[i] |
605 | 637 | | |
606 | 638 | | uniqlist += ( |
607 | | - | komb_unique07 |
| 639 | + | komb_unique07 |
608 | 640 | | + komb_unique08 |
609 | 641 | | + komb_unique09 |
610 | 642 | | + komb_unique010 |
| skipped 2 lines |
613 | 645 | | ) |
614 | 646 | | unique_lista = list(dict.fromkeys(uniqlist).keys()) |
615 | 647 | | unique_leet = [] |
616 | | - | if leetmode == "y": |
| 648 | + | if profile["leetmode"] == "y": |
617 | 649 | | for ( |
618 | 650 | | x |
619 | 651 | | ) in ( |
620 | 652 | | unique_lista |
621 | 653 | | ): # if you want to add more leet chars, you will need to add more lines in cupp.cfg too... |
622 | | - | x = x.replace("a", a) |
623 | | - | x = x.replace("i", i) |
624 | | - | x = x.replace("e", e) |
625 | | - | x = x.replace("t", t) |
626 | | - | x = x.replace("o", o) |
627 | | - | x = x.replace("s", s) |
628 | | - | x = x.replace("g", g) |
629 | | - | x = x.replace("z", z) |
| 654 | + | |
| 655 | + | # transform to leet |
| 656 | + | for letter, leetletter in leet.items(): |
| 657 | + | x.replace(letter, leetletter) |
| 658 | + | |
630 | 659 | | unique_leet.append(x) |
631 | 660 | | |
632 | 661 | | unique_list = unique_lista + unique_leet |
| skipped 1 lines |
634 | 663 | | unique_list_finished = [] |
635 | 664 | | unique_list_finished = [x for x in unique_list if len(x) < wcto and len(x) > wcfrom] |
636 | 665 | | |
637 | | - | print_to_file(name + ".txt", unique_list_finished) |
| 666 | + | print_to_file(profile["name"] + ".txt", unique_list_finished) |
638 | 667 | | |
639 | 668 | | |
640 | 669 | | def alectodb_download(): |
| skipped 401 lines |