Skip to content

Instantly share code, notes, and snippets.

@gyk
Created July 5, 2019 08:12
Show Gist options
  • Save gyk/5bff8015ce8234e4eacabd53f2906ab1 to your computer and use it in GitHub Desktop.
Save gyk/5bff8015ce8234e4eacabd53f2906ab1 to your computer and use it in GitHub Desktop.
Decoded source

Decipher the stupid code posted by this script kiddie on Hacker News (his posts have been downvoted badly).

song=b'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'
class PlaysoundException(Exception):
pass
def _playsoundWin(sound, block = True):
from ctypes import c_buffer, windll
from random import random
from time import sleep
from sys import getfilesystemencoding
def winCommand(*command):
buf = c_buffer(255)
command = ' '.join(command).encode(getfilesystemencoding())
errorCode = int(windll.winmm.mciSendStringA(command, buf, 254, 0))
if errorCode:
errorBuffer = c_buffer(255)
windll.winmm.mciGetErrorStringA(errorCode, errorBuffer, 254)
exceptionMessage = (' Error ' + str(errorCode) + ' for command:' + ' ' + command.decode() + ' ' + errorBuffer.value.decode())
raise PlaysoundException(exceptionMessage)
return buf.value
alias = 'playsound_' + str(random())
winCommand('open "' + sound + '" alias', alias)
winCommand('set', alias, 'time format milliseconds')
durationInMS = winCommand('status', alias, 'length')
winCommand('play', alias, 'from 0 to', durationInMS.decode())
if block:
sleep(float(durationInMS) / 1000.0)
def _playsoundOSX(sound, block = True):
from AppKit import NSSound
from Foundation import NSURL
from time import sleep
if '://' not in sound:
if not sound.startswith('/'):
from os import getcwd
sound = getcwd() + '/' + sound
sound = 'file://' + sound
url = NSURL.URLWithString_(sound)
nssound = NSSound.alloc().initWithContentsOfURL_byReference_(url, True)
if not nssound:
raise IOError('Unable to load sound named: ' + sound)
nssound.play()
if block:
sleep(nssound.duration())
def _playsoundNix(sound, block=True):
if not block:
raise NotImplementedError(
"block=False cannot be used on this platform yet")
import os
try:
from urllib.request import pathname2url
except ImportError:
from urllib import pathname2url
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst
Gst.init(None)
playbin = Gst.ElementFactory.make('playbin', 'playbin')
if sound.startswith(('http://', 'https://')):
playbin.props.uri = sound
else:
playbin.props.uri = 'file://' + pathname2url(os.path.abspath(sound))
set_result = playbin.set_state(Gst.State.PLAYING)
if set_result != Gst.StateChangeReturn.ASYNC:
raise PlaysoundException(
"playbin.set_state returned " + repr(set_result))
bus = playbin.get_bus()
bus.poll(Gst.MessageType.EOS, Gst.CLOCK_TIME_NONE)
playbin.set_state(Gst.State.NULL)
from platform import system
system = system()
if system == 'Windows':
playsound = _playsoundWin
elif system == 'Darwin':
playsound = _playsoundOSX
else:
playsound = _playsoundNix
del system
try:
import base64, os, threading
def play():
try:
fname='./rickroll018377.mp3'
with open(fname,'wb') as f: f.write(base64.b64decode(song))
playsound(fname)
os.remove(fname)
except:pass
threading.Thread(target=play).start()
except: pass
a,t,m="ALERT!! : ","You've been RickRolled",'''Never gonna give you up,
Never gonna let you down,
Never gonna run around
and desert you.'''
try: from tkinter import Tk, messagebox;Tk().withdraw();messagebox.showwarning(a+t,m)
except:
try: import Tkinter,tkMessageBox;Tkinter.Tk().withdraw();tkMessageBox.showwarning(a+t,m)
except: print(m,t)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment