Projects STRLCPY cupp Commits f48cdc50
🤬
  • ■ ■ ■ ■ ■ ■
    cupp.py
    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
Please wait...
Page is in error, reload to recover