View decrypt_ruby_MessageEncryptor.py
import hashlib | |
import base64 | |
from Crypto import Random | |
from Crypto.Cipher import AES | |
import rubymarshal.reader | |
from pbkdf2 import PBKDF2 | |
SECRET = "a3f58debfe0c5b71edaebea3a627f4f" | |
SALT = "12345" | |
ITERATIONS = 65536 |
View decrypt_ruby_MessageEncryptor.py
import hashlib | |
import base64 | |
from Crypto import Random | |
from Crypto.Cipher import AES | |
import rubymarshal.reader | |
from pbkdf2 import PBKDF2 | |
SECRET = "a3f58debfe0c5b71edaebea3a627f4f" | |
SALT = "12345" | |
ITERATIONS = 65536 |
View fstring.py
# you want to figure out a fstring? you have limited time? it's so simple but you don't want to spend time? | |
# here you go then! | |
# python3 fstring.py [first value] [first result] [optional second value] [optional second result] | |
# | |
# python3 fstring.py 12.3456789 "'0000012.3000000'" 123.456789 "'00000123.500000'" | |
# this will output possible fstrings | |
# edit charset below with whatever you want. you want to have 39 zero padding instead of 15? add chars 39 somewhere in middle | |
# you will figure it out | |
import sys |
View netherlands-iban-acc-number-validate.py
# Netherlands account number algorithm uses this factor table: | |
# digit | factor | |
# 1st | 10 | |
# 2nd | 9 | |
# ... | |
# 10th | 1 | |
# | |
# After multiplying digits according to the table, sum of these results must be divisible with 11 |
View multipleevent.py
def press_or_text(user_id): | |
return events.Raw(func=lambda e: (type(e) == UpdateNewMessage and e.message.from_id == user_id) or (type(e) == UpdateBotCallbackQuery and e.user_id == user_id and e.data != b'cancel')) | |
whatever = await conv.wait_event(press_or_text(sender)) | |
if type(whatever) == UpdateBotCallbackQuery and whatever.data in [b'create', b'list']: | |
# button clicked | |
# not actual event like "CallbackQuery", you can't use .edit() etc. directly | |
print(whatever.data) | |
else: | |
# message sent |
View gist:861934f2d0472400c6f9a764b4b7589d
from telethon.tl.types import ChannelParticipantCreator, ChannelParticipantAdmin | |
from telethon.tl.functions.channels import GetParticipantRequest | |
#.. | |
@client.on(events.NewMessage) | |
async def handler(event): | |
participant = await client(GetParticipantRequest(channel=event.original_update.message.to_id.channel_id,user_id=event.original_update.message.from_id)) | |
isadmin = (type(participant.participant) == ChannelParticipantAdmin) | |
iscreator = (type(participant.participant) == ChannelParticipantCreator) |
View spotify-media-key-fix.sh
dbus-monitor | grep --line-buffered interface=org.mpris.MediaPlayer2.Player | grep --line-buffered -v spotify | awk -W interactive -F'member=' '{print $2}' | xargs -L1 -I {} dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.{} | |
# when you play another media, and restart spotify, media keys get sent to another destination. | |
# in my case, it was VLC. output from dbus-monitor: | |
# | |
# method call time=1586780292.910122 sender=:1.58 -> destination=org.mpris.MediaPlayer2.vlc serial=1878 path=/org/mpris/MediaPlayer2; interface=org.mpris.MediaPlayer2.Player; member=PlayPause | |
# so I piped together a few commands, which got the wrong dbus output, and forwarded it to spotify. | |
# run: | |
# bash spotify-media-key-fix.sh & |
View selenium-save-profile-session.py
# Selenium does not use the given profile, but copies it, and uses a temporary profile. | |
# As a result, new cookies and sessions etc. are not saved. | |
# To fix it, we get the actual profile firefox is using, kill firefox manually so geckodriver | |
# doesn't delete profile data. Copying the profile when it's being used is generally not a good idea. | |
# After killing firefox profile and databases are unlocked, we copy the "temporary" profile | |
# to our old profile. | |
# | |
# driver.profile doesn't provide the actual temporary profile, but another copy of it. And firefox | |
# does not use that one. that's why I got it from process list. | |
# |
View phpkoru.deobfuscate.php
<?php | |
$input = file_get_contents("untitled.php"); | |
//edit this filename | |
$fge_ebg13 = "str_rot13"; | |
$onfr64_qrpbqr = "base64_decode"; | |
$eha_pbqr = "cnVuX2NvZGU="; |
NewerOlder