A Python interface to AFL, allowing for easy injection of testcases and other functionality.

Overview

Fuzzer

This module provides a Python wrapper for interacting with AFL (American Fuzzy Lop: http://lcamtuf.coredump.cx/afl/). It supports starting an AFL instance, adding slave workers, injecting and retrieving testcases, and checking various performance metrics. Shellphish used it in Mechanical Phish (our CRS for the Cyber Grand Challenge) to interact with AFL.

Installation

/!\ We recommend installing our Python packages in a Python virtual environment. That is how we do it, and you'll likely run into problems if you do it otherwise.

The fuzzer has some dependencies. First, here's a probably-incomplete list of debian packages that might be useful:

sudo apt-get install build-essential gcc-multilib libtool automake autoconf bison debootstrap debian-archive-keyring libtool-bin
sudo apt-get build-dep qemu

Then, the fuzzer also depends on shellphish-afl, which is a pip package that actually includes AFL:

pip install git+https://github.com/shellphish/shellphish-afl

That'll pull a ton of other stuff, compile qemu about 4 times, and set everything up. Then, install this fuzzer wrapper:

pip install git+https://github.com/shellphish/fuzzer

Usage

There are two ways of using this package. The easy way is to use the shellphuzz script, which allows you to specify various options, enable driller, etc. The script has explanations about its usage with --help.

A quick example:

# fuzz with 4 AFL cores
shellphuzz -i -c 4 /path/to/binary

# perform symbolic-assisted fuzzing with 4 AFL cores and 2 symbolic tracing (drilling) cores.
shellphuzz -i -c 4 -d 2 /path/to/binary

You can also use it programmatically, but we have no documentation for that. For now, import fuzzer or look at the shellphuz script and figure it out ;-)

