Git Product home page Git Product logo

bopscrk's Introduction

BlackArch package Rawsec's CyberSecurity Inventory Packaging status GPL-3.0 License Python 3 Version 2.4.5


Logo

bopscrk

Generate smart and powerful wordlists for targeted attacks
Explore the docs »

View Demo · Report Bug · Request Feature

Table of contents
  1. About the Project
  2. Getting started
  3. Usage
  4. Roadmap
  5. Contributing
  6. Changelist
  7. License
  8. Contact
  9. Acknowledgments
  10. Legal disclaimer

About the Project

  • Targeted-attack wordlist creator: introduce personal info related to target, combines every word and transforms results into possible passwords. The lyricpass module allows to search lyrics related to artists and include them to the wordlists.
  • Customizable case and leet transforms: create custom charsets and transforms patterns trough a simple config file.
  • Interactive mode and one-line command interface supported.
  • Included in BlackArch Linux pentesting distribution and Rawsec's Cybersecurity Inventory since August 2019.

Built with

  • Python 3 (secondary branch keeps Python 2.7 legacy support)
    • requests
    • alive-progress

What's new

2.4.5 RELEASED: Progress bar with ETA implemented

(back to top)

Getting started

Installation

pip install bopscrk

Alternatively, if you want to clone the repo from Github instead of install it from Pypi:

git clone --recurse-submodules https://github.com/r3nt0n/bopscrk
cd bopscrk
pip install -r requirements.txt

Run interactive mode

bopscrk -i

(back to top)

Usage


  -h, --help         show this help message and exit
  -i, --interactive  interactive mode, the script will ask you about target
  -w                 words to combine comma-separated (non-interactive mode)
  --min              min length for the words to generate (default: 4)
  --max              max length for the words to generate (default: 32)
  -c, --case         enable case transformations
  -l, --leet         enable leet transformations
  -n                 max amount of words to combine each time (default: 2)
  -a , --artists     artists to search song lyrics (comma-separated)
  -o , --output      output file to save the wordlist (default: tmp.txt)
  -C , --config      specify config file to use (default: ./bopscrk.cfg)
  --version          print version and exit

For more information, please refer to the Advanced usage section.

(back to top)

How it works

  • You have to provide some words which will act as a base.
  • The lyricpass feature allow to introduce artists. The tool will download all his songs' lyrics and each line will be added as a new word. By default, artist names and a word formed by the initial of word on each phrase, will be added too.
  • The tool will generate all possible combinations between them.
  • To generate more combinations, it will add some common separators (e.g. "-", "_", "."), numbers and special chars frequently used in passwords.
  • You can use leet and case transforms to increase your chances.

Tips

  • Fields can be left empty.
  • You can use accentuation in your words and special chars (if you use the non-interactive mode, escape special chars like ' and " with backslashes, e.g.: bopscrk -w John,O\'hara,Doe,foo,bar).
  • In the others field you can write several words comma-separated. Example: 2C,Flipper.
  • If you want to produce all possible leet transformations, enable the recursive_leet option in configuration file.
  • You can select which transforms to apply on lyrics phrases found through the cfg file.
  • Using the non-interactive mode, you should provide years in the long and short way (1970,70) to get the same result than the interactive mode.
  • You have to be careful with -n argument. If you set a big value, it could result in too huge wordlists. I recommend values between 2 and 5.
  • To provide several artist names through command line you should provide it comma-separated. Example: -a johndoe,johnsmith
  • To provide artist names with spaces through command line you should provide it quotes-enclosed. Example: -a "john doe,john smith"

Lyricpass

This feature is based in a modified version of a tool developed originally by initstring. The changes are made to integrate input and output's tool with bopscrk.

It will retrieve all lyrics from all songs which belongs to artists that you provide. By default it will store each artist, each phrase found with space substitution, each phrase found reduced to its initials (which will be transformed later if you have activated leet and case transforms).

Advanced usage

Customizing behaviour using .cfg file

  • In bopscrk.cfg file you can specify your own charsets and enable/disable options:

    • threads: number of threads to use in multithreaded operations
    • extra_combinations (like (john, doe) => 123john, john123, 123doe, doe123, john123doe doe123john) are enabled by default. You can disable it in the configuration file in order to get more focused wordlists.
    • separators_chars: characters to use in extra-combinations. Can be a single char or a string of chars, e.g.: !?-/&(
    • separators_strings: strings to use in extra-combinations. Can be a single string or a list of strings space-separated, e.g.: 123 34!@
    • leet_charset: characters to replace and correspondent substitute in leet transforms, e.g.: e:3 b:8 t:7 a:4
    • recursive_leet: enables a recursive call to leet_transforms() function to get all possible leet transforms (disabled by default). WARNING: enabled with huge --max parameters (e.g.: greater than 18) could take even days. Can be true or false.
    • remove_parenthesis: remove all parenthesis in lyrics found before any transform
    • take_initials: produce words based on initial of each word in lyric phrases found (if enabled with remove_parenthesis disabled, it can produce useless words)
    • artist_split_by_word: split artist names and add each word as a new one
    • lyric_split_by_word: same with lyrics found
    • artist_space_replacement: replace spaces in artist names with chars/strings defined in charset
    • lyric_space_replacement: same with lyrics found
    • space_replacement_chars: characters to insert instead of spaces inside an artist name or a lyric phrase. Can be a single char or a string of chars, e.g.: !?-/&(
    • space_replacement_strings: strings to insert instead of spaces inside an artist name or a lyric phrase. Can be a single string or a list of strings space-separated, e.g.: 123 34!@
  • Some transforms have extensive charsets preincluded. To use it instead of the basic ones, just comment and uncomment the corresponding lines (It's important to comment the original one, if you let two lines with the same keyname uncommented, it will throw an error: AttributeError: 'bool' object has no attribute 'split').

  • Parameters configuration examples

    • Combine all the words using dots as separator, and same using commas
      separators_chars=.,
    • Convert all "a/A" occurrences into "4" and all "e/E" occurrences into "3"
      leet_charset=a:4 e:3

(back to top)

Roadmap

  • Improve memory management
    • Write wordlists into filesystem during execution and use it as cache (#12)
  • Improve performance
    • Refactor and improve threads and transforms logic
  • Extra features
    • Implement progress bar to keep user informed of the execution state
    • Implement session file to keep track of the execution point and be able to stop and resume sessions (#12)
    • Create config options for customized case transforms (e.g.: disable pair/odd transforms)

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contributors

  • noraj contributed opening several issues and pull requests that have allow to fix some important bugs. He also managed by his own the tool's addition in BlackArch and RawSec repositories, which has increase its popularity and use
  • nylocx and agoertz-fls contributed adding Python3 support
  • glozanoa and fabaff contributed adding bopscrk command (improvements on setup.py)

Thank you all!

(back to top)

Changelist

  • 2.4.5 version notes (02/08/2022)

    • progress bar implemented and working
    • version argument included
    • Docs improved
  • 2.4.4 version notes (31/07/2022)

    • Relative imports bug fixed
    • Starting to refactor general structure to allow progressbar feature inclusion
  • 2.4.3 version notes (28/07/2022)

    • Fixing project structure to allow properly install via pip:
      • Add MANIFEST to exclude compiled and tests files when building dist
      • Improving structure to properly copy all structure into python packages dir inside a parent dir
      • Fixing relative path to config file
    • Catch exception when a wrong config file was provided (notice and exit)
  • 2.4 version notes (26/07/2022)

    • Make the installation process easier enabling pip install method
    • Starting to implement better memory management (cached wordlists writing and reading i/o files), not working yet
    • Updating and fixing minor bugs related to dependencies
    • REMOVED FEATURE: 'exclude from other wordlists', doesn't seem useful, there are other tools to do this specific work
  • 2.3.1 version notes

    • Fixing namespace bug (related to aux.py module, renamed to auxiliars.py) when running on windows systems
    • unittest (and simple unitary tests for transforms, excluders and combinators functions) implemented.
  • 2.3 version notes (15/10/2020)

    • Customizable configuration for artists and lyrics transforms using the cfg file
    • Requirements at setup.py updated
    • Multithreads logic improved
    • Leet and case order reversed to improve operations efficiency
    • BUG FIXED in lyrics space replacement
    • BUG FIXED when remove duplicates (Type Error: unhashable type: 'list')
    • Memory management and efficiency improved
    • SPLIT INTO MODULES to improve project structure
    • BUG FIXED in wordlists-exclusion feature
  • 2.2 version notes (11/10/2020

    • Configuration file implemented
    • NEW FEATURE: Allow to create custom charsets and transforms patterns trough the config file
    • NEW FEATURE: Recursive leet transforms implemented (disabled by default, can be enabled in cfg file)
  • 2.2~beta version notes (10/10/2020)

    • The lyricpass integration have been updated to run with last version released by initstring
    • --lyrics-all option removed (feature integrated in other options)
  • 2.1 version notes (11/07/2020)

    • Fixing min and max length bug
  • 2.0/1.5 version notes (17/06/2020)

    • PYTHON 3 NOW IS SUPPORTED: master branch moves to Python 3. Secondary branch keeps Python 2.7 legacy support
  • 0-1.2(beta) version notes

    • EXCLUDE WORDLISTS: speed improvement using multithreaded exclusions
    • NEW FEATURE: lyrics searching related to artists increase the wordlist chances

(back to top)

License

Distributed under the GNU General Public License v3.0. See LICENSE for more information.

(back to top)

Contact

r3nt0n: Github - email
bopscrk: Github - Pypi

(back to top)

Acknowledgments

(back to top)

Legal disclaimer

This tool is created for the sole purpose of security awareness and education, it should not be used against systems that you do not have permission to test/attack. The author is not responsible for misuse or for any damage that you may cause. You agree that you use this software at your own risk.

(back to top)

bopscrk's People

Contributors

agoertz-fls avatar r3nt0n avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bopscrk's Issues

Windows compatibility

Hi :)
Usually I'm not a Windows user, but for a professional task I had to work from a windows computer.

So, I try to use bopscrk from this win computer and when launch the tool from command line (cmd), it terminates at zero time without providing anything in output.

(no problems on Linux)

image

There are some know troubles with windows OS?

Thanks & best regards :)

Lyrics: TypeError: 'NoneType' object is not iterable

I install the 3 Requirements: python2 python2-requests python2-beautifulsoup4.

I tried to generate of wordlist based on lyrics:

# python2 bopscrk.py -a disturbed --output ~/wordlist.txt
  [*] Looking for Disturbed's lyrics...
  [*] 3344 phrases found
Traceback (most recent call last):
  File "bopscrk.py", line 576, in <module>
    try: main()
  File "bopscrk.py", line 497, in main
    for phrase in ly_initials_wl:
TypeError: 'NoneType' object is not iterable

Tool not using multithreading

Bopscrk seems to always only use 1 thread no matter what operation is made, even if in bopscrk.cfg 32 threads are specified.
Is this normal behaviour?

Question/Feature

Hi
Is it possible to specify 2+ wordlists in the -w parameter?

python 3 support

python 2 is deprecated and the support will be dropped soon so python support would be welcome

Any ideas?

[+] Applying recursive leet transforms to 89304 words...
Traceback (most recent call last):
File "/data/data/com.termux/files/usr/lib/python3.10/multiprocessing/synchronize.py", line 28, in
from _multiprocessing import SemLock, sem_unlink
ImportError: cannot import name 'SemLock' from '_multiprocessing' (/data/data/com.termux/files/usr/lib/python3.10/lib-dynload/_multiprocessing.cpython-310.so)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/data/data/com.termux/files/home/bopscrk/bopscrk.py", line 27, in
bopscrk.run()
File "/data/data/com.termux/files/home/bopscrk/modules/main.py", line 140, in run
temp_wordlist += multithread_transforms(leet_transforms, final_wordlist)
File "/data/data/com.termux/files/home/bopscrk/modules/transforms.py", line 138, in multithread_transforms
with ThreadPool(Config.THREADS) as pool:
File "/data/data/com.termux/files/usr/lib/python3.10/multiprocessing/dummy/init.py", line 124, in Pool
return ThreadPool(processes, initializer, initargs)
File "/data/data/com.termux/files/usr/lib/python3.10/multiprocessing/pool.py", line 927, in init
Pool.init(self, processes, initializer, initargs)
File "/data/data/com.termux/files/usr/lib/python3.10/multiprocessing/pool.py", line 196, in init
self._change_notifier = self._ctx.SimpleQueue()
File "/data/data/com.termux/files/usr/lib/python3.10/multiprocessing/context.py", line 113, in SimpleQueue
return SimpleQueue(ctx=self.get_context())
File "/data/data/com.termux/files/usr/lib/python3.10/multiprocessing/queues.py", line 342, in init
self._rlock = ctx.Lock()
File "/data/data/com.termux/files/usr/lib/python3.10/multiprocessing/context.py", line 67, in Lock
from .synchronize import Lock
File "/data/data/com.termux/files/usr/lib/python3.10/multiprocessing/synchronize.py", line 30, in
raise ImportError("This platform lacks a functioning sem_open" +
ImportError: This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770.

AttributeError: 'bool' object has no attribute 'split'

Seems similar to #18 but I don't understand how to resolve the same. I have separately printed out self.read_config('TRANSFORMS', 'leet_charset') which comes out as False. Any idea to get around the same?

Following is the error traceback.

Traceback (most recent call last):
  File "C:\Users\Microsoft\AppData\Local\Programs\Python\Python310\Scripts\bopscrk-script.py", line 33, in <module>
    sys.exit(load_entry_point('bopscrk==2.4.5', 'console_scripts', 'bopscrk')())
  File "C:\Users\Microsoft\AppData\Local\Programs\Python\Python310\lib\site-packages\bopscrk-2.4.5-py3.10.egg\bopscrk\bopscrk.py", line 22, in start
    main.run(name, __version__)
  File "C:\Users\Microsoft\AppData\Local\Programs\Python\Python310\lib\site-packages\bopscrk-2.4.5-py3.10.egg\bopscrk\modules\main.py", line 46, in run
    Config.setup()
  File "C:\Users\Microsoft\AppData\Local\Programs\Python\Python310\lib\site-packages\bopscrk-2.4.5-py3.10.egg\bopscrk\modules\config.py", line 49, in setup
    self.LEET_CHARSET = (self.read_config('TRANSFORMS', 'leet_charset')).split()
AttributeError: 'bool' object has no attribute 'split'

How to install ?

This is not really an issue but a remark.

Your project is awesome. I am sure it is not a pain to install but a section describing how to install it is highly useful to reduce uncertainty burden for users.

May you have a great day.

AttributeError: 'bool' object has no attribute 'lower'

Issue

Traceback (most recent call last):                                                                                                                                                                                                           
  File "/usr/bin/bopscrk.py", line 22, in <module>                                                                                                                                                                                           
    Config.setup()                                                                                                                                                                                                                           
  File "/usr/lib/python3.10/site-packages/modules/config.py", line 42, in setup                                                                                                                                                              
    self.EXTRA_COMBINATIONS = self.parse_booleans(self.read_config('COMBINATIONS', 'extra_combinations'))                                                                                                                                    
  File "/usr/lib/python3.10/site-packages/modules/config.py", line 32, in parse_booleans                                                                                                                                                     
    if value.lower() == 'true':                                                                                                                                                                                                              
AttributeError: 'bool' object has no attribute 'lower'

Related code

extra_combinations=true

self.EXTRA_COMBINATIONS = self.parse_booleans(self.read_config('COMBINATIONS', 'extra_combinations'))

def parse_booleans(self, value):
if value.lower() == 'true':
return True
return False

def read_config(self, category, field):
cfg = configparser.ConfigParser()
try:
cfg.read([self.CFG_FILE])
value = cfg.get(category, field)
except:
value = False
return value

Example

test.ini

[TEST]
key=true

It seems at some point the 'true' string is cast to a True boolean, but reproducing manually extracting the conf is giving a string and not a bool so I don't know at which level the issue happens.

$  python
Python 3.10.5 (main, Jun  6 2022, 18:49:26) [GCC 12.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import configparser
>>> config = configparser.ConfigParser()
>>> config.sections()
[]
>>> config.read('test.ini')
['test.ini']
>>> config.sections()
['TEST']
>>> config['TEST']['key']
'true'
>>> config.get('TEST', 'key')
'true'
>>> 'true'.lower()
'true'
>>> True.lower()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'bool' object has no attribute 'lower'

bopscrk error not run (python 2.7)

Discussed in https://github.com/r3nt0n/bopscrk/discussions/25

Originally posted by view99ok March 8, 2023

(root㉿kaliq)-[/home/qq/Desktop/bopscrk]
└─# pip install bopscrk        
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f1845443190>: Failed to establish a new connection: [Errno -2] Name or service not known',)': /simple/bopscrk/
Collecting bopscrk
  Using cached bopscrk-2.4.5.tar.gz (39 kB)
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python2 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-1NysUU/bopscrk/setup.py'"'"'; __file__='"'"'/tmp/pip-install-1NysUU/bopscrk/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-NU0LKl
         cwd: /tmp/pip-install-1NysUU/bopscrk/
    Complete output (3 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    ImportError: No module named setuptools
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
                                                                                
┌──(root㉿kaliq)-[/home/qq/Desktop/bopscrk]
└─# git clone --recurse-submodules https://github.com/r3nt0n/bopscrk
Cloning into 'bopscrk'...
remote: Enumerating objects: 485, done.
remote: Counting objects: 100% (174/174), done.
remote: Compressing objects: 100% (91/91), done.
remote: Total 485 (delta 93), reused 135 (delta 80), pack-reused 311
Receiving objects: 100% (485/485), 11.17 MiB | 410.00 KiB/s, done.
Resolving deltas: 100% (259/259), done.
Submodule 'bopscrk/modules/lyricpass' (https://github.com/r3nt0n/lyricpass.git) registered for path 'bopscrk/modules/lyricpass'
Cloning into '/home/qq/Desktop/cupp/bopscrk/bopscrk/modules/lyricpass'...
remote: Enumerating objects: 157, done.        
remote: Counting objects: 100% (1/1), done.        
remote: Total 157 (delta 0), reused 0 (delta 0), pack-reused 156        
Receiving objects: 100% (157/157), 54.82 KiB | 431.00 KiB/s, done.
Resolving deltas: 100% (54/54), done.
Submodule path 'bopscrk/modules/lyricpass': checked out '6f1f6d74cc645ccf1a75225c84f68a18cd522f02'
                                                                                
┌──(root㉿kaliq)-[/home/qq/Desktop/bopscrk]
└─# bopscrk -i
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/dist-packages/bopscrk-2.4.5-py3.11.egg/bopscrk/bopscrk.py", line 16, in start
    from .modules import main
  File "/usr/local/lib/python3.11/dist-packages/bopscrk-2.4.5-py3.11.egg/bopscrk/modules/main.py", line 11, in <module>
    from . import banners
  File "/usr/local/lib/python3.11/dist-packages/bopscrk-2.4.5-py3.11.egg/bopscrk/modules/banners.py", line 10, in <module>
    from .transforms import *
  File "/usr/local/lib/python3.11/dist-packages/bopscrk-2.4.5-py3.11.egg/bopscrk/modules/transforms.py", line 9, in <module>
    from alive_progress import alive_bar
ModuleNotFoundError: No module named 'alive_progress'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/bopscrk", line 33, in <module>
    sys.exit(load_entry_point('bopscrk==2.4.5', 'console_scripts', 'bopscrk')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/bopscrk-2.4.5-py3.11.egg/bopscrk/bopscrk.py", line 20, in start
    from modules import main
ModuleNotFoundError: No module named 'modules'</div>

lyrics mode broken

$ bopscrk -a adele
[*] Looking for Adele's lyrics...
Traceback (most recent call last):
  File "bopscrk.py", line 576, in <module>
    try: main()
  File "bopscrk.py", line 486, in main
    lyfinder = LyricsFinder(artist, False, True)
  File "/usr/share/bopscrk/lib/lyricpass.py", line 35, in __init__
    for l in self.get_lyrics(s):  # get a list of lyric lines
  File "/usr/share/bopscrk/lib/lyricpass.py", line 92, in get_lyrics
    response = requests.get(songurl)                            # Now we scrape each individual song page
  File "/usr/lib/python2.7/site-packages/requests/api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 668, in send
    history = [resp for resp in gen] if allow_redirects else []
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 247, in resolve_redirects
    **adapter_kwargs
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='lyrics.fandom.com', port=443): Max retries exceeded with url: /wiki/Adele:Hello (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f096a267950>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))

lyricspass is working totally fine so not an upstream bug:

python2 lyricpass.py adele adele.txt
Looking for lyrics from adele and writing to file: adele.txt
Getting lyrics for http://lyrics.wikia.com/wiki/adele:Daydreamer
Found 25 lines of lyrics
Getting lyrics for http://lyrics.wikia.com/wiki/adele:Best_for_Last
Found 42 lines of lyrics
Getting lyrics for http://lyrics.wikia.com/wiki/adele:Chasing_Pavements
Found 33 lines of lyrics
Getting lyrics for http://lyrics.wikia.com/wiki/adele:Cold_Shoulder
Found 32 lines of lyrics
Getting lyrics for http://lyrics.wikia.com/wiki/adele:Crazy_for_You
Found 28 lines of lyrics
Getting lyrics for http://lyrics.wikia.com/wiki/adele:Melt_My_Heart_to_Stone
Found 31 lines of lyrics
Getting lyrics for http://lyrics.wikia.com/wiki/adele:First_Love

Bopscrk not respecting input character cases

The input words always become lower-case in the output, even if case transforms are disabled.
It's a big issue since the user might want to only combine words "as they are" or have already a curated list of basic case transforms (like: test Test TEST ) and don't want to spend extra compute time for unlikely combinations, like: test tEst teSt tesT TEst........ you got the idea

Capital letters changed automatically to lowercase

Running In interactive mode autochanges all capital words to lowercase.

Example: John,Doe,Github,Blue

Tried both ways using Y and N invoking Case Transformations.

Output file will always only produce lowercase words

Example:
john
doe
github
blue

Not able to generate output in the following format:
John
Doe
Github
Blue

Inventory notification

Your tool/software has been inventoried on Rawsec's CyberSecurity Inventory.

What is Rawsec's CyberSecurity Inventory?

An inventory of tools and resources about CyberSecurity. This inventory aims to help people to find everything related to CyberSecurity.

  • Open source: Every information is available and up to date. If an information is missing or deprecated, you are invited to (help us).
  • Practical: Content is categorized and table formatted, allowing to search, browse, sort and filter.
  • Fast: Using static and client side technologies resulting in fast browsing.
  • Rich tables: search, sort, browse, filter, clear
  • Fancy informational popups
  • Badges / Shields
  • Static API
  • Twitter bot

More details about features here.

Note: the inventory is a FLOSS (Free, Libre and Open-Source Software) project.

Why?

  • Specialized websites: Some websites are referencing tools but additional information is not available or browsable. Make additional searches take time.
  • Curated lists: Curated lists are not very exhaustive, up to date or browsable and are very topic related.
  • Search engines: Search engines sometimes does find nothing, some tools or resources are too unknown or non-referenced. These is where crowdsourcing is better than robots.

Why should you care about being inventoried?

Mainly because this is giving visibility to your tool, more and more people are using the Rawsec's CyberSecurity Inventory, this helps them find what they need.

Badges

The badge shows to your community that your are inventoried. This also shows you care about your project and want it growing, that your tool is not an abandonware.

Feel free to claim your badge here: http://inventory.rawsec.ml/features.html#badges, it looks like that Rawsec's CyberSecurity Inventory, but there are several styles available.

So what?

That's all, this message is just to notify you if you care.

Does it stores temporary data of filesystem?

I have started the command with 26 words, 4 words combinations and all the transformations.
It has been running for 8 days already but looks like it hasn't written anything to FS yet. Is it OK?

Below is everything that I got as output on the first day.
Thanks.
image

import error

Traceback (most recent call last):
File "bopscrk.py", line 17, in
from modules.config import Config
File "/home/rooty/bopscrk/modules/config.py", line 6, in
import configparser

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.