Skip to main content

ShadowB 1.6

PyPI - Version PyPI - Python Version

PyPI - Downloads PyPI - License

Made with Python

ShadowB Logo

ShadowB is an all-in-one Python toolkit that bundles a wide range of everyday utilities — system info, image steganography, temporary email, QR codes, CAPTCHA generation, password tools, file safety checks, and more — into a single, easy-to-import package.

Instead of installing and learning a dozen different libraries for a dozen small tasks, ShadowB collects the most commonly needed helper functions in one place.

100% open source. No telemetry, no analytics, no external server. Every function runs locally on the user's own machine — nothing is collected or transmitted by the library's maintainers.


Installation

pip install ShadowB

Table of Contents


core

Basic package metadata and bootstrapping.

from ShadowB import core

core.start()        # run core app for : create passwords or usernames / organize the working files
core.owner(True/False)        # -> "Adem mzoughi"
core.team(True/False)         # -> "Adem mzoughi, Berlin, Shadow"
core.help(True/False)           # print help / usage info
core.version(True/False)           # print current version

# True/False => print the result on the console 

Code :

code

Output :

output


system

Local system & network diagnostics — useful for things like monitoring your own machine's load, debugging your own network setup, or quick scripting.

from ShadowB import system

# filename => "file" or "data" not "file.txt" or "data.txt"

system.ip(False/True) # return => (local_ip,public_ip,country)

# True or False (It means whether it prints on the console what it found or not)


system.informations(filename,save) # return => (username, hostname, local_ip, country, os_name, os_release, arch, ram_gb, total_gb, used_gb, free_gb)

# save => True or False (It means do you want to save the data in a filetxt, and if yes give a name for the file, if not just put False with nothing else)


system.cookies(filename)   # export your own browser's cookies to a local .txt file


system.scan_open_ports(ip)    # return => (open_ports) 


system.path()                # print the current working directory (e.g. C:/Users/Pc/Desktop)


system.domain_informations(domain) # return ip address from a domain name

system.remove_file(path) # Deletes the selected file, return => 200 or 404 or 400
# If the file is in the same path, you can just put its name and extension, but if it's in another path, you need to put the full path including its name and extension

system.spider(url) # he is looking for all the paths that exist / return => ["/path1","/path2"....]
# url like => "https://mysite.com"

system.wifi_speed(True/False) # measuring Wi-Fi speed / return => (donload_speed:float, upload_speed:float)
# True or False (It means whether it prints on the console what it found or not)

⚠️ cookies() reads cookies from your own browser profile and scan_open_ports() should only be run against hosts you own or are authorized to test. See Responsible Use.


captcha

Generate CAPTCHA images.

from ShadowB import captcha

captcha.generate_captcha(True/False,image_name,path) # image_name like ("qr") (only the name without .png or .jpeg ...)(not required)
# True => print the code in the console , False => it means not printing the code in the console
# return => captcha code : str
# True/False (required)
# path like => r"C:\Users\Username\Downloads" (not required) (r => raw string avoids backslash escape errors on Windows paths) 

Code :

code

Output :

output


qrcode

Generate and read QR codes.

from ShadowB import qrcode

qrcode.generate_qrcode(text, image_name, path)   # create a QR code image
# text like => "hello world!"
# path like => r"c:/users/username/dekstop (not required) / Put a dot if you want it to be saved in the current path => "."
# image_name => image name like ("qr") (only the name without .png or .jpeg ...) (not required) (r => raw string avoids backslash escape errors on Windows paths) 

mail

Disposable email creation and sending (Gmail SMTP).

from ShadowB import mail

mail.create_email()                      # return => (email, password, token)
mail.get_msj(token)                      # return => list of received messages => [(msj_id, date, sender, subject, msj),(msj_id, date, sender, subject, msj)]
mail.send_msj(sender, app_password, to, subject, body)   # send via Gmail SMTP, return => 200 or 404
# body => html or normal text

Code :

code

Output :

output


safe

File inspection and sanitation helpers.

from ShadowB import safe

safe.is_safe(file)   # -> True / False
# Checking the file and trying to see if it's safe or not (the check isn't super accurate because it depends on checking the real extension, the signature inside it, the contents of the .zip, the size of the .zip after opening, and scanning for malicious stuff in PDF, TXT, and image files)

safe.size(file)                  # -> file size


safe.name(file)                  # -> file name


safe.file_extension(file)        # -> file extension


safe.scan_file(file, check_list)     # -> True / False
# It checks the content of PDF and TXT files only, as it looks for offensive and unwanted words (the check will mostly be inaccurate languages only : English, Arabic, Russian, or French)


safe.validate_text(text, check_list) # -> True / False
# It checks the content of the text, as it looks for offensive and unwanted words (the check will mostly be inaccurate, languages only : English, Arabic, Russian, or French)

safe.clean_text(text,mode="normal") # cleaning the text from symbols and numbers 
# (normal:The text remains as it is, lower:Everything is lowert, 
# upper:Everything is uppert, capital:every word's 
#beginning be uppercase)
or safe.clean_text(text,mode="lower") 
or safe.clean_text(text,mode="upper") 
or safe.clean_text(text,mode="capital")

image

