Skip to content

Instantly share code, notes, and snippets.

@sh4dowb
sh4dowb / fuck-ethereum.py
Last active Dec 8, 2022
run a fucking ethereum VERY LIGHT client that uses cloudflare rpc
View fuck-ethereum.py
"""
do you have an app that fucking supports geth only?
and after new cryptobros got high and decided you should have at least 1 TB SSD and 10 fucking free days to synchronize to run a "fast" node, you can't be fucking bothered?
well I did, and there you fucking go. this fucking shit gets all stupid motherfucking data from cloudflare and handles account creation and sending etc
fuck you web 3.0
run geth with snap and dont run no consensus or what in the flying fuck that is
note that you probably need to add more methods to the cloudflare array for block and tx fetching etc.
I also added gas price fetching because the app was fucking dumb and sending 0x0
@sh4dowb
sh4dowb / catch_all.txt
Created Jan 15, 2022
catch-all mail server installation on ubuntu
View catch_all.txt
# redirect MX record to your server ip
apt install postfix
adduser myuser # necessary - you cannot login as root on dovecot imap
# add user
nano /etc/postfix/virtual
# @example.com myuser
# info@example.com info # optional
@sh4dowb
sh4dowb / stake_limbo_verify.py
Created Dec 8, 2021
verify stake.com limbo outcome with python
View stake_limbo_verify.py
import hmac
import hashlib
def getLimboOutcome(server, client, nonce):
server = server.encode()
client = client.encode()
nonce = str(nonce).encode()
round = 0
hash = hmac.new(server, client+b':'+nonce+b':'+str(round).encode('utf-8'), hashlib.sha256).digest()
first4 = hash[:4]
@sh4dowb
sh4dowb / decrypt.py
Created Sep 17, 2021
Decrypt crypto-js default AES encryption with OpenSSL KDF in Python 3
View decrypt.py
# I absolutely hated crypto-js for this. non-standard configurations, weird algorithms, ...
# well obviously you can encrypt it with a better configuration which people will not
# go crazy figuring out its implementation, but in this case I wasn't encrypting the data.
import base64
from Crypto.Hash import MD5
from Crypto.Util.Padding import unpad
from Crypto.Cipher import AES
# generated using: CryptoJS.AES.encrypt('test 123456 plaintext', 'some password').toString()
@sh4dowb
sh4dowb / send_usdt.py
Created Aug 26, 2021
tronapi python mass USDT payment - send mass USDT payments with python
View send_usdt.py
import time
from tronapi import Tron
full_node = 'https://api.trongrid.io'
solidity_node = 'https://api.trongrid.io'
event_server = 'https://api.trongrid.io'
pkey = "private_key_hex"
payments = [
@sh4dowb
sh4dowb / atomic_eth.js
Created May 30, 2021
atomic wallet get eth private key / address by mnemonic seed
View atomic_eth.js
// fuck you atomic. why can't you just be fucking normal?
// east home innocent snake icon curtain series brave guard program history stand
// BIP39 seed:
var seed = new Uint8Array([70, 78, 5, 155, 232, 171, 38, 78, 191, 56, 142, 102, 122, 20, 65, 239, 127, 215, 39, 174, 28, 222, 17, 150, 102, 129, 182, 172, 246, 80, 15, 19, 79, 248, 113, 244, 95, 101, 33, 96, 203, 181, 243, 63, 23, 9, 71, 102, 37, 216, 196, 6, 77, 209, 18, 2, 107, 12, 239, 38, 249, 29, 107, 249]);
var s = require('ethereum-cryptography/pure/hdkey').HDKey;
var t = require('ethereumjs-wallet');
var w = s.fromMasterSeed(seed);
@sh4dowb
sh4dowb / decrypt_ruby_MessageEncryptor.py
Last active Apr 17, 2021
Decrypt Ruby's ActiveSupport::MessageEncryptor on Python 3
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 = "asdasd"
ITERATIONS = 65536
KEYLENGTH = 32
@sh4dowb
sh4dowb / decrypt_ruby_MessageEncryptor.py
Created Apr 8, 2021
Decrypt Ruby's ActiveSupport::MessageEncryptor on Python 3
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
@sh4dowb
sh4dowb / netherlands-iban-acc-number-validate.py
Last active Dec 25, 2020
Netherlands IBAN account number checksum validator
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
@sh4dowb
sh4dowb / multipleevent.py
Last active Jun 18, 2020
telethon capture multiple events - capture button and/or text event
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