Comments
  • AFL Trace Path Problem

    AFL Trace Path Problem

    Tracing wasn't working for me. The error was that the afl tracer path was incorrect, which appears to be right since it was being pointed to a directory that didn't exist (afl-unix/tracers/unix). The correct path seems to be afl-unix/tracers/i386 for example. Not sure the other implications of this change, but it seems to make fuzzer work for me.

    opened by bannsec 5
  • AttributeError: 'Namespace' object has no attribute 'opc_afl'

    AttributeError: 'Namespace' object has no attribute 'opc_afl'

    I tried to run shellphuzz after a long and painful installation of fuzzer and driller with all the prereqs for python 3 on Ubuntu 16.04 and got this: [*] Creating fuzzer... Traceback (most recent call last): File "/home/kburova/.virtualenvs/devis/bin/shellphuzz", line 87, in <module> memory=args.memory, seeds=seeds, timeout=args.run_timeout, protocol_fuzz=args.opc_afl, AttributeError: 'Namespace' object has no attribute 'opc_afl'

    I removed protocol_fuzz=args.opc_afl, form this line:

    fuzzer = fuzzer.Fuzzer( args.binary, args.work_dir, afl_count=args.afl_cores, force_interval=args.force_interval, args.binary, args.work_dir, afl_count=args.afl_cores, force_interval=args.force_interval, create_dictionary=not args.no_dictionary, stuck_callback=stuck_callback, time_limit=args.timeout, create_dictionary=not args.no_dictionary, stuck_callback=stuck_callback, time_limit=args.timeout, memory=args.memory, seeds=seeds, timeout=args.run_timeout memory=args.memory, seeds=seeds, timeout=args.run_timeout, protocol_fuzz=args.opc_afl, )

    to make it work, but I'm not sure if that's the best solution.

    opened by kburova 4
  • Piped through some more command line arguments

    Piped through some more command line arguments

    • Ability to automatically extend length of inputs passed to driller (requires a PR in the driller repo to work)
    • Ability to change the timeouts for AFL runs of the binary and driller runs
    • Ability to change the memory limit
    • Ability to use shellphuzz with neither first_crash nor timeout args
    • Ability to seed shellphuzz with an existing directory of inputs
    opened by anon8675309 4
  • 32-bit ELF Binaries?

    32-bit ELF Binaries?

    I'm having trouble running fuzzer on 32-bit ELF binaries. Looking at the init code, it appears the call to setup which afl to run is:

                p = angr.Project(binary_path)
    
                self.os = p.loader.main_bin.os
    
                afl_dir               = shellphish_afl.afl_dir(self.os)
    
                # the path to AFL capable of calling driller
                self.afl_path         = shellphish_afl.afl_bin(self.os)
    
                self.afl_path_var     = shellphish_afl.afl_path_var(self.os)
    
                # set up libraries
                self._export_library_path(p)
    

    Given the os variable really only says "unix", i don't see how this would select the correct distro for 32 vs 64 bit, and default on 64-bit systems will likely be 64 bit QEMU.

    opened by bannsec 4
  • AFL Error | Docker image -> shellphish/mechaphish

    AFL Error | Docker image -> shellphish/mechaphish

    Hi guys,

    I just pull shellphish/mechaphish docker image and tried to run test_fuzzer.py but it failed like picture below. I also make sure that all the requirements installed already but still don't know how to solve it. Any idea? 6

    opened by Bennoli13 3
  • Bug

    Bug

    Hello... I'm Having a little bug, after installation I tried to run a single test app, steps to repeoduce:

    #include <stdio.h>
    
    int main(int argc, char **argv){
    	printf("My name is: %s\n",argv[1]);
    }
    

    Complation gcc test.c

    shellphuzz -i -c 4 ~/Desktop/a.out

    output:

    [*] Creating fuzzer...
    Traceback (most recent call last):
      File "/home/user/anaconda2/bin/shellphuzz", line 63, in <module>
        create_dictionary=not args.no_dictionary, stuck_callback=stuck_callback
      File "/home/user/anaconda2/lib/python2.7/site-packages/fuzzer/fuzzer.py", line 155, in __init__
        p = angr.Project(binary_path)
      File "/home/user/anaconda2/lib/python2.7/site-packages/angr/project.py", line 146, in __init__
        raise Exception("Not a valid binary file: %s" % repr(thing))
    Exception: Not a valid binary file: '-i'
    Exception AttributeError: "'Fuzzer' object has no attribute '_timer'" in <bound method Fuzzer.__del__ of <fuzzer.fuzzer.Fuzzer object at 0x7f51100fc050>> ignored
    
    
    opened by Sn0keR4xor 3
  • Input binary

    Input binary

    Hey,

    Im currently looking into using Driller via this python wrapper, and cannot quite answer the following question from just the readme:

    What kind of binary has to be specified via the command line for it to work? Is it just the normally compiled binary (standard gcc/g++) and AFL then works via qemu mode on it, or does it have to be instrumented and compiled with the AFL compiler (afl-cc)?

    Thanks :)

    opened by Elothis 2
  • In module tracer: AttributeError: 'module' object has no attribute 'SimProcedure'

    In module tracer: AttributeError: 'module' object has no attribute 'SimProcedure'

    I follow the instructions in README.md and use the virtualenv. However when I run the command shellphuzz -w afl_work -d 2 -c 2 -C -f 1 ./pwn2. It tells me that import tracer error. It is strange that because in driller's requirements.txt there is such a line git+https://github.com/angr/tracer.git#egg=tracer, but when I ran pip install driller pip didn't automatically install the tracer for me. So I choose to manually install tracer with command pip install git+https://github.com/angr/tracer.git#egg=tracer. After that I run the command shellphuzz -w afl_work -d 2 -c 2 -C -f 1 ./pwn2 again. This time it prints a different error output.

    Traceback (most recent call last):
      File "/home/dddong/.virtualenvs/shellphuzz/bin/shellphuzz", line 10, in <module>
        import driller
      File "/home/dddong/.virtualenvs/shellphuzz/local/lib/python2.7/site-packages/driller/__init__.py", line 1, in <module>
        from .driller import *
      File "/home/dddong/.virtualenvs/shellphuzz/local/lib/python2.7/site-packages/driller/driller.py", line 5, in <module>
        import tracer
      File "/home/dddong/.virtualenvs/shellphuzz/local/lib/python2.7/site-packages/tracer/__init__.py", line 1, in <module>
        from .runner import Runner
      File "/home/dddong/.virtualenvs/shellphuzz/local/lib/python2.7/site-packages/tracer/runner.py", line 15, in <module>
        from .tracer import TracerEnvironmentError, TracerInstallError
      File "/home/dddong/.virtualenvs/shellphuzz/local/lib/python2.7/site-packages/tracer/tracer.py", line 11, in <module>
        from .cachemanager import LocalCacheManager
      File "/home/dddong/.virtualenvs/shellphuzz/local/lib/python2.7/site-packages/tracer/cachemanager/__init__.py", line 1, in <module>
        from .cachemanager import CacheManager
      File "/home/dddong/.virtualenvs/shellphuzz/local/lib/python2.7/site-packages/tracer/cachemanager/cachemanager.py", line 4, in <module>
        from ..simprocedures import receive
      File "/home/dddong/.virtualenvs/shellphuzz/local/lib/python2.7/site-packages/tracer/simprocedures/__init__.py", line 1, in <module>
        from .random import FixedRandom
      File "/home/dddong/.virtualenvs/shellphuzz/local/lib/python2.7/site-packages/tracer/simprocedures/random.py", line 10, in <module>
        class FixedRandom(angr.SimProcedure):
    AttributeError: 'module' object has no attribute 'SimProcedure'
    

    It seems that tracer module have a desync issue with the angr module. I don't know how to fix it, perhaps downgrade the version of the angr? Hopes for someone's help. Thanks.

    opened by singleghost 2
  • Error creating fuzzer

    Error creating fuzzer

    I followed "Install the CRS" instructions. Next I did: workon cgc, then attempted to run shellphuzz on a simple binary: ../angr-dev/fuzzer/shellphuzz -i -c 4 mybinary. The following error immediately appeared.

    [*] Creating fuzzer... ERROR | 2017-08-31 16:44:15,218 | fuzzer.fuzzer | AFL Error: Pipe at the beginning of core_pattern execute 'echo core | sudo tee /proc/sys/kernel/core_pattern' AFL Warning: We probably want the fork() children to run first execute 'echo 1 | sudo tee /proc/sys/kernel/sched_child_runs_first'

    Traceback (most recent call last): File "../angr-dev/fuzzer/shellphuzz", line 69, in create_dictionary=not args.no_dictionary, stuck_callback=stuck_callback, time_limit=args.timeout File "../angr-dev/fuzzer/fuzzer/fuzzer.py", line 97, in init Fuzzer._perform_env_checks() File "../angr-dev/fuzzer/fuzzer/fuzzer.py", line 595, in _perform_env_checks raise InstallError(err) fuzzer.fuzzer.InstallError: AFL Error: Pipe at the beginning of core_pattern execute 'echo core | sudo tee /proc/sys/kernel/core_pattern' AFL Warning: We probably want the fork() children to run first execute 'echo 1 | sudo tee /proc/sys/kernel/sched_child_runs_first'

    Exception AttributeError: "'Fuzzer' object has no attribute 'procs'" in <bound method Fuzzer.del of <fuzzer.fuzzer.Fuzzer object at 0x7f183b326f50>> ignored

    opened by x62275 2
  • test_fuzzer.py error

    test_fuzzer.py error

    Hi,

    While testing the fuzzer with the given test script, it is stopping with below error.

    ERROR | 2017-02-03 16:35:01,011 | fuzzer.fuzzer | AFL Error: Pipe at the beginning of core_pattern Traceback (most recent call last): File "test_fuzzer.py", line 124, in run_all() File "test_fuzzer.py", line 121, in run_all all_functionsf File "test_fuzzer.py", line 76, in test_fuzzer_spawn f = fuzzer.Fuzzer(binary, "work") File "/home/rborad/driller/local/lib/python2.7/site-packages/fuzzer/fuzzer.py", line 46, in init Fuzzer._perform_env_checks() File "/home/rborad/driller/local/lib/python2.7/site-packages/fuzzer/fuzzer.py", line 496, in _perform_env_checks raise InstallError("execute 'echo core | sudo tee /proc/sys/kernel/core_pattern'") fuzzer.fuzzer.InstallError: execute 'echo core | sudo tee /proc/sys/kernel/core_pattern'

    Can anyone help to resolve it.

    Thanks

    opened by ronakdborad 2
  • Making QEMU optional

    Making QEMU optional

    Making QEMU utilization an option instead of forced. Still defaulting behavior to using it.

    Open question on handling this in the future. You can tell if the binary is instrumented by checking for afl naming conventions (as I'm doing in autoPwn). It would make sense to do that in fuzzer and just have it default to the correct choice. Only problem is that it doesn't load up the project by default, and loading the project could add a decent load time overhead.

    Interested in your thoughts on that tradeoff. For now, I'm fine controlling that choice from autoPwn. I would rather have the smarts be built into fuzzer though.

    opened by bannsec 2
  • [Question] Installation steps

    [Question] Installation steps

    Hello,

    I'm trying to install the fuzzer (with all the dependencies) on the docker container but every way of installation I'm facing different problems. Is there any instruction how to install it or a docker file that works? Regards Marek

    opened by marekzmyslowski 2
  • ImportError when trying to fuzz

    ImportError when trying to fuzz

    Hey,

    I have successfully installed everything in a virtual environment and am now trying to fuzz a simple c-program with the following command: shellphuzz -i -c 1 -d 1 /home/user/local_fuzzing/target/target_binary

    When running this, i get the following error outputs: WARNING | 2019-01-04 12:54:46,354 | angr.analyses.disassembly_utils | Your version of capstone does not support MIPS instruction groups. Traceback (most recent call last): File "/home/user/local_fuzzing/shellphish-afl/venv/bin/shellphuzz", line 10, in <module> import driller ImportError: No module named driller

    Can anyone help me out with this? Is the angr error causing the ImportError and thats the reason for the crash? Or is just a warning I could ignore and the ImportError itself is the source of the crash? How do I fix it?

    Thanks!

    Addition: For installation, I simply created a new virtual environment, activated into it and then ran the 2 commands like specified in the ReadMe here: pip install git+https://github.com/shellphish/shellphish-afl pip install git+https://github.com/shellphish/fuzzer

    opened by Elothis 6
  • unable to fuzz bsdtar on docker

    unable to fuzz bsdtar on docker

    (angr) angr@ee8fe98b1fc4:$ shellphuzz -i -c 27 -d 13 libarchive/bsdtar [*] Drilling... [*] Creating fuzzer... Traceback (most recent call last):
    File "/home/angr/.virtualenvs/angr/bin/shellphuzz", line 7, in <module> exec(compile(f.read(), __file__, 'exec')) File "/home/angr/angr-dev/fuzzer/shellphuzz", line 87, in <module> memory=args.memory, seeds=seeds, timeout=args.run_timeout, protocol_fuzz=args.opc_afl, AttributeError: 'Namespace' object has no attribute 'opc_afl' (angr) angr@ee8fe98b1fc4:~$

    All set up with docker run -it shellphish/mechaphish; git clone https://github.com/libarchive/libarchive; compiling libarchive[1], then running the above command.

    [1] cd libarchive/build && ./autogen.sh && cd .. && ./configure && make -j40

    opened by genewitch 6
  • Unable to apply AFL patch

    Unable to apply AFL patch

    So tested: Ubuntu 18.04 TLS

    Executing the following command will reproduce the problem:

    pip install git+https://github.com/shellphish/fuzzer

    Installing collected packages: future, ana, z3-solver, claripy, smmap2, gitdb2, GitPython, decorator, networkx, cooldict, dpkt-fix, capstone, mulpyplexer, ailment, unicorn, pycparser, cffi, archinfo, plumbum, rpyc, sortedcontainers, idalink, pefile, pyelftools, bitstring, pyvex, cle, progressbar, cachetools, futures, angr, shellphish-afl, shellphish-qemu, tqdm, fuzzer Running setup.py install for future ... done Running setup.py install for ana ... done Running setup.py install for claripy ... done Running setup.py install for networkx ... done Running setup.py install for cooldict ... done Running setup.py install for dpkt-fix ... done Running setup.py install for mulpyplexer ... done Running setup.py install for ailment ... done Running setup.py install for pycparser ... done Running setup.py install for archinfo ... done Running setup.py install for rpyc ... done Running setup.py install for idalink ... done Running setup.py install for pefile ... done Running setup.py install for pyelftools ... done Running setup.py install for bitstring ... done Running setup.py install for cle ... done Running setup.py install for progressbar ... done Running setup.py install for shellphish-afl ... error Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-build-QluSO3/shellphish-afl/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-wpVEXT-record/install-record.txt --single-version-externally-managed --compile: running install running build Setting up AFL-other-arch Cloning into 'bin/afl-unix'... patching file qemu_mode/patches/elfload.diff Hunk #1 FAILED at 1. Hunk #2 FAILED at 9. 2 out of 2 hunks FAILED -- saving rejects to file qemu_mode/patches/elfload.diff.rej error: Unable to apply AFL patch

    ----------------------------------------
    

    Command "/usr/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-build-QluSO3/shellphish-afl/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-wpVEXT-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-QluSO3/shellphish-afl/

    Any ideas?

    Thank you!

    opened by caballomaldito 2
  • Installation error

    Installation error

    I got this when I tried pip install git+https://github.com/shellphish/shellphish-afl

        /tmp/pip-ugqYQB-build/bin/afl-multi-cgc/afl/qemu_mode/multicb-qemu/user-exec.c: In function ‘cpu_resume_from_signal’:
        /tmp/pip-ugqYQB-build/bin/afl-multi-cgc/afl/qemu_mode/multicb-qemu/user-exec.c:71:37: error: dereferencing pointer to incomplete type ‘struct ucontext’
                 sigprocmask(SIG_SETMASK, &uc->uc_sigmask, NULL);
                                             ^~
        /tmp/pip-ugqYQB-build/bin/afl-multi-cgc/afl/qemu_mode/multicb-qemu/user-exec.c: In function ‘cpu_x86_signal_handler’:
        /tmp/pip-ugqYQB-build/bin/afl-multi-cgc/afl/qemu_mode/multicb-qemu/user-exec.c:213:41: error: dereferencing pointer to incomplete type ‘struct ucontext’
         #define PC_sig(context)       ((context)->uc_mcontext.gregs[REG_RIP])
                                                 ^
        /tmp/pip-ugqYQB-build/bin/afl-multi-cgc/afl/qemu_mode/multicb-qemu/user-exec.c:232:10: note: in expansion of macro ‘PC_sig’
             pc = PC_sig(uc);
                  ^~~~~~
        /tmp/pip-ugqYQB-build/bin/afl-multi-cgc/afl/qemu_mode/multicb-qemu/user-exec.c:237:1: warning: control reaches end of non-void function [-Wreturn-type]
         }
         ^
        /tmp/pip-ugqYQB-build/bin/afl-multi-cgc/afl/qemu_mode/multicb-qemu/rules.mak:57: recipe for target 'user-exec.o' failed
        make[2]: *** [user-exec.o] Error 1
        make[2]: *** Waiting for unfinished jobs....
        Makefile:173: recipe for target 'subdir-i386-linux-user' failed
        make[1]: *** [subdir-i386-linux-user] Error 2
        make[1]: Leaving directory '/tmp/pip-ugqYQB-build/bin/afl-multi-cgc/afl/qemu_mode/multicb-qemu'
        Makefile:2: recipe for target 'all' failed
        make: *** [all] Error 1
        error: Unable to make afl-multi-cgc
    

    Anything that can be done from my side for this?

    opened by awakened1712 5
  • What causes this error?

    What causes this error?

    root@a57c22203b68:/ctf/work# shellphuzz /ctf/work/fm WARNING | 2018-08-08 16:19:59,460 | claripy | Claripy is setting the recursion limit to 15000. If Python segfaults, I am sorry. [*] Creating fuzzer... Traceback (most recent call last): File "/usr/local/bin/shellphuzz", line 69, in create_dictionary=not args.no_dictionary, stuck_callback=stuck_callback, time_limit=args.timeout File "/usr/local/lib/python2.7/dist-packages/fuzzer/fuzzer.py", line 162, in init self.os = p.loader.main_object.os AttributeError: 'Loader' object has no attribute 'main_object'

    opened by WinMin 2
