Python module and its web equivalent, to hide text within text by manipulating bits

Overview

cacherdutexte.github.io

This project contains :

  • Python modules (binary and decimal system 6) with a dedicated tkinter program to use it.
  • A web version, which is actually hosted on https://cacherdutexte.github.io.

I explain below how the project works, but an english version is available. See directly the English explanation 🇬🇧

🇫🇷 Comment j'ai caché du texte dans du texte

C'est une façon en manipulant les bits de cacher du texte dans du texte. Imaginons la chaine de caractère :

Hacker

Que je veux cacher dans le message :

Bonjour, je suis Axel Thauvin
  • Dans un premier temps, on vient rĂ©cupĂ©rer la reprĂ©sentation dĂ©cimale dans la table UTF-8 de chaque caractère de la chaine Hacker

    Voici dans un tableau, la représentation décimale des 127 premiers caractères (aussi appelé tableau ASCII) :

Pour l'exemple, nous allons prendre le caractère H. Ici, sa représentation décimale est 72 (base 10).

  • Ensuite nous allons convertir ce nombre en base 6 sur 4 'bits'

    Pourquoi ?

    Si nous codons les lettres en base 6 sur 4 bits, nous aurons la représentation maximale de 5555 -> soit 64 -> 1296 : la valeur maximale que nous allons pouvoir exploiter dans ce tableau

    En fait nous avons 5 caractères invisibles qui vont correspondrent aux chiffres de ces bits, que nous allons cacher dans notre texte.

    • Pour le 0 il n'y a pas de caractère cachĂ©
    • Pour le 1 c'est le caractère unicode \u200C
    • Pour le 2 c'est le caractère unicode \u200D
    • Pour le 3 c'est le caractère unicode \u200E
    • Pour le 4 c'est le caractère unicode \u200F
    • Pour le 5 c'est le caractère unicode \u034F

    Exemple avec le H

    Ici la représentation décimale de H est 72. Sa représentation en base 6 sur 4 bits est 0200.

    Je vais donc :

    • Pas ajouter de caractère pour le 1er bit (car il vaut 0)
    • Ajouter le caractère \u200D pour le 2ème bit (car il vaut 2)
    • Pas ajouter de caractère pour le 3ème bit (car il vaut 0)
    • Pas ajouter de caractère pour le 4ème bit (car il vaut 0)

    Reprenons la chaine initiale J'ai Bonjour, je suis Axel Thauvin. Je vais donc Ă©crire : Bo\u200Dnj juste pour le H

    Et je fais pareil avec tous les caractères de Hacker. Ce qui me donne : Bo‍njou‍r‏,‌ j‍e‏ ‎su‍i͏s͏ A‍x‏e͏l ‎T‌hauvin (généré avec mon programme, vous pouvez l'essayer sur mon site)

    Voilà le résultat :

🇬🇧 How did I hid text in text

This is a bitwise way of hiding text within text. Let's imagine the string :

Hacker

That I want to hide in the message:

Hello, I am Axel Thauvin
  • First, we get the decimal representation in the UTF-8 table of each character in the Hacker string

    Here is the decimal representation of the first 127 characters in an array (also called ASCII array):

For the example, we will take the character H. Here, its decimal representation is 72 (base 10).

  • Then we will convert this number to base 6 on 4 'bits'

    Why ?

    If we encode the letters in base 6 on 4 bits, we will have the maximum representation of 5555 -> that is 64 -> 1296 : which is the maximum value we can use in this table

    In fact we have 5 invisible characters which will correspond to the digits of these bits, which we will hide in our text.

    • For the 0 there is no hidden character*.
    • For 1 it is the unicode character \u200C*
    • For 2 it is the unicode character \u200D*
    • For 3 it is the unicode character \u200E
    • For 4 it is the unicode character \u200F
    • For 5 it is the unicode character \u034F

    Example with H

    Here the decimal representation of H is 72. Its 4-bit base-6 representation is 0200.

    I will therefore :

    • Not add a character for the 1st bit (because it is 0)
    • Add the character \u200D for the 2nd bit (because it is 2)
    • Not add a character for the 3rd bit (because it is 0)
    • Do not add a character for the 4th bit (because it is 0)

    Let's go back to the original string. I have Hello, I am Axel Thauvin. So I'll write : I'll write He\u200Dll just for the H

    And I do the same with all the characters in Hacker. Which gives me: He‍‍llo‍,‏‍‌ ‏‍I‏‌‎ a‍‍͏m͏‏ ‍‎‏A͏x‍‎e‌͏l͏ T‍h‏a͏uv‎i‌n (generated with my program, you can try it on my website)

    Here is the result:

Owner
Cheers, love! The cavalry's here !
A library from RCTI+ to handle RabbitMQ tasks (connect, send, receive, etc) in Python.

Introduction A library from RCTI+ to handle RabbitMQ tasks (connect, send, receive, etc) in Python. Requirements Python =3.7.3 Pika ==1.2.0 Aio-pika

Dali Kewara 1 Feb 05, 2022
Toolkit for collecting and applying templates of prompting instances

PromptSource Toolkit for collecting and applying templates of prompting instances. WIP Setup Download the repo Navigate to root directory of the repo

BigScience Workshop 1k Jan 05, 2023
Daiho Tool is a Script Gathering for Windows/Linux systems written in Python.

Daiho is a Script Developed with Python3. It gathers a total of 22 Discord tools (including a RAT, a Raid Tool, a Nuker Tool, a Token Grabberr, etc). It has a pleasant and intuitive interface to faci

AstraaDev 32 Jan 05, 2023
Tool for generating Memory.scan() compatible instruction search patterns

scanpat Tool for generating Frida Memory.scan() compatible instruction search patterns. Powered by r2. Examples $ ./scanpat.py arm.ks:64 'sub sp, sp,

Ole André Vadla Ravnås 13 Sep 19, 2022
A collection of common regular expressions bundled with an easy to use interface.

CommonRegex Find all times, dates, links, phone numbers, emails, ip addresses, prices, hex colors, and credit card numbers in a string. We did the har

Madison May 1.5k Dec 31, 2022
A pythonic dependency injection library.

Pinject Pinject is a dependency injection library for python. The primary goal of Pinject is to help you assemble objects into graphs in an easy, main

Google 1.3k Dec 30, 2022
Automatically Generate Rulesets for IIS for Intelligent HTTP/S C2 Redirection

Automatically Generate Rulesets for IIS for Intelligent HTTP/S C2 Redirection This project converts a Cobalt Strike profile to a functional web.config

Jesse 99 Dec 13, 2022
Shut is an opinionated tool to simplify publishing pure Python packages.

Welcome to Shut Shut is an opinionated tool to simplify publishing pure Python packages. What can Shut do for you? Generate setup files (setup.py, MAN

Niklas Rosenstein 6 Nov 18, 2022
Helpful functions for use alongside the rich Python library.

🔧 Rich Tools A python package with helpful functions for use alongside with the rich python library. 󠀠󠀠 The current features are: Convert a Pandas

Avi Perl 14 Oct 14, 2022
Rabbito is a mini tool to find serialized objects in input values

Rabbito-ObjectFinder Rabbito is a mini tool to find serialized objects in input values What does Rabbito do Rabbito has the main object finding Serial

7 Dec 13, 2021
ticktock is a minimalist library to view Python time performance of Python code.

ticktock is a minimalist library to view Python time performance of Python code.

Victor Benichoux 30 Sep 28, 2022
Auto-generate /etc/hosts for HackTheBox machines

Auto-generate /etc/hosts for HackTheBox machines Save yourself some tedium on getting started on a new machine by having your /etc/hosts ready to go.

3 Feb 16, 2022
Search, generate & deliver Msfvenom payloads in an quick and easy way

Goal Search, generate & deliver payloads in an quick and easy way Be as simple as possible BUT with all msfvenom payloads. Ever lost time searching th

2 Mar 03, 2022
🦩 A Python tool to create comment-free Jupyter notebooks.

Pelikan Pelikan lets you convert notebooks to comment-free notebooks. In other words, It removes Python block and inline comments from source cells in

Hakan Ă–zler 7 Nov 20, 2021
A Python script that transcript Arcaea chart file (.aff file) into AutoJS touchscreen script which automatically plays the Arcaea chart

ArcaeaAutoplay (AutoJS Version) A Python script that transcript Arcaea chart file (.aff file) into AutoJS touchscreen script which automatically plays

7 Dec 03, 2021
Python humanize functions

humanize This modest package contains various common humanization utilities, like turning a number into a fuzzy human-readable duration ("3 minutes ag

Jason Moiron 1.6k Jan 01, 2023
A random cats photos python module

A random cats photos python module

Fayas Noushad 6 Dec 01, 2021
Python Classes Without Boilerplate

attrs is the Python package that will bring back the joy of writing classes by relieving you from the drudgery of implementing object protocols (aka d

The attrs Cabal 4.6k Jan 06, 2023
This tool lets you perform some quick tasks for CTFs and Pentesting.

This tool lets you convert strings and numbers between number bases (2, 8, 10 and 16) as well as ASCII text. You can use the IP address analyzer to find out details on IPv4 and perform abbreviation a

Ayomide Ayodele-Soyebo 1 Jul 16, 2022
python script to generate color coded resistor images

Resistor image generator I got nerdsniped into making this. It's not finished at all, and the code is messy. The end goal it generate a whole E-series

MichD 1 Nov 12, 2021