Coder Social home page Coder Social logo

apate's Introduction

Apate is deprecated

While it was a fun project that really introduced me into the world of BetterDiscord plugins, I will no longer maintain Apate and take it down from the BD website. This is mostly due to the fact that this plugin is used primarily for malicious purposes and/or being disrespectful. Just because you have a plugin that uses some steganography and cryptography, doesn't make it ok for you to be toxic to other people that can't see your messages and open up servers that are against Discord ToS. If you really need a plugin that encrypts your messages, I'm sure you'll be able to find one with a quick google search. I do not want to be associated and/or responsible for the problematic use cases Apate can induce. It was never my intention for this plugin to turn out the way it is seemingly used now. It's also a lot of work to maintain such a big plugin.

Thank you for understanding.


Apate

Hide your secret Discord messages in other messages!

JavaScript Standard Style

Apate is a tool based on StegCloak that allows you to send and read invisible hidden messages through BetterDiscord. It hides the message using zero width unicode characters and an indicator character at the start of the string. It then goes through all the messages in chat and tries to insert a new div with the hidden message.

Installing

Make sure you have BetterDiscord installed. Then just download the Plugin here and pull it into your plugins Folder. If you are asked to download the ZeresPluginLibrary, download it. If you see a There is an update for Apate available! Banner message, click it to fully update Apate.

Usage

Demo


Syntax:

Cover text *hidden message*

For a more detailed explanation, click here.

End to End Encryption

For a detailed description on how to use e2e encryption in your messages, click here.

Passwords

In Apate you can set your own password and then only people that have your password in their list can read your messages.

To set your password:

Go into Settings > Plugins > Apate Settings (Cogwheel) > Encryption and enter the password you want into the Textbox. This will be your default password and all your messages will be encrypted with it, as long as you have Encrpytion on. If you don't want to generate a password yourself, you can hit the Generate Password Button. It will create a password out of three english words and then random symbols to make the password both secure and easy to identify.

To manage your password list:

Go into Settings > Plugins > Apate Settings (Cogwheel) > Passwords.
If you want to add a password, enter it into the Textbox and press Add Password. The password should appear in the list below and then Apate should decrypt all messages with that specific password automatically. To remove a password, press the โŒ Symbol.

Import / Export Password list:

In case you want to save your password list to make sure you don't lose it you can press the Download Password list button. It will promt you to save your list as a .txt file. If you then want to import that password list, simply press Import Password list and select your file. Notice ALL YOUR PASSWORDS WILL BE LOST when you import a new list. Save your password list before importing a new one, just to be sure you dont loose anything. Note:

  • Your personal password is always automatically in your list (if you used it at least once).
  • The more passwords you have in your list, the longer the decryption prosses will take.
  • The higher up a password is, the more priority it has (passwords you use often will automatically move up the list).

Quickly changing between passwords

By default, the message will be sent with your chosen password (if encrpytion is turned on). If you want to send a message with a different (or no) password once, you can right-click the key on the bottom right to select a password. This will NOT change your default password.

Authors

Apate Logo

TheGreenPig

fabJunior

BenjaminAster

Contributors

Apate Logo

gurrrrrrett3

Services used and people to thank:

  • StegCloak

    This does all the hiding. Apate could not work without it!

    Github link

  • Cryptico

    Is used for the End to End (asymmetric) Encryption!

    Github link

  • Better Discord

    Without it, I couldn't even make plugins for Discord at all, so huge thanks!

    Website

  • Zere's Plugin Library

    An incredibly useful library used a lot in the plugin. Thanks Zerebos!

    Documentation

  • images.weserv.nl

    Is used a cool free proxy for all images to prevent people from using malicious links to grab IP addresses.

    Website

  • All the helpful people of the BD community

    Thank you for showing me helpful tips and getting me into the world of BetterDiscord plugin programming.

    Discord Server

apate's People

Contributors

benjaminaster avatar fabjunior avatar gurrrrrrett3 avatar r-rajaneesh avatar thegreenpig 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

Watchers

 avatar  avatar  avatar  avatar

apate's Issues

Question regarding E2E encryption

I'm sorry this is not a bug report but I can't think of another way to ask general questions.

What is the purpose of E2E in DMs? DMs are already private and Apate encryption already worked within them IIRC. There's no one to hide your messages from (unless you are counting interference from Discord) and if you want them encrypted you still have to use asterisks and a cover message which is tiresome for long conversations such as DMs. As far as I can see the only thing E2E does is auto generate and share a password. But why? Why would you want and go through the effort of encrypting DMs in the first place???

Better Discord Version

The betterdiscord version has to be 1.2.1. It doesn't work on anything below that. I am writing here just to inform you of that.

apate nonfunctional on my machine

none of the hotkeys work for me, my about page doesnt have a hidden message, there's no key button, etc. thinking there was a potential conflict, i removed every plugin except apate from my plugins folder and disabled my themes, apate then failed to start so i put everything back. i went to the discord and looked through the issues, someone had a conflict with copier, was found through console. checked console, and apparently there was an uncaught reference error to cryptico. fyi, i got the plugin from plugin repo

only seems to work in DM

i can only seem to get this to work on DM,
is there something im missing?
both the Key and CTRL+Enter work in DM
both nothing works in any discord channel
Discord_FzOoVGFY1E

Can't turn off E2E

Seems like E2E can't be turned off. When one of us or both of us disable E2E, even after restarting discord, E2E is still enabled.

Also typo in the disable message!

Do you whish to delete your End to End encryption? WARNING: All your old messages will become unreadable exept for the other user.

not showing the hidden messages

I can send messages which have a hidden part, just not see them.
there are no error messages in the console, I am on the newest version of better discord and Apate, and have no other enabled plugins.
image
image

Typo

In the Installing part of the main page you have "Pluin" written instead of "Plugin"

Most recent update (today) broke plugin.

As the title states, I got a banner saying there was an update, I do the update and now it will not work, it also broke another plugin of mine (edit users) that was changing the color of specific user's messages to a custom one causing it all to become gray.

DM Encryption Support

Hello, this isn't necessarily an issue, just a feature suggestion.

The Key Bind/Key GUI to enable hidden encrypted messages via Apate works/shows up, as expected, in actual servers:

image

But not Direct Messages/Group DMs:

image

Is there any specific reason why this is the case? If possible, could you implement DM functionality in the future?

Apate v1.4.0 - Key Icon Gone?

Hi, since updating to Apate v1.4.0 the key icon has vanished, however downgrading to 1.3.5 the icon comes back..
Screen Shot 2021-10-16 at 3 20 17 pm

Icon Gone???
Screen Shot 2021-10-16 at 3 20 29 pm

Stable 101451 (b46c230)
BetterDiscord 1.2.1
Host 0.0.264 OS X 10.15.7 (20.6.0)

Also none of the keyboard shortcuts work on the Mac.
CTRL+ENTER does nothing, message wont send its just locks me out from sending anything.. (like all input is blocked)
CTRL+SHIFT+ENTER - same thing
CTRL+ALT+ENTER - same thing (ALT is Option key on Mac)

BTW these used to work on V 1.3.5

EDIT: working commit 669a896
however when doing update from 1.3.5 using the plugin-in repo V1.4.0 is broken.

Typo and better descriptions

Found a typo and thought I should give input on the way some settings are described.

Typo:
Screenshot_10

Descriptions:
Screenshot_11
This could be described better, maybe something like, "Choose whether or not Apate animations are displayed."

Screenshot_12
A bit messy to read as is, could instead be, "If encryption is turned on, all messages will be encrypted with the password defined below. Only people with the exact password you input can see your messages."

Screenshot_13
Some unnecessary words used, I would just simplify it, "If encryption is turned off this field will be ignored."

Screenshot_14
A little too detailed of a description, try something along the lines of, "All text after the encrypted message will be invalid. Enabling this option will delete all invalid text when attempting to send."

Screenshot_15
I feel like this doesn't accurately describe this shortcut, I would use, "Enables the key combination CTRL+Enter to send your message with encryption."

Screenshot_16
Accurate but too descriptive, simplify it, "Removes the black background of encrypted messages."

Screenshot_17
The way this is currently described makes it sound like your IP might be accidentally grabbed by the plugin itself. I would change it to, "Links to images will be displayed. WARNING: Any image links hosted on an IP logger will be displayed as well, this can reveal your IP address."

Question / Suggestion

When the plugin got released, there wasn't a limit on how many passwords you could configure. Why have you decided to add a limit, and can it be removed or increased?

[Bug] Object URLs never cleared

There are many calls to URL.createObjectURL() but no calls to URL.revokeObjectURL() which leads to a memory leak. As per MDN:

Each time you call createObjectURL(), a new object URL is created, even if you've already created one for the same object. Each of these must be released by calling URL.revokeObjectURL() when you no longer need them.

Loading hidden message...

its stuck saying this and it doesnt want to load, others can see what i said that have the plugin but i cant see anyones or myselfs

turn off the key in the chat box

uhm hey hope this isnt dumb (aka me just not finding the option) but it would be nice to have a setting to hide they key in the chat box since i prefer using the ctrl enter method and dont intend to password lock my hidden stuff.

Apate causes duplicate messages?

An odd issue I'm dealing with: Whenever I load Discord (including re-loading via CTRL+R), my messages always get sent twice and I can't see other people's encrypted segments of messages til I delete and reinstall Apate to my Discord client... Any ideas on what could be causing this? I do have 60 plugins total so there's a chance that another plugin may be causing the issue, but I don't know for certain.