Owner
Shellphish
Shellphish
A simple Discord Bot created for basic functionality and fun chat commands for use in a private server.

LoveAndChaos-Bot v0.1.0 LoveAndChaos-Bot is a Discord Bot specifically designed for a private server; this bot is merely a test and a method to expose

Morgan Rose 1 Dec 12, 2021
An Open-Source Discord bot created to provide basic functionality which should be in every discord guild. We use this same bot with additional configurations for our guilds.

A Discord bot completely written to be taken from the source and built according to your own custom needs. This bot supports some core features and is

Tesseract Coding 14 Jan 11, 2022
Simple PoC script that allows you to exploit telegram's "send with timer" feature by saving any media sent with this functionality.

Simple PoC script that allows you to exploit telegram's "send with timer" feature by saving any media sent with this functionality.

Matteo 52 Nov 29, 2022
Collection of AWS Fault Injection Simulator (FIS) experiment templates.

Collection of AWS Fault Injection Simulator (FIS) experiment templates. These templates let you perform chaos engineering experiments on resources (applications, network, and infrastructure) in the AWS Cloud.

Adrian Hornsby 8 Nov 27, 2022
A PowerPacked Version Of Telegram Leech Bot With Modern Easy-To-Use Interface & UI !

FuZionX Leech Bot A Powerful Telegram Leech Bot Modded by MysterySD to directly Leech to Telegram, with Multi Direct Links Support for Enhanced Leechi

MysterySD 28 Oct 9, 2022
Easy-apply-bot - A LinkedIn Easy Apply bot to help with my job search.

easy-apply-bot A LinkedIn Easy Apply bot to help with my job search. Getting Started First, clone the repository somewhere onto your computer, or down

Matthew Alunni 5 Dec 9, 2022
Andrei 1.4k Dec 24, 2022
Nasdaq Cloud Data Service (NCDS) provides a modern and efficient method of delivery for realtime exchange data and other financial information. This repository provides an SDK for developing applications to access the NCDS.

Nasdaq Cloud Data Service (NCDS) Nasdaq Cloud Data Service (NCDS) provides a modern and efficient method of delivery for realtime exchange data and ot

Nasdaq 8 Dec 1, 2022
Dante, my discord bot. Open source project in development and not optimized for other filesystems, install and setup script in development

DanteMode (In private development for ~6 months) Dante, my discord bot. Open source project in development and not optimized for other filesystems, in

null 2 Nov 5, 2021
Python Package For MTN Zambia Momo API. This package can also be used by MTN momo in other countries.

MTN MoMo API Lite Python Client Power your apps with Lite-Python MTN MoMo API Usage Installation Add the latest version of the library to your project

Mathews Musukuma 7 Jan 1, 2023
CryptoApp - Python code to pull wallet balances from a variety of different chains through nothing other than your public key.

CryptoApp - Python code to pull wallet balances from a variety of different chains through nothing other than your public key.

Zach Frank 4 Dec 13, 2022
A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.

Light Gradient Boosting Machine LightGBM is a gradient boosting framework that uses tree based learning algorithms. It is designed to be distributed a

Microsoft 14.5k Jan 8, 2023
Use an air-gapped Raspberry Pi Zero to sign for Bitcoin transactions! (and do other cool stuff)

Hello World! Build your own offline, airgapped Bitcoin transaction signing device for less than $35! Also generate seed word 24 or generate a seed phr

null 371 Dec 31, 2022
Proxy server that records responses for UI testing (and other things)

Welcome to playback-proxy ?? A proxy tool that records communication (requests, websockets) between client and server. This recording can later be use

Yurii 41 Apr 1, 2022
Command-line program to download videos from YouTube.com and other video sites

youtube-dl - download videos from youtube.com or other video platforms INSTALLATION DESCRIPTION OPTIONS CONFIGURATION OUTPUT TEMPLATE FORMAT SELECTION

youtube-dl 116.4k Jan 7, 2023
Download videos from Youtube and other platforms through a Telegram Bot

ytdl-bot Download videos from YouTube and other platforms through a Telegram Bot Usage: https://t.me/benny_ytdlbot Send link from YouTube directly to

Telegram Bot Collection 289 Jan 3, 2023
Source Code for our bot that manages time and other functions of the server <3

Komi San wants you to study This repo contains the source code for our bot that manages time and other functions of the server <3 Features Your study

Komi San wants you to study 8 Nov 8, 2021
❤️ Hi There Im EzilaX ❤️ A next gen powerful telegram group manager bot 😱 for manage your groups and have fun with other cool modules Made By Sadew Jayasekara 🔥

❤️ EzilaX v1 ❤️ Unmaintained. The new repo of @EzilaXBot is Public. (It is no longer based on this source code. The completely rewritten bot available

Sadew Jayasekara 18 Nov 24, 2021
Experimental bridges between Telegram calls and other platforms.

Bridges by Calls Music Experimental bridges between Telegram calls and other platforms. Current bridges Bridge 1 (YouTube, Twitch, Facebook, etc...) B

Calls Music 14 Oct 8, 2022