Metadata and steganography utilities.

from ShadowB import image

image.read_metadata(img)          # read EXIF / metadata
image.has_hidden_data(img)        # -> True / False (contains hidden text/file)
image.extract_file(img)           # extract a hidden file from the image
image.extract_text(img)           # extract hidden text from the image
image.strip_metadata(img)         # strip metadata (useful before sharing photos)
image.embed_text(img, text)       # embed hidden text into the image
image.embed_file(img, file)       # embed a hidden file into the image

passwords

from ShadowB import passwords

passwords.check_strength(password)   # rate password strength
passwords.create_password()          # generate a strong password

console

Printing messages in different colors.

from ShadowB import console

console.success(text) # return a green message like => [+] success
console.error(text) # return a red message like => [-] error
console.warning(text) # return a yellow message like => [!] warning
console.info(text) # return a cyan message like => [*] info 

timer

A counter that counts the number of seconds your device took to run the code between timer.start() and timer.stop()

from ShadowB import timer

timer.start() # start timer
timer.stop() # stop timer
timer.reset() # reset timer

ex:

timer.start()

print("hello world")
print("hi ShadowB")
print(timer.stop())
timer.reset()
print("="*50)
print("new timer")
print(timer.stop())

# Note: after timer.stop(), you need to do timer.reset() so you can use multiple timers in the same code

emoji

A feature that lets you display an emoji in your code or choose a random emoji

from ShadowB import emoji

emoji.smile()

{
    .no_words(),
    .birthday(),
    .fire(),
    .death(),
    .coder(),
    .skull(),
    .heart(),
    .sorry(),
    .love_u(),
    .crying(),
    .idk(),
    .insult()
}

emoji.random_emoji() # It gives you a random emoji

exp:

print(emoji.fire()) # 🔥

fake

Generate fake data and export it to a CSV file.

from ShadowB import fake

fake.fake_csv(filename, rows, keys)

# filename => CSV file name without ".csv"
# rows => number of rows to generate
# keys => list of data types to generate

# Available keys:
# "username"
# "age"
# "email"
# "phone"
# "random_country"
# "random_job"
# "salary"

# Example:
fake.fake_csv(
    "users",
    100,
    ["username", "age", "email", "phone", "random_country", "random_job", "salary"]
)

# ==============================
# Individual generators
from ShadowB import fake

fake.username()
fake.age(min_age, max_age)
fake.email()
fake.phone()
fake.random_country()
fake.random_job()
fake.salary(min_salary, max_salary)
# age(min_age, max_age)
# If no values are provided, a random age between 18 and 45 is generated.

# salary(min_salary, max_salary)
# If no values are provided, a random salary between 1000 and 6000 is generated.

test

Code :

code

Output :

output

Comprehensive example :

gift


⚖️ Responsible Use

ShadowB is a general-purpose utility library, similar in spirit to combining tools like browser_cookie3, qrcode, python-nmap, and Pillow-based steganography helpers into one package. It performs no network exfiltration on its own and contacts no third-party server.

That said, several functions are powerful and should be used responsibly:

  • Only run cookies() against your own browser profile.
  • Only use scan_open_ports() on systems/websites you own or are explicitly authorized to test.
  • Respect each platform's Terms of Service and applicable privacy laws when using system.scan_open_ports() or system.domain_informations().
  • Don't use the steganography functions (hide_text, hide_file) to conceal malicious payloads or to deceive other people.

You are responsible for complying with local laws and the terms of any service you interact with through this library.


📄 License

This project is licensed under the MIT License.


👤 Author

Adem mzoughi — 2026/23/06

Adem portfolio

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shadowb-1.6.tar.gz (28.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shadowb-1.6-py3-none-any.whl (32.6 kB view details)

Uploaded Python 3

File details

Details for the file shadowb-1.6.tar.gz.

File metadata

  • Download URL: shadowb-1.6.tar.gz
  • Upload date:
  • Size: 28.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.8

File hashes

Hashes for shadowb-1.6.tar.gz
Algorithm Hash digest
SHA256 8dfd7293f56ecda7a8295ecc8a486ebd5d30ff011f736fe1aff152282373f0aa
MD5 809eff95c92a33ba8aa084fad5087de6
BLAKE2b-256 86d86aa71e97eed70000db78093852ca56e03d473f0e67470365458081ba1767

See more details on using hashes here.

File details

Details for the file shadowb-1.6-py3-none-any.whl.

File metadata

  • Download URL: shadowb-1.6-py3-none-any.whl
  • Upload date:
  • Size: 32.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.8

File hashes

Hashes for shadowb-1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 8088d6e09529fb4636a0d0379bdeca4660fc541a83a9f6be55b263699bfc8dd6
MD5 6c4a623eccef3664f1d80540463e338a
BLAKE2b-256 d7396d0cef2c806a07efadfc3cdd0b40be4b284f4428f669d451d64ae9b1af37

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.6 This release

2 files

1.5

2 files

1.4

2 files

1.3

2 files

1.2

2 files

1.1

2 files

1.0

2 files

0.9

2 files

0.8

2 files

0.6

2 files

0.5

2 files

0.4

2 files

0.3

2 files

0.2

2 files

0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page