Twitch

Hey, do you think it would be possiible to make a twitch browser extention that would function like that?

Doesnt work on newest canary

After yesterdays canaray update it doesnt work anymore i also updated it when the update came out but still i cant hide messages. it shows some errors in the console but i dunno what they mean tbh.

Images are directly loaded

This allows users to obtain IP addresses by sending image links hosted on IP loggers.
Using an image proxy for the decoded image link would fix this issue, however I can't see an easy way of doing it with discord's own image proxy.

No Key In Group DM

The recent hotfix seems to have restored the little key icon in direct dms, but my groupchats still have no icon.

Version 1.4.6 crashes BetterDiscord 1.4.0

I saw Apate having an update in some toolbar, and after installing it & reloading Discord, the entire app stopped working. I tracked the issue down to Apate by backing the old plugins folder up & enabling just these plugins (not Apate as with it the app's crashing):
image

And for the "error message", this is the most I could get:
image

Permanent Blank password

There is a blank password that I have tried removing but can not, it is the topmost password

image
image

it is either a placeholder or an actual password but I can't remove it

Cant send hidden message

I'm not sure if I'm just being really stupid or what, but clicking the key and doing shift+enter simply
don't do anything. I have the newest version, I have the Zeres library thing installed, and I even disabled all other plugins.
ezgif-2-5a6839bc05aa

Typo

When you want to request someone to encrypt a chat, there's a typo in the message box.

"If you reqest to set up a secure channel and the other person does not have Apate, they will see the request as an empty message."

Corrupted message when including an emoji

When the second word of the cover message is an emoji, on certain occasions the hidden message will break.

For example, if I want to hide the message "done" with the message Mhhh :shibathink: *done* the result is as follows:
Discord_jPqer38d36

I also tried to hide the message "ok" with so :AquaInspect: mhh *ok* and the result:
Discord_deOXYaUcJz

With a longer message Alright :ablobnod: will it work *or will it fail?*:
Discord_kNOmBU3qAB


Usually, the last character is altered/deleted (or last few characters) and in some occasions the whole hidden message is reduced to nothing, as if no message was hidden. However, sometimes, nothing bad happens, so it's a bit of a gamble.

What I've understood is that when I type a message, like Mhhh :shibathink: *done*, the text that the reveal worker will get is Mhhh (with a trailing space) instead of Mhhh :shibathink: and that's what's breaking some messages.

In fact, it seems to work fine when I make the revealWorker get the innerHTML of the message instead of the textContent in the addHiddenMessageBanners method.

// const textContent = messageContainer.querySelector(
// 	`div[class*="contents-"][role="document"] > div[class*="markup-"][class*="messageContent-"]`
// ).textContent;

const textContent = messageContainer.querySelector(
	`div[class*="contents-"][role="document"] > div[class*="markup-"][class*="messageContent-"]`
).innerHTML;

After fiddling a bit with the code, I came up with this possibly more elegant fix in addHiddenMessageBanners where the const textContent is initialized:

const domMessage = messageContainer.querySelector(
	`div[class*="contents-"][role="document"] > div[class*="markup-"][class*="messageContent-"]`
).cloneNode(true);

const messageEmojis = domMessage.querySelectorAll(`span[class*="emojiContainer-"]`);

for (let emoji of messageEmojis) {
	emoji.innerHTML = emoji.children[0].alt;
}

const textContent = domMessage.textContent;

The result is textContent having the proper :emoji: text:

Discord_G5LAL6V7mM

Add user password protection for messages

Add the ability to set a password for your messages in the settings so only people with that same password can access your messages.

Not sure if it's possible but I thought it would be a neat idea so you can talk to specific people sharing the same message password.

E.g. You set your password to "1234" in the settings and everyone with that same password can access your messages encrypted with "1234". But if you don't have that exact password the message can't be displayed.

I feel like this would add some privacy for groups of friends that want to talk to each other without some random dude with the plugin being able to view their messages.

[Suggestion] Group Chats E2EE

I would like to see the option of E2EE in group DMs so it's safer, more secure, more private and more convenient option to keep your messages encrypted while talking to a bunch of friends instead of DMing everyone separately or just use normal messages in a group chat

Most recent update breaks the plugin

After installing the newest version, Encrypted messages no longer show up.
image

It just says Loading hidden message... and then the message box disappears.

[Suggestion] Per-Message password

It would be great to be able to choose a password to use from a dropdown, possibly by right-clicking on the key when posting messages. Sometimes, I would like to encrypt my message, but a lot of the time I want it to be publicly visible or use a different password without going into settings.

How it would look:

  1. Create/Add a password
  2. Type in a message
  3. Special-click on key
  4. Choose a password to use OR NONE
  5. Post with special message password set or public.

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.