revision - old engine v1.0

This commit is contained in:
.[d]. 2021-07-11 08:00:10 +00:00
parent 92cd6bceb9
commit 9fd54fe47c
20 changed files with 2873 additions and 0 deletions

72
0.krylon_config Normal file
View File

@ -0,0 +1,72 @@
[bot]
nick = krylon
username = krylon
realname = krylon
host = ircd.chat
port = 6697
channel = #b0ts3x
version=1
ssl = true
ssl_verify = cert_none
includes =
irc3.plugins.command
irc3.plugins.asynchronious
irc3.plugins.storage
irc3.plugins.uptime
irc3.plugins.ctcp
irc3.plugins.cron
irc3.plugins.logger
irc3.plugins.userlist
plugins.b33p
plugins.krylon
flood_burst = 0
flood_rate = 1
flood_rate_delay = 1
storage = json://.krylon_database
[irc3.plugins.command]
cmd = ?
guard = irc3.plugins.command.mask_based_policy
[irc3.plugins.command.masks]
d!*dr1p@* = all_permissions
* = view
ignore_list =
g1mp_!*@*
g1mp!*@*
ken_!*@*
ken!*@*
[bot_1]
nick = 6yl6n9ro5_1k_
username = 0ykblr3n4o
channel = #b0ts3x
[bot_2]
nick = 5rnko_y2_lb20
username = nkl15yf1or
channel = #b0ts3x
[bot_3]
nick = b3n__lor54ky7
username = k8lon807ry
channel = #b0ts3x
[bot_4]
nick = 4ley5_nrck_ob
username = ykol1n7rdb
channel = #b0ts3x
[bot_5]
nick = fyf5_kolr_n74
username = ofb9nr2ylk
channel = #b0ts3x
[bot_6]
nick = y11r_36_l7kon
username = ny5flbk8or
channel = #b0ts3x

264
1.goth.txt Normal file

File diff suppressed because one or more lines are too long

254
2.fh.txt Normal file
View File

@ -0,0 +1,254 @@
# -*- coding: utf-8 -*-
from irc3.plugins.command import command
import irc3
import os
import sys
import random
import ipdb
from random import randint
from re import compile
from irc3 import rfc
dir_path = os.path.dirname(os.path.realpath(__file__))
KRYPTR = []
BOTNAMES = []
BOTNICKS = []
TOTAL_BOTS = 0
READY_BOTS = []
LOCK_KRYLON = 1 # 1
INTERRUPTED = 0
class KRYLON():
def __init__(self,bot,channel):
self.bot = bot
self.channel = channel
self.KRYLON_FILE = ['░█████╗░███╗░░██╗██╗░░░░░██╗███╗░░██╗███████╗', '██╔══██╗████╗░██║██║░░░░░██║████╗░██║██╔════╝', '██║░░██║██╔██╗██║██║░░░░░██║██╔██╗██║█████╗░░', '██║░░██║██║╚████║██║░░░░░██║██║╚████║██╔══╝░░', '╚█████╔╝██║░╚███║███████╗██║██║░╚███║███████╗', '░╚════╝░╚═╝░░╚══╝╚══════╝╚═╝╚═╝░░╚══╝╚══════╝', 'mcjonestown frickhole jonestown', 'mcjonestown frickhole jonestown', 'mcjonestown frickhole jonestown', 'mcjonestown frickhole jonestown', 'jones are jones and jones our sound', 'hole does fuck and jones in town', 'yeah im d and when i re i re as fuck re tard', 't c p direct for re and we as fuck re tard', 'mcchopchopchopchopchopchopchopchopchopchopchopchopjones', 'mcchopchopchopchopchopchopchopchopchopchopchopchoptown', 't c p direct for re and we as fuck re tard', 'yeah im d and when i re i re as fuck re tard', 'mcchopchopchopchopchopchopchopchopchopchopchopchopjones', 'mcchopchopchopchopchopchopchopchopchopchopchopchoptown', 'jones are jones and jones our sound', 'hole does fuck and jones in town', 'mcjonestown frickhole jonestown', 'mcjonestown frickhole jonestown', 'mcjonestown frickhole jonestown', 'mcjonestown frickhole jonestown', 'faded', 'hol up', 'we dem bois', 'hol up', 'we dem bois', 'hol up hol up hol up', "hoed up like like a farmer plow'n field", 'i knighted so hard queen riding my shield', 'simp-gimp- talking like a pimp.', 'jones- town- fucking pay your rent', 'tent- spent- gonzo dick be bent.', 'jones- town- trilln fuck the fent', '░█████╗░███╗░░██╗██╗░░░░░██╗███╗░░██╗███████╗', '██╔══██╗████╗░██║██║░░░░░██║████╗░██║██╔════╝', '██║░░██║██╔██╗██║██║░░░░░██║██╔██╗██║█████╗░░', '██║░░██║██║╚████║██║░░░░░██║██║╚████║██╔══╝░░', '╚█████╔╝██║░╚███║███████╗██║██║░╚███║███████╗', '░╚════╝░╚═╝░░╚══╝╚══════╝╚═╝╚═╝░░╚══╝╚══════╝']
self.__run__()
def __run__(self):
self.KRYLON_FILE.reverse()
self.FILE_BUFFER=[]
for _ in self.KRYLON_FILE:
self.FILE_BUFFER.append(_)
self.FILE_LINES = len(self.KRYLON_FILE)
self.INIT = 0
self.STARTED = 0
self.FINISHED = 0
self.FILE_INDEX = 0
# BITWISE FILE LOCK SET
self.KRYLON_FILE_LOCK = []
for _ in range(len(self.KRYLON_FILE)):
self.KRYLON_FILE_LOCK.append(1)
# BITWISE R/W BOT LOCK SET
self.BOTS_MODE_LOCK = []
for _ in range(len(READY_BOTS)):
self.BOTS_MODE_LOCK.append(zip('1','1'))
# BITWISE R/W BOT LOCK UNSET
R=[]; W=[]; _X=-1; _Y=-1;
for _ in range(len(READY_BOTS)):
_X,_Y=list(self.BOTS_MODE_LOCK[_])[0]
R.append(int(_X))
W.append(int(_Y))
self.BOTS_MODE_READ=R
self.BOTS_MODE_WRIT=W
@irc3.plugin
class Plugin(object):
def __init__(self, context):
self.log = context.log
self.context = context
self.channel = context.config.channel
self._ST8 = 0
def __emoj(self,s):
emote_db = '%s/emote.db' % dir_path
emoj = random.choice(list(open(emote_db)))
random.randint(0,1)
if random.randint(0,1) == 0:
emoj = "\x0304{}\x0F".format(emoj)
else:
emoj = "\x0303{}\x0F".format(emoj)
s = s + ' ▶ ' + emoj
return s
def __greet(self):
greet_db = '%s/greet.db' % dir_path
greet = random.choice(list(open(greet_db)))
return greet
def __symbol(self):
symbol_db = '%s/symbol.db' % dir_path
symbol = random.choice(list(open(symbol_db)))
return symbol
def rotate(self):
self.b1n+=1
if self.b1n == len(BOTNICKS):
self.b1n=0
ipdb.set_trace()
def spraying(self, mask, channel, **kw):
PTR = KRYPTR[0]
PTR.kbr = []; PTR.kbw = []; PTR.kbl = [];
PTR.chn = channel
for index in range(len(PTR.BOTS_MODE_READ)):
PTR.kbr.append(PTR.BOTS_MODE_READ[index])
PTR.kbw.append(PTR.BOTS_MODE_WRIT[index])
PTR.kbl.append(PTR.KRYLON_FILE_LOCK[index])
PTR.fbu = PTR.FILE_BUFFER
PTR.fli = PTR.FILE_LINES
PTR.fin = PTR.FILE_INDEX
BOTNAMES=','.join(self.context.config.botnet.keys()).split(',')
PTR.bna = BOTNAMES
BOTNICKS=[]
for _ in BOTNAMES:
BOTNICKS.append(self.context.config.botnet[_].nick)
PTR.bni = BOTNICKS
PTR.b1n = BOTNICKS.index(self.context.nick)
PTR.int = 0
if PTR.INIT == 0:
PTR._ST8 = 0
PTR.INIT = 1
print('<<<<<<> JUST INIT <>>>>>>') # test if initialized for first pass, fails on purpose
PTR.STARTED = 1
PTR.FINISHED = 0
PTR.exe = 1 # set to recognize execution
PTR.cyc = 0 # how many cycles within this operation, e.g. amount of bots pass through this function
PTR.ops = 0 # how many completed operations, cycles reset, ops continue to count
#ipdb.set_trace()
for y in range(len(PTR.bni)):
if not y == PTR.b1n:
PTR.kbr[y] = 0
else:
PTR.kbw[y] = 1
PTR.who = self.context.nick
MSG=PTR.fbu.pop()
PTR.what = MSG
PTR.fin+=1
NEWBOT=','.join(list(self.context.config.botnet.keys())).split(',')[PTR.b1n]
print(PTR.bni)
print(PTR.bna)
print(PTR.b1n)
print(PTR.bni[PTR.b1n])
print(PTR.bna[PTR.b1n])
print("WHO:{} NEWBOT:{}".format(PTR.who,NEWBOT))
self.context.privmsg(PTR.chn,MSG)
if PTR._ST8 <= 5 and PTR.int == 1:
INTERRUPTED = 0
PTR.int = INTERRUPTED
PTR._ST8 = 3
@irc3.event(irc3.rfc.JOIN)
def welcome(self, mask, channel, **kw):
if LOCK_KRYLON == 1:
B0T = self.context
B0TNAMES=','.join(self.context.config.botnet.keys()).split(',')
B0TN1CKS=[]
for _ in B0TNAMES:
B0TN1CKS.append(self.context.config.botnet[_].nick)
for i,B0T.nick in enumerate(B0TN1CKS):
if B0TN1CKS[i] == B0T.nick:
NFLAG=1
for _ in READY_BOTS:
if B0T.nick == _:
NFLAG=0
if NFLAG==1:
READY_BOTS.append(self.context.nick)
BOTCNT = len(self.context.config.botnet)
if len(READY_BOTS) == BOTCNT:
BOTNICKS=B0TN1CKS
BOTNAMES=B0TNAMES
TOTAL_BOTS = BOTCNT;
BOT=self.context
CHN=channel
k=KRYLON(BOT,CHN)
KRYPTR.append(k)
self.spraying(mask,channel,**kw)
@irc3.event(irc3.rfc.CONNECTED)
def connected(self, **kw):
if LOCK_KRYLON == 1:
self.context.join(self.channel)
@irc3.event(rfc.PRIVMSG, iotype="out")
def krylon_event(bot, mask=None, event=None, target=None, data=None):
NICK=bot.context.nick
CHANNEL=bot.channel
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
print(MSG)
# ipdb.set_trace()
PTR = KRYPTR[0]
B0T=bot.context
B1N = PTR.bni.index(B0T.nick)
print("OUTPUT:{}".format(bot.context.nick))
@irc3.event(irc3.rfc.PRIVMSG, iotype="in")
def on_privmsg(self, mask=None, data=None, **kw):
# B0T=self.context
# print(data)
bot = self
NICK=bot.context.nick
CHANNEL=bot.channel
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
print(MSG)
# ipdb.set_trace()
PTR = KRYPTR[0]
B0T=bot.context
B1N = PTR.bni.index(B0T.nick)
print("INPUT:{}".format(bot.context.nick))
WTF=0
if mask.nick == 'd':
self.context.privmsg('#b0ts3x','dont interrupt me mofo')
PTR.int = 1
PTR.FILE_BUFFER=[]
for _ in PTR.KRYLON_FILE:
PTR.FILE_BUFFER.append(_)
PTR.fbu = PTR.FILE_BUFFER
PTR.INIT = 0
PTR.fin=0
PTR.b1n=0
PTR.FINISHED = 0
self.spraying(mask,channel,**kw)
return
if PTR.who == mask.nick and PTR.STARTED == 1 and PTR.FINISHED == 0 and PTR.what == data and PTR.fin < PTR.fli:
PTR.fin+=1
PTR.b1n+=1
if PTR.b1n == len(PTR.bni):
PTR.b1n=0
PTR.who = PTR.bni[PTR.b1n]
MSG=PTR.fbu.pop()
PTR.what = MSG
NEWBOT=','.join(list(bot.context.config.botnet.keys())).split(',')[PTR.b1n]
print(NEWBOT)
bot.context.config.botnet[NEWBOT].privmsg(CHANNEL,MSG)
if PTR.fin == PTR.fli:
sys.exit(0)

254
3.mind.txt Normal file

File diff suppressed because one or more lines are too long

254
4.ghost.txt Normal file
View File

@ -0,0 +1,254 @@
# -*- coding: utf-8 -*-
from irc3.plugins.command import command
import irc3
import os
import sys
import random
import ipdb
from random import randint
from re import compile
from irc3 import rfc
dir_path = os.path.dirname(os.path.realpath(__file__))
KRYPTR = []
BOTNAMES = []
BOTNICKS = []
TOTAL_BOTS = 0
READY_BOTS = []
LOCK_KRYLON = 1 # 1
INTERRUPTED = 0
class KRYLON():
def __init__(self,bot,channel):
self.bot = bot
self.channel = channel
self.KRYLON_FILE = ['MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMms:-/NMMMMMMMMMMMMMMMMMMMMNmmdddmNMMMMMMMMMMMMMMMMMMMMMy+ohMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMN+....`sMMMMMMMMMMMMMMNds+:.--:::::-.-:oymMMMMMMMMMMMMMMh`...-yMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMmo-.` ..mMMMMMMMMMMNy/.-/shmNNNNNNNNmmho/-.+hMMMMMMMMMMN-.` `..:hMMMMMMMMMMMMMMMMMM', 'MMMMMNMMMMMMNh+.`` `.dMMMMMMMmo.-odNMMMMMMMMMMMMMMMMMNh+--sNMMMMMMN/`` `.:smMMMMMMMMMMMMMMM', 'MMMMMd+sys+:.` `/dMMMNo`:hNMMMMMMMMMMMMMMMMMMMMMMMms-.yMMMNy. `.:oydddyhMMMMMMM', 'MMMMMMh:` ```-+s-.yNMMMMMMMMMMMMMMMMMMMMMMMMMMMmo`/y/. ``.sMMMMMMMM', 'MMMMMMMNmysosyhdh+ -ohmmmmd/ :mMMMMMMMMNNMMMMMMMMMMMNNMMMMMMMMh. +hhhyo:` -+so+/:/+ymMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMo :dNMMMMMMd`:mMMMMMNds/::/ohNMMMMMh:..-yMMMMMMMd`-NMMMMMms. :NMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMdsNMMMMMMMN-`dMMMMNm/` `:dNMMN` dMMMMMMMy +MMMMMMMN+hMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMy oNMMMMN: .mMMNo. `/NMMMMMMMN-`NMMMMMMMMNMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMM/ hMMMMMm` dNMMMmhhdNMMMMMMMMNo yMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMM: mMMMMMNo :mMMMMMMMMMMMMMMMMMMs sMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMM/ dMMMMMMNs-` .omMMMMMMMMMMMMMMMMMMMo yMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMo yMMMMMMMMNhyooshmNMMMMMMMMMMMMMMMMMMMN+ dMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMy oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN- NMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMm :NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm`-MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMM.`mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMM+ yMMMNhdMMMMMMMMMMMMMMMMMMMMMMNNMMMMN: dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMm`-mdo- oNMMMMMNMMMMMMMMNMMMMMMh-+hNMh`:MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMs -./o +NMMMm+sNMMMMMNh:yNMMMN: /.-o-`mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMsymMm :NMmo.``hMMMMd/`/.-yNMh /MNh/-dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -mo.-hm..mMm+`:dMNo.-y: dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM.`..yMMMd`:s..hMMMMMNo` /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM-.sNMMMMMs `sNMMMMMMMMNomMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMdNMMMMMMMMsmMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM']
self.__run__()
def __run__(self):
self.KRYLON_FILE.reverse()
self.FILE_BUFFER=[]
for _ in self.KRYLON_FILE:
self.FILE_BUFFER.append(_)
self.FILE_LINES = len(self.KRYLON_FILE)
self.INIT = 0
self.STARTED = 0
self.FINISHED = 0
self.FILE_INDEX = 0
# BITWISE FILE LOCK SET
self.KRYLON_FILE_LOCK = []
for _ in range(len(self.KRYLON_FILE)):
self.KRYLON_FILE_LOCK.append(1)
# BITWISE R/W BOT LOCK SET
self.BOTS_MODE_LOCK = []
for _ in range(len(READY_BOTS)):
self.BOTS_MODE_LOCK.append(zip('1','1'))
# BITWISE R/W BOT LOCK UNSET
R=[]; W=[]; _X=-1; _Y=-1;
for _ in range(len(READY_BOTS)):
_X,_Y=list(self.BOTS_MODE_LOCK[_])[0]
R.append(int(_X))
W.append(int(_Y))
self.BOTS_MODE_READ=R
self.BOTS_MODE_WRIT=W
@irc3.plugin
class Plugin(object):
def __init__(self, context):
self.log = context.log
self.context = context
self.channel = context.config.channel
self._ST8 = 0
def __emoj(self,s):
emote_db = '%s/emote.db' % dir_path
emoj = random.choice(list(open(emote_db)))
random.randint(0,1)
if random.randint(0,1) == 0:
emoj = "\x0304{}\x0F".format(emoj)
else:
emoj = "\x0303{}\x0F".format(emoj)
s = s + ' ▶ ' + emoj
return s
def __greet(self):
greet_db = '%s/greet.db' % dir_path
greet = random.choice(list(open(greet_db)))
return greet
def __symbol(self):
symbol_db = '%s/symbol.db' % dir_path
symbol = random.choice(list(open(symbol_db)))
return symbol
def rotate(self):
self.b1n+=1
if self.b1n == len(BOTNICKS):
self.b1n=0
ipdb.set_trace()
def spraying(self, mask, channel, **kw):
PTR = KRYPTR[0]
PTR.kbr = []; PTR.kbw = []; PTR.kbl = [];
PTR.chn = channel
for index in range(len(PTR.BOTS_MODE_READ)):
PTR.kbr.append(PTR.BOTS_MODE_READ[index])
PTR.kbw.append(PTR.BOTS_MODE_WRIT[index])
PTR.kbl.append(PTR.KRYLON_FILE_LOCK[index])
PTR.fbu = PTR.FILE_BUFFER
PTR.fli = PTR.FILE_LINES
PTR.fin = PTR.FILE_INDEX
BOTNAMES=','.join(self.context.config.botnet.keys()).split(',')
PTR.bna = BOTNAMES
BOTNICKS=[]
for _ in BOTNAMES:
BOTNICKS.append(self.context.config.botnet[_].nick)
PTR.bni = BOTNICKS
PTR.b1n = BOTNICKS.index(self.context.nick)
PTR.int = 0
if PTR.INIT == 0:
PTR._ST8 = 0
PTR.INIT = 1
print('<<<<<<> JUST INIT <>>>>>>') # test if initialized for first pass, fails on purpose
PTR.STARTED = 1
PTR.FINISHED = 0
PTR.exe = 1 # set to recognize execution
PTR.cyc = 0 # how many cycles within this operation, e.g. amount of bots pass through this function
PTR.ops = 0 # how many completed operations, cycles reset, ops continue to count
#ipdb.set_trace()
for y in range(len(PTR.bni)):
if not y == PTR.b1n:
PTR.kbr[y] = 0
else:
PTR.kbw[y] = 1
PTR.who = self.context.nick
MSG=PTR.fbu.pop()
PTR.what = MSG
PTR.fin+=1
NEWBOT=','.join(list(self.context.config.botnet.keys())).split(',')[PTR.b1n]
print(PTR.bni)
print(PTR.bna)
print(PTR.b1n)
print(PTR.bni[PTR.b1n])
print(PTR.bna[PTR.b1n])
print("WHO:{} NEWBOT:{}".format(PTR.who,NEWBOT))
self.context.privmsg(PTR.chn,MSG)
if PTR._ST8 <= 5 and PTR.int == 1:
INTERRUPTED = 0
PTR.int = INTERRUPTED
PTR._ST8 = 3
@irc3.event(irc3.rfc.JOIN)
def welcome(self, mask, channel, **kw):
if LOCK_KRYLON == 1:
B0T = self.context
B0TNAMES=','.join(self.context.config.botnet.keys()).split(',')
B0TN1CKS=[]
for _ in B0TNAMES:
B0TN1CKS.append(self.context.config.botnet[_].nick)
for i,B0T.nick in enumerate(B0TN1CKS):
if B0TN1CKS[i] == B0T.nick:
NFLAG=1
for _ in READY_BOTS:
if B0T.nick == _:
NFLAG=0
if NFLAG==1:
READY_BOTS.append(self.context.nick)
BOTCNT = len(self.context.config.botnet)
if len(READY_BOTS) == BOTCNT:
BOTNICKS=B0TN1CKS
BOTNAMES=B0TNAMES
TOTAL_BOTS = BOTCNT;
BOT=self.context
CHN=channel
k=KRYLON(BOT,CHN)
KRYPTR.append(k)
self.spraying(mask,channel,**kw)
@irc3.event(irc3.rfc.CONNECTED)
def connected(self, **kw):
if LOCK_KRYLON == 1:
self.context.join(self.channel)
@irc3.event(rfc.PRIVMSG, iotype="out")
def krylon_event(bot, mask=None, event=None, target=None, data=None):
NICK=bot.context.nick
CHANNEL=bot.channel
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
print(MSG)
# ipdb.set_trace()
PTR = KRYPTR[0]
B0T=bot.context
B1N = PTR.bni.index(B0T.nick)
print("OUTPUT:{}".format(bot.context.nick))
@irc3.event(irc3.rfc.PRIVMSG, iotype="in")
def on_privmsg(self, mask=None, data=None, **kw):
# B0T=self.context
# print(data)
bot = self
NICK=bot.context.nick
CHANNEL=bot.channel
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
print(MSG)
# ipdb.set_trace()
PTR = KRYPTR[0]
B0T=bot.context
B1N = PTR.bni.index(B0T.nick)
print("INPUT:{}".format(bot.context.nick))
WTF=0
if mask.nick == 'd':
self.context.privmsg('#b0ts3x','dont interrupt me mofo')
PTR.int = 1
PTR.FILE_BUFFER=[]
for _ in PTR.KRYLON_FILE:
PTR.FILE_BUFFER.append(_)
PTR.fbu = PTR.FILE_BUFFER
PTR.INIT = 0
PTR.fin=0
PTR.b1n=0
PTR.FINISHED = 0
self.spraying(mask,channel,**kw)
return
if PTR.who == mask.nick and PTR.STARTED == 1 and PTR.FINISHED == 0 and PTR.what == data and PTR.fin < PTR.fli:
PTR.fin+=1
PTR.b1n+=1
if PTR.b1n == len(PTR.bni):
PTR.b1n=0
PTR.who = PTR.bni[PTR.b1n]
MSG=PTR.fbu.pop()
PTR.what = MSG
NEWBOT=','.join(list(bot.context.config.botnet.keys())).split(',')[PTR.b1n]
print(NEWBOT)
bot.context.config.botnet[NEWBOT].privmsg(CHANNEL,MSG)
if PTR.fin == PTR.fli:
sys.exit(0)

254
5.hack.txt Normal file
View File

@ -0,0 +1,254 @@
# -*- coding: utf-8 -*-
from irc3.plugins.command import command
import irc3
import os
import sys
import random
import ipdb
from random import randint
from re import compile
from irc3 import rfc
dir_path = os.path.dirname(os.path.realpath(__file__))
KRYPTR = []
BOTNAMES = []
BOTNICKS = []
TOTAL_BOTS = 0
READY_BOTS = []
LOCK_KRYLON = 1 # 1
INTERRUPTED = 0
class KRYLON():
def __init__(self,bot,channel):
self.bot = bot
self.channel = channel
self.KRYLON_FILE = [' ┌------------------------------------------─┐', ' d"\' \' \' H A C K >> T H E >> P L A N E T \' \' \'"a', " '$r └------------------------------------------─┘ e$'", ' .a$ $a.', ' .e$$²² . ²²$$e.', ' $$4. "$s .4$$', ' `²$$$$$$$$$$sp. sP$#\'" .ps$$$$$$$$$$²`', ' ²²²$$$$ :$$$s_ o $$$$²²²', ' `²$$$$$$$$$$sp. .ps$ "s$$$$s : $$$$', ' $$$ $$$$$ ···$$$$e --──── .── |$$$$| ---─────────┘ $$$$1', ' . "$ss" ░ $$$$ ░ $$$$B$┐ ░ a$$ |$$$$\' ░░░░░ ░░ ░ $$$$0', ' .$ $$$$ $$$$ "$$ $$$ ░ °X°" $$$$', '$" ░ .eP7$²²²²²7e$$$$ee\' $$$$ "$$e.$$$ ░ .$$$²² .eP7$²²²²²7e$$$$$$$$$$7\' //', 'ss ░░ $$$$² $$$$ $$$$ 1 ╚$$$$$ ░ $$$$ $$$$² $$$$1 .', '`²²"\'.r ░░░ $$$$ ░░▓▓▓ $$$$ $$$$ O░ $$$$ $$$$ `"²$ $$$$0 ░░░ $.', ' .a$ ░░░ 0└$$7, ▀▀▀ $$$$ $$$$ 1▓▓░ $$$$ $$$$ └$$7, ░▓▓▄ $ $$$$1 ░░░ "$', '.e$$²² ░░░░1 $$$: \\s$$$$$$ $$$$ ▀▀ $$$$ $$$$ $$$: ▀▀ $ $$$$ ░░░ ss', '$$4. `"└└└=-- `$$$$ $$$$ .a$e"\' e"$$$w\' `"└└└=s// $$$$ ░░░ r."²²`', '`²$$$$$$$$$$sp. $$$$ ░ `²$$sP²²²²" `` "$ $$$$ ░░░ $a.', ' ²²²$$$$ ░░░░░░░ "└$$ ░░ ░░ ░░░░░░░ `"└$$ ²²$$e.', ' 1$$$$ ░░░░░░░░ "$ ░░░░░░ ░░░░░░░░░░░░ `$ .4$$', ' 0$$$$ ░░░░░░ e\' ░░░░ $$$$²² \'e ░░░░ " .ps$$$$$$$$$$²`', " ░ 1$$$$ ░░░░░░░ $$o.. ░░░░ $$$$ ..o$$ ░░░░ '7$$$$$$ $$$$²²²", ' $$$$ `²$$$$$ ░░ $$$$ $$$$$²` $$$$ ░░ $$$$', ' \'7$$$$$$$$e7²²²²²$7Pe. "$$$$ $$$$ ²²²$$$$e7²²²²²$7Pe. $$$$e ▄▓░ $$$$1░░░', ' $$$$ 1²$$$ $$$$ ""$ $$$$ $$$$ ²$$$ $$$$B$┐▀▀ $$$$0░░░', ' ░ $$$$ ░░░░░0 $$$$ $$$$ ░░ $ $$$$ ░ $$$$ ░░░░░ $$$$ $$$$ "$$ $$$$1░░', ' $$$$ ▀▓▓▓1 $$$$ $$$$ ▓▓░ $ $$$$ ▓░ $$$$ ░▓▓▄ ,7$$┘ $$$$ "$$e.$$$$', " \\ '7$$$$$$╗ 0.$$$$ $$$$ ▀▀ $$ $$$$ ▀ $$$$ ▀▀ :$$$ $$$$ ░ ╚$$$$$$7' //", ' $$$$ "$$. $$$" $$$$ .$$P $$$$ 1 $$$$ --=┘┘┘"` $$$$ $$$$$', ' $$$$ $$$$$$$" $$$$s$$╝ $$$$ 0 $$$$` "²²$ $$$$sss// "$$$', ' $$┘" "²²" $P╝" "e$$ 1²²$$$$ "$$$ $$┘"` $$', ' $" ` ┌─────────"───── -- - "$ ── "╚$$ ───--- ²²² ── $" ------··· `" 5m', ' : " "$', " o '"]
self.__run__()
def __run__(self):
self.KRYLON_FILE.reverse()
self.FILE_BUFFER=[]
for _ in self.KRYLON_FILE:
self.FILE_BUFFER.append(_)
self.FILE_LINES = len(self.KRYLON_FILE)
self.INIT = 0
self.STARTED = 0
self.FINISHED = 0
self.FILE_INDEX = 0
# BITWISE FILE LOCK SET
self.KRYLON_FILE_LOCK = []
for _ in range(len(self.KRYLON_FILE)):
self.KRYLON_FILE_LOCK.append(1)
# BITWISE R/W BOT LOCK SET
self.BOTS_MODE_LOCK = []
for _ in range(len(READY_BOTS)):
self.BOTS_MODE_LOCK.append(zip('1','1'))
# BITWISE R/W BOT LOCK UNSET
R=[]; W=[]; _X=-1; _Y=-1;
for _ in range(len(READY_BOTS)):
_X,_Y=list(self.BOTS_MODE_LOCK[_])[0]
R.append(int(_X))
W.append(int(_Y))
self.BOTS_MODE_READ=R
self.BOTS_MODE_WRIT=W
@irc3.plugin
class Plugin(object):
def __init__(self, context):
self.log = context.log
self.context = context
self.channel = context.config.channel
self._ST8 = 0
def __emoj(self,s):
emote_db = '%s/emote.db' % dir_path
emoj = random.choice(list(open(emote_db)))
random.randint(0,1)
if random.randint(0,1) == 0:
emoj = "\x0304{}\x0F".format(emoj)
else:
emoj = "\x0303{}\x0F".format(emoj)
s = s + ' ▶ ' + emoj
return s
def __greet(self):
greet_db = '%s/greet.db' % dir_path
greet = random.choice(list(open(greet_db)))
return greet
def __symbol(self):
symbol_db = '%s/symbol.db' % dir_path
symbol = random.choice(list(open(symbol_db)))
return symbol
def rotate(self):
self.b1n+=1
if self.b1n == len(BOTNICKS):
self.b1n=0
ipdb.set_trace()
def spraying(self, mask, channel, **kw):
PTR = KRYPTR[0]
PTR.kbr = []; PTR.kbw = []; PTR.kbl = [];
PTR.chn = channel
for index in range(len(PTR.BOTS_MODE_READ)):
PTR.kbr.append(PTR.BOTS_MODE_READ[index])
PTR.kbw.append(PTR.BOTS_MODE_WRIT[index])
PTR.kbl.append(PTR.KRYLON_FILE_LOCK[index])
PTR.fbu = PTR.FILE_BUFFER
PTR.fli = PTR.FILE_LINES
PTR.fin = PTR.FILE_INDEX
BOTNAMES=','.join(self.context.config.botnet.keys()).split(',')
PTR.bna = BOTNAMES
BOTNICKS=[]
for _ in BOTNAMES:
BOTNICKS.append(self.context.config.botnet[_].nick)
PTR.bni = BOTNICKS
PTR.b1n = BOTNICKS.index(self.context.nick)
PTR.int = 0
if PTR.INIT == 0:
PTR._ST8 = 0
PTR.INIT = 1
print('<<<<<<> JUST INIT <>>>>>>') # test if initialized for first pass, fails on purpose
PTR.STARTED = 1
PTR.FINISHED = 0
PTR.exe = 1 # set to recognize execution
PTR.cyc = 0 # how many cycles within this operation, e.g. amount of bots pass through this function
PTR.ops = 0 # how many completed operations, cycles reset, ops continue to count
#ipdb.set_trace()
for y in range(len(PTR.bni)):
if not y == PTR.b1n:
PTR.kbr[y] = 0
else:
PTR.kbw[y] = 1
PTR.who = self.context.nick
MSG=PTR.fbu.pop()
PTR.what = MSG
PTR.fin+=1
NEWBOT=','.join(list(self.context.config.botnet.keys())).split(',')[PTR.b1n]
print(PTR.bni)
print(PTR.bna)
print(PTR.b1n)
print(PTR.bni[PTR.b1n])
print(PTR.bna[PTR.b1n])
print("WHO:{} NEWBOT:{}".format(PTR.who,NEWBOT))
self.context.privmsg(PTR.chn,MSG)
if PTR._ST8 <= 5 and PTR.int == 1:
INTERRUPTED = 0
PTR.int = INTERRUPTED
PTR._ST8 = 3
@irc3.event(irc3.rfc.JOIN)
def welcome(self, mask, channel, **kw):
if LOCK_KRYLON == 1:
B0T = self.context
B0TNAMES=','.join(self.context.config.botnet.keys()).split(',')
B0TN1CKS=[]
for _ in B0TNAMES:
B0TN1CKS.append(self.context.config.botnet[_].nick)
for i,B0T.nick in enumerate(B0TN1CKS):
if B0TN1CKS[i] == B0T.nick:
NFLAG=1
for _ in READY_BOTS:
if B0T.nick == _:
NFLAG=0
if NFLAG==1:
READY_BOTS.append(self.context.nick)
BOTCNT = len(self.context.config.botnet)
if len(READY_BOTS) == BOTCNT:
BOTNICKS=B0TN1CKS
BOTNAMES=B0TNAMES
TOTAL_BOTS = BOTCNT;
BOT=self.context
CHN=channel
k=KRYLON(BOT,CHN)
KRYPTR.append(k)
self.spraying(mask,channel,**kw)
@irc3.event(irc3.rfc.CONNECTED)
def connected(self, **kw):
if LOCK_KRYLON == 1:
self.context.join(self.channel)
@irc3.event(rfc.PRIVMSG, iotype="out")
def krylon_event(bot, mask=None, event=None, target=None, data=None):
NICK=bot.context.nick
CHANNEL=bot.channel
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
print(MSG)
# ipdb.set_trace()
PTR = KRYPTR[0]
B0T=bot.context
B1N = PTR.bni.index(B0T.nick)
print("OUTPUT:{}".format(bot.context.nick))
@irc3.event(irc3.rfc.PRIVMSG, iotype="in")
def on_privmsg(self, mask=None, data=None, **kw):
# B0T=self.context
# print(data)
bot = self
NICK=bot.context.nick
CHANNEL=bot.channel
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
print(MSG)
# ipdb.set_trace()
PTR = KRYPTR[0]
B0T=bot.context
B1N = PTR.bni.index(B0T.nick)
print("INPUT:{}".format(bot.context.nick))
WTF=0
if mask.nick == 'd':
self.context.privmsg('#b0ts3x','dont interrupt me mofo')
PTR.int = 1
PTR.FILE_BUFFER=[]
for _ in PTR.KRYLON_FILE:
PTR.FILE_BUFFER.append(_)
PTR.fbu = PTR.FILE_BUFFER
PTR.INIT = 0
PTR.fin=0
PTR.b1n=0
PTR.FINISHED = 0
self.spraying(mask,channel,**kw)
return
if PTR.who == mask.nick and PTR.STARTED == 1 and PTR.FINISHED == 0 and PTR.what == data and PTR.fin < PTR.fli:
PTR.fin+=1
PTR.b1n+=1
if PTR.b1n == len(PTR.bni):
PTR.b1n=0
PTR.who = PTR.bni[PTR.b1n]
MSG=PTR.fbu.pop()
PTR.what = MSG
NEWBOT=','.join(list(bot.context.config.botnet.keys())).split(',')[PTR.b1n]
print(NEWBOT)
bot.context.config.botnet[NEWBOT].privmsg(CHANNEL,MSG)
if PTR.fin == PTR.fli:
sys.exit(0)

254
6.tskull.txt Normal file
View File

@ -0,0 +1,254 @@
# -*- coding: utf-8 -*-
from irc3.plugins.command import command
import irc3
import os
import sys
import random
import ipdb
from random import randint
from re import compile
from irc3 import rfc
dir_path = os.path.dirname(os.path.realpath(__file__))
KRYPTR = []
BOTNAMES = []
BOTNICKS = []
TOTAL_BOTS = 0
READY_BOTS = []
LOCK_KRYLON = 1 # 1
INTERRUPTED = 0
class KRYLON():
def __init__(self,bot,channel):
self.bot = bot
self.channel = channel
self.KRYLON_FILE = [' .................', ' .syhhso++++++++/++osyyhys+.', ' -oddyo+o+++++++++++++++o+oo+osdms:', ' :dmyo++oosssssssssssssssooooooo+/+ymm+`', ' hmyo++ossyyhhddddddddddddhyyyssss+//+ymd-', ' -mho+oosyhhhddmmmmmmmmmmmmmmddhhyyyso+//+hN+', ' my+++syhhhhdmmNNNNNNNNNNNNmmmmmdhhyyyyo//+sd:', ' hs//+oyhhhhdmNNNNNNNNNNNNNNNNNNmmdhyhhhyo//++y', ' s+++shddhhdmmNNNNNNNNNNNNNNNNNNNNmdhhhdhyo/++/', " 'hs+shmmmddmNNNNNNNNNNNNNNNNNNNNNmddddddhs+oh/", ' shsshdmmmmmNNMMMMMMMMMMMNNNNNNNNmmmmmmdhssdh-', ' +ssohdmmmmNNNNNMMMMMMMMNNNNNNmmmmmNNmdhhhs:`', ' -+oo++////++sydmNNNNNNNNNNNNNNNNNNNdyyys/--://+//:', ' d/+hmNNNmmdddhhhdmNNNNNNNNNNNNNNNmdhyyyhhhddmmNmdyd-', ' ++--+ymNMMNNNNNNmmmmNNNNNNNNNNNmdhddmNNMMMMMMNmhyss', ' /d+` -+ydmNMMMMMMNNmNMMMMMMMmmmmNNMMMMMNNmh- :sdo', ' sNo ` /ohdmNNMMMMNNMMMMMNNNMMMMMNmdyo/ ` hNh', " M+' ``-/oyhmNNMNhNMNhNMMMMNmho/ ` 'MN/", " ar' `-+osydh0w.nzmNNmho: 'co:", ' +o/ ` :oo+:s :+o/-` -dds', " :hdo x `-/ooss:':+ooo: ` 0 :sdm+", " +dNNNh+ :ydmNNm' `sddmyo +hmNmds", ' dhNMMNNNNmddhsyhdmmNNNM: NNmNmhyo+oyyyhmNMMNmysd', ' adNNNNNh+/++rhmMMMMNMNh cNNNNNNNmho++++yddhysso', " `:sNMMMMN' `mNMNNNd/`", ' XXXXXXXXX y/hMMNm/ .arco. -hdmdy: ` XXXXXXX', ' XXXXXXXX `o+hNNds. -ymNNy- .yhys+/`` XXXXXX', ' XXXXXXXX +-+//o/+odMNMMMNdmh++////-/s XXXXXX', ' XXXXXXX mhNd -+d/+myo++ysy/hs -mNsdh/ XXXXXX', ' XXXXXXXX mhMN+ dMm-/-smy-::dMN/sMMmdo XXXXXX', ' XXXXXXXXXX NMy+NMMh oMMMs yMMMyNMMs+ XXXXXXX', ' XXXXXXXXXXX dy-hMMm+dMMMdoNMMh ydo XXXXXXXXX', " XXXXXXXXXXXXX smm 'NMMy dms sm XXXXXXXXXX", ' XXXXXXXXXXXXXX XXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXER0']
self.__run__()
def __run__(self):
self.KRYLON_FILE.reverse()
self.FILE_BUFFER=[]
for _ in self.KRYLON_FILE:
self.FILE_BUFFER.append(_)
self.FILE_LINES = len(self.KRYLON_FILE)
self.INIT = 0
self.STARTED = 0
self.FINISHED = 0
self.FILE_INDEX = 0
# BITWISE FILE LOCK SET
self.KRYLON_FILE_LOCK = []
for _ in range(len(self.KRYLON_FILE)):
self.KRYLON_FILE_LOCK.append(1)
# BITWISE R/W BOT LOCK SET
self.BOTS_MODE_LOCK = []
for _ in range(len(READY_BOTS)):
self.BOTS_MODE_LOCK.append(zip('1','1'))
# BITWISE R/W BOT LOCK UNSET
R=[]; W=[]; _X=-1; _Y=-1;
for _ in range(len(READY_BOTS)):
_X,_Y=list(self.BOTS_MODE_LOCK[_])[0]
R.append(int(_X))
W.append(int(_Y))
self.BOTS_MODE_READ=R
self.BOTS_MODE_WRIT=W
@irc3.plugin
class Plugin(object):
def __init__(self, context):
self.log = context.log
self.context = context
self.channel = context.config.channel
self._ST8 = 0
def __emoj(self,s):
emote_db = '%s/emote.db' % dir_path
emoj = random.choice(list(open(emote_db)))
random.randint(0,1)
if random.randint(0,1) == 0:
emoj = "\x0304{}\x0F".format(emoj)
else:
emoj = "\x0303{}\x0F".format(emoj)
s = s + ' ▶ ' + emoj
return s
def __greet(self):
greet_db = '%s/greet.db' % dir_path
greet = random.choice(list(open(greet_db)))
return greet
def __symbol(self):
symbol_db = '%s/symbol.db' % dir_path
symbol = random.choice(list(open(symbol_db)))
return symbol
def rotate(self):
self.b1n+=1
if self.b1n == len(BOTNICKS):
self.b1n=0
ipdb.set_trace()
def spraying(self, mask, channel, **kw):
PTR = KRYPTR[0]
PTR.kbr = []; PTR.kbw = []; PTR.kbl = [];
PTR.chn = channel
for index in range(len(PTR.BOTS_MODE_READ)):
PTR.kbr.append(PTR.BOTS_MODE_READ[index])
PTR.kbw.append(PTR.BOTS_MODE_WRIT[index])
PTR.kbl.append(PTR.KRYLON_FILE_LOCK[index])
PTR.fbu = PTR.FILE_BUFFER
PTR.fli = PTR.FILE_LINES
PTR.fin = PTR.FILE_INDEX
BOTNAMES=','.join(self.context.config.botnet.keys()).split(',')
PTR.bna = BOTNAMES
BOTNICKS=[]
for _ in BOTNAMES:
BOTNICKS.append(self.context.config.botnet[_].nick)
PTR.bni = BOTNICKS
PTR.b1n = BOTNICKS.index(self.context.nick)
PTR.int = 0
if PTR.INIT == 0:
PTR._ST8 = 0
PTR.INIT = 1
print('<<<<<<> JUST INIT <>>>>>>') # test if initialized for first pass, fails on purpose
PTR.STARTED = 1
PTR.FINISHED = 0
PTR.exe = 1 # set to recognize execution
PTR.cyc = 0 # how many cycles within this operation, e.g. amount of bots pass through this function
PTR.ops = 0 # how many completed operations, cycles reset, ops continue to count
#ipdb.set_trace()
for y in range(len(PTR.bni)):
if not y == PTR.b1n:
PTR.kbr[y] = 0
else:
PTR.kbw[y] = 1
PTR.who = self.context.nick
MSG=PTR.fbu.pop()
PTR.what = MSG
PTR.fin+=1
NEWBOT=','.join(list(self.context.config.botnet.keys())).split(',')[PTR.b1n]
print(PTR.bni)
print(PTR.bna)
print(PTR.b1n)
print(PTR.bni[PTR.b1n])
print(PTR.bna[PTR.b1n])
print("WHO:{} NEWBOT:{}".format(PTR.who,NEWBOT))
self.context.privmsg(PTR.chn,MSG)
if PTR._ST8 <= 5 and PTR.int == 1:
INTERRUPTED = 0
PTR.int = INTERRUPTED
PTR._ST8 = 3
@irc3.event(irc3.rfc.JOIN)
def welcome(self, mask, channel, **kw):
if LOCK_KRYLON == 1:
B0T = self.context
B0TNAMES=','.join(self.context.config.botnet.keys()).split(',')
B0TN1CKS=[]
for _ in B0TNAMES:
B0TN1CKS.append(self.context.config.botnet[_].nick)
for i,B0T.nick in enumerate(B0TN1CKS):
if B0TN1CKS[i] == B0T.nick:
NFLAG=1
for _ in READY_BOTS:
if B0T.nick == _:
NFLAG=0
if NFLAG==1:
READY_BOTS.append(self.context.nick)
BOTCNT = len(self.context.config.botnet)
if len(READY_BOTS) == BOTCNT:
BOTNICKS=B0TN1CKS
BOTNAMES=B0TNAMES
TOTAL_BOTS = BOTCNT;
BOT=self.context
CHN=channel
k=KRYLON(BOT,CHN)
KRYPTR.append(k)
self.spraying(mask,channel,**kw)
@irc3.event(irc3.rfc.CONNECTED)
def connected(self, **kw):
if LOCK_KRYLON == 1:
self.context.join(self.channel)
@irc3.event(rfc.PRIVMSG, iotype="out")
def krylon_event(bot, mask=None, event=None, target=None, data=None):
NICK=bot.context.nick
CHANNEL=bot.channel
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
print(MSG)
# ipdb.set_trace()
PTR = KRYPTR[0]
B0T=bot.context
B1N = PTR.bni.index(B0T.nick)
print("OUTPUT:{}".format(bot.context.nick))
@irc3.event(irc3.rfc.PRIVMSG, iotype="in")
def on_privmsg(self, mask=None, data=None, **kw):
# B0T=self.context
# print(data)
bot = self
NICK=bot.context.nick
CHANNEL=bot.channel
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
print(MSG)
# ipdb.set_trace()
PTR = KRYPTR[0]
B0T=bot.context
B1N = PTR.bni.index(B0T.nick)
print("INPUT:{}".format(bot.context.nick))
WTF=0
if mask.nick == 'd':
self.context.privmsg('#b0ts3x','dont interrupt me mofo')
PTR.int = 1
PTR.FILE_BUFFER=[]
for _ in PTR.KRYLON_FILE:
PTR.FILE_BUFFER.append(_)
PTR.fbu = PTR.FILE_BUFFER
PTR.INIT = 0
PTR.fin=0
PTR.b1n=0
PTR.FINISHED = 0
self.spraying(mask,channel,**kw)
return
if PTR.who == mask.nick and PTR.STARTED == 1 and PTR.FINISHED == 0 and PTR.what == data and PTR.fin < PTR.fli:
PTR.fin+=1
PTR.b1n+=1
if PTR.b1n == len(PTR.bni):
PTR.b1n=0
PTR.who = PTR.bni[PTR.b1n]
MSG=PTR.fbu.pop()
PTR.what = MSG
NEWBOT=','.join(list(bot.context.config.botnet.keys())).split(',')[PTR.b1n]
print(NEWBOT)
bot.context.config.botnet[NEWBOT].privmsg(CHANNEL,MSG)
if PTR.fin == PTR.fli:
sys.exit(0)

BIN
7.acid.txt Normal file

Binary file not shown.

81
README.md Normal file
View File

@ -0,0 +1,81 @@
# krylon - art spam micro botnet logic - old engine v1.0, not the v2.0 i will be working on soon.
```
.oydddhhyo+/-.
`hddddhhddddddddhso/.
.dddh. ``..-:+ohdh-
__ .__ -ddddds/-` -sd/`
| | _________ ___.__.| | ____ ____ :dd//sdddhys+/:-` sdy-.
| |/ /\_ __ < | || | / _ \ / \ ody `yhdhddddddhhs/:+ddd/
| < | | \/\___ || |_( <_> ) | \ yd/ .hdh.hdhshddddddddddy
|__|_ \ |__| / ____||____/\____/|___| / `dh. `yddo:dd: ``-/+odddddo
\/ \/ \/ :hy +dddyhddhyo:. .sddddy:
+hy hddhdddhsyhdhohdddy:`
hdd` hdd/+hdhs//hddddy/`
.dddo`odd` .+yddddddh/`
`.--:://+-ydddyyds `+ddddh+`
.oso+. `:oyhhhddddddy.-odddd+ `:ydddh+.
:hddddh+`+ddddhyso++//+../ohddhyydddds.
+hdddds::..sdd/.` -hso+oosyyhyo+-
`odddhshy` `ody+-` -hdddy- ````+dh+
`sdddy- -ys. /hddhs/-` .:+s/ -dddo
`yddh. `oy/` .+hddddhso/-..```````.:ydddd+`++.
`/hy+.` :yy+.` `/shdddddddhyyyssyyhddddddd-+dh/`
`/yhs-` `/yhs/.` ./shddyyyyyhdddddddddddo`oddds
`++-/yhy+-` -ohdy+:`` `-:+oyyysddddddddho-.odddds
.sddhs:-+hdhs/.`.:shdhyo:.`` `..-/+osso/:.-ohddddd:
`/hddddy- -/shdhs/--/ohdddhys+/:--..--:+shdddddddy
.sddddh/ `-+yhddyo+osyddddddddddddddddddddddd:
/hddddo` `-/oyhdddhddddddddddddddddddddds
.sddddy- `-/+shdddddddddddddddddddh.
/hdddh/ `.:/+osyhhhhhhys+/.
.:+syyy` .sddddo` /o.
.+ydddddddho- `-+ddddy- sdd+
-sddddddhsoydddhhdddddh: .----. hddy
-sddddds/.`ohdddddddddd+` .:oyddddddddy/` .ddd+
`odddddo. .ydddddhddddh- -+ydddddddhhhddddh/ +ddd-
/hddddh: .yhddo-.``odd/ .+hddddho/-.` `:ohhho` `hddh
-ydddddd- `yddd: od. -sddddh+-` `/yho oddd:
`+ddddddd+ +ddd: .d` .sdddds:` -ddodddy
-ydddh/hdd. `hddo h- `/hdddy- yddddh.
ydddo` hhy -ddh` so .` `sdddh/` .ddddd:
ddd+ shy :ddo -h/.``:/ `ydddy. sdddd/
hdd: /dh :dd/ :hhyhs` oddds` odddd/
odd/ `dd` .dd/ `/o/` `ddds` `sdddh:
.hdo od/ sdo .ddd- -ydddh-
+dh` `hy -dh` `hdd- `+hddds.
`yd+ /d/ od+ +dd/ `/hdddh/`
.hd/ oh- `yh- `sdh. ./ydddds-
-hd/ `yh- .yh. `odh+. `-ohddddy:`
.yd/ `yh- .yh: :yhhs+:----/oydddddy/`
.sdo` .yh: `sdo` `/ydddddddddddddy/`
`ody. `oy/` `+hy:` `-ohddddddddy/`
/hs-` `+sy- -yds- `` `./shdddddho-
-yy+. :hdo` `/hds:` -:.`` ``./sddddddho:`
`odh/` -ydh/` .+hdy+-` .syysyhddddddyo:`
:hdy- `+hdy/` .+hddhs+:---yddddddy+sd/
`ohds- .ohdy/. `:shddddddddddddd:.ydh`
.shds:`-sdddo:` `:oyhhdddddddd+hddd-
-sddho::shddho:` `.-://///ohddh-
.+hdddsoydddddyo/-.` `odddy.
-ohddddddddddddddhhyhhddd+
-+sdddddddddddddddddh-
.:+osyhdddddhys+`
```
# INSTALL:
## NOTES:
```
- install python3 `apt install python3`
- install python3-pip `apt install python3-pip`
- install python3-venv `python3 -m pip install virtualenv`
```
## COMMANDS:
```
- `git clone --recursive https://git.tcp.direct/decoded/krylon`
- `cd krylon`
- `python3 -m venv .env`
- `. .env/bin/activate`
- `python3 -m pip install --upgrade pip -r requirements.txt`
- `bash run.sh` or `bash run_debug.sh` or `bash run_artop.sh` or `irc3 .krylon_config`

19
plugins/b33p.py Normal file
View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from irc3.plugins.command import command
import irc3
@irc3.plugin
class Plugin:
def __init__(self, bot):
self.bot = bot
@command(permission='view')
def b33p(self, mask, target, args):
"""b33p an irc b0t, it should b00p back
%%b33p <dubstep>...
"""
robostep='{}: b00p'.format(mask.nick)
roooboot = ''.join(args['<dubstep>'])
if roooboot == self.bot.nick:
self.bot.privmsg(target,robostep)

426
plugins/emote.db Normal file
View File

@ -0,0 +1,426 @@
¢‿¢
©¿© o
ª{•̃̾_•̃̾}ª
¬_¬
¯\(º_o)/¯
¯\(º o)/¯
¯\_(⊙︿⊙)_/¯
¯\_(ツ)_/¯
°ω°
°Д°
°‿‿°
°ﺑ°
´ ▽ ` )ノ
¿ⓧ_ⓧﮌ
Ò,ó
ó‿ó
ô⌐ô
ôヮô
ŎםŎ
ŏﺡó
ʕ•̫͡•ʔ
ʕ•ᴥ•ʔ
ʘ‿ʘ
˚•_•˚
˚⌇˚
˚▱˚
̿ ̿̿'̿'\̵͇̿̿\=(•̪●)=/̵͇̿̿/'̿̿ ̿ ̿ ̿
͡° ͜ʖ ͡°
Σ ◕ ◡ ◕
Σ (゚Д゚;
Σ(゚Д゚;≡;゚д゚)
Σ(゚Д゚ )
Σ(||゚Д゚)
Φ,Φ
δﺡό
σ_σ
д_д
ф_ф
щ(゚Д゚щ)
щ(ಠ益ಠщ)
щ(ಥДಥщ)
Ծ_Ծ
أ‿أ
ب_ب
ح˚௰˚づ
ح˚ᆺ˚ว
حᇂﮌᇂ)
٩๏̯͡๏۶
٩๏̯͡๏)۶
٩◔̯◔۶
٩(×̯×)۶
٩(̾●̮̮̃̾•̃̾)۶
٩(͡๏̯͡๏)۶
٩(͡๏̯ ͡๏)۶
٩(ಥ_ಥ)۶
٩(•̮̮̃•̃)۶
٩(●̮̮̃•̃)۶
٩(●̮̮̃●̃)۶
٩(。͡•‿•。)۶
٩(-̮̮̃•̃)۶
٩(-̮̮̃-̃)۶
۞_۞
۞_۟۞
۹ↁﮌↁ
۹⌤_⌤۹
॓_॔
१✌◡✌५
१|˚–˚|५
ਉ_ਉ
ଘ_ଘ
இ_இ
ఠ_ఠ
రృర
ಠ¿ಠi
ಠ‿ಠ
ಠ⌣ಠ
ಠ╭╮ಠ
ಠ▃ಠ
ಠ◡ಠ
ಠ益ಠ
ಠ益ಠ
ಠ︵ಠ凸
ಠ , ಥ
ಠ.ಠ
ಠoಠ
ಠ_ృ
ಠ_ಠ
ಠ_๏
ಠ~ಠ
ಡ_ಡ
ತಎತ
ತ_ತ
ಥдಥ
ಥ‿ಥ
ಥ⌣ಥ
ಥ◡ಥ
ಥ﹏ಥ
ಥ_ಥ
ಭ_ಭ
ರ_ರ
ಸ , ໖
ಸ_ಸ
ക_ക
อ้_อ้
อ_อ
โ๏௰๏ใ ื
๏̯͡๏﴿
๏̯͡๏
๏̯͡๏﴿
๏[-ิิ_•ิ]๏
๏_๏
໖_໖
ლ(´ڡ`ლ)
ლ(́◉◞౪◟◉‵ლ)
ლ(ಠ益ಠლ)
ლ(╹◡╹ლ)
ლ(◉◞౪◟◉‵ლ)
ლ,ᔑ•ﺪ͟͠•ᔐ.ლ
ᄽὁȍ ̪ őὀᄿ
ᕕ( ᐛ )ᕗ
ᕙ(⇀‸↼‶)ᕗ
ᕦ(ò_óˇ)ᕤ
ᶘ ᵒᴥᵒᶅ
‘︿’
•▱•
•✞_✞•
•ﺑ•
•(⌚_⌚)•
•_•)
‷̗ↂ凸ↂ‴̖
‹•.•›
(•¿•)
(ᵒᴥᵒ­­­­­)
(•¿•)
ↁ_ↁ
⇎_⇎
∩(︶▽︶)∩
∩( ・ω・)∩
≖‿≖
≧ヮ≦
⊂•⊃_⊂•⊃
⊂⌒~⊃。Д。)⊃
⊂(◉‿◉)つ
⊂(゚Д゚,,⊂⌒`つ
⊙ω⊙
⊙▂⊙
⊙▃⊙
⊙△⊙
⊙︿⊙
⊙﹏⊙
⊙0⊙
⊛ठ̯⊛
⋋ō_ō`
━━━ヽ(ヽ(゚ヽ(゚ヽ(゚゚ヽ(゚゚)ノ゚゚)ノ゚)ノ゚)ノ)ノ━━━
┌∩┐(◕_◕)┌∩┐
┌( ಠ_ಠ)┘
┌( ಥ_ಥ)┘
╚(•⌂•)╝
╭╮╭╮☜{•̃̾_•̃̾}☞╭╮╭╮
╭✬⌢✬╮
╮(▽)╭
╯‵Д′)╯彡┻━┻
╰☆╮
□_□
►_◄
◃┆◉◡◉┆▷
◉△◉
◉︵◉
◉_◉
○_○
●¿●\ ~
●_●
◔̯◔
◔ᴗ◔
◔ ⌣ ◔
◔_◔
◕ω◕
◕‿◕
◕◡◕
◕ ◡ ◕
◖♪_♪|◗
◖|◔◡◉|◗
◘_◘
◙‿◙
◜㍕◝
◪_◪
◮_◮
☁ ☝ˆ~ˆ☂
☆¸☆
☉‿⊙
☉_☉
☐_☐
☜ق❂Ⴢ❂ق☞
☜(⌒▽⌒)☞
☜(゚ヮ゚☜)
☜-(ΘLΘ)-☞
☝☞✌
☮▁▂▃▄☾ ♛ ◡ ♛ ☽▄▃▂▁☮
☹_☹
☻_☻
☼.☼
☾˙❀‿❀˙☽
♀ح♀ヾ
♥‿♥
♥╣[-_-]╠♥
♥╭╮♥
♥◡♥
✌♫♪˙❤‿❤˙♫♪✌
✌.ʕʘ‿ʘʔ.✌
✌.|•͡˘‿•͡˘|.✌
✖‿✖
✖_✖
❐‿❑
_
_Ꙩ
⨂_⨂
〆(・・@)
《〠_〠》
【•】_【•】
〠_〠
〴⋋_⋌〵
<EFBFBD> <20>
ニガー? ━━━━━━(゚゚)━━━━━━ ニガー?
ペ㍕˚\
ヽ(´ー` )ノ
ヽ(๏๏ )ノ
ヽ(`Д´)ノ
ヽ(`皿′o)ノ
ヽ(`Д´)ノ
ㅎ_ㅎ
乂◜◬◝乂
凸ಠ益ಠ)凸
句_句
Ꙩ⌵Ꙩ
Ꙩ_Ꙩ
ꙩ_ꙩ
Ꙫ_Ꙫ
ꙫ_ꙫ
ꙮ_ꙮ
흫_흫
句_句
﴾͡๏̯͡๏﴿ O'RLY?
¯\(ºдಠ)/¯
(·×·)
(⌒Д⌒)
(╹ェ╹)
(♯・・)⊃
( ´`)☆
 ´
(゜Д゜)
(・・)
(・A・)
(゚゚)
( ̄へ ̄)
´☣///_ゝ///☣`)
つ Д
_☆( ´_⊃_
。◕‿‿◕。
。◕ ‿ ◕。
!⑈ˆ~ˆ!⑈
!(`・ω・。)
(¬‿¬)
(¬▂¬)
(¬_¬)
(°ℇ °)
(°°)
(´ω`)
(´◉◞౪◟◉)
(´ヘ`;)
(´・ω・`)
(´ー`)
(ʘ‿ʘ)
(ʘ_ʘ)
(˚இ˚)
(͡๏̯͡๏)
(ΘεΘ;)
(ι´Д`)ノ
(Ծ‸ Ծ)
(॓_॔)
( ्०)
(ு८ு_ .:)
(ಠ‾ಠ)
(ಠ‿ʘ)
(ಠ‿ಠ)
(ಠ⌣ಠ)
(ಠ益ಠ ╬)
(ಠ益ಠ)
(ಠ_ృ)
(ಠ_ಠ)
(ಥ﹏ಥ)
(ಥ_ಥ)
(๏̯͡๏ )
(ღ˘⌣˘ღ) ♫・*:.。. .。.:*・
(ღ˘⌣˘ღ)
(ᵔᴥᵔ)
(•ω•)
(•‿•)
(•⊙ω⊙•)
(• ε •)
(∩▂∩)
(∩︵∩)
()
(≧ω≦)
(≧◡≦)
(≧ロ≦)
(⊙ヮ⊙)
(⊙_◎)
(⋋▂⋌)
(⌐■_■)
(‿‿)
(┛◉Д◉)┛┻━┻
(╥_╥)
(╬ಠ益ಠ)
(╬◣д◢)
(╬ ಠ益ಠ)
(╯°□°)╯︵ ┻━┻
(╯ಊ╰)
(╯◕_◕)╯
(╯︵╰,)
(╯3╰)
(╯_╰)
(╹◡╹)凸
(▰˘◡˘▰)
(●´ω`●)
(●´`●)
(◑‿◐)
(◑◡◑)
(◕‿◕✿)
(◕‿◕)
(◕‿-)
(◕︵◕)
(◕ ^ ◕)
(◕_◕)
(◜௰◝)
(◡‿◡✿)
(◣_◢)
(☞゚゚)☞
(☞゚ヮ゚)☞
(☞゚ ゚ )☞
(☼◡☼)
(☼_☼)
(✌゚゚)☞
(✖╭╮✖)
(✪㉨✪)
(✿◠‿◠)
(✿ ♥‿♥)
( ・・)
( ・ัω・ั)
( ゚゚)o彡゜えーりんえーりん!!
(。・_・。)
(つд`)
(づ。◕‿‿◕。)づ
(ノಠ益ಠ)ノ彡┻━┻
( ◑‿◑)
(_・。)
(・・ )
(屮゚Д゚)屮
(︶ω︶)
(︶︹︺)
(ﺧ益ﺨ)
(一_一)
(`・ω・´)”
(。◕‿‿◕。)
(。◕‿◕。)
(。◕ ‿ ◕。)
(。♥‿♥。)
(。・ω..・)っ
(・ェ-)
(ノ◕ヮ◕)ノ*:・゚✧
(゚Д゚)
(゚Д゚)y┛~~
(゚゚)
(゚ヮ゚)
( ̄□ ̄)
( ̄。 ̄)
( ̄ー ̄)
( ̄(エ) ̄)
( °٢° )
( ´_ゝ)
( ͡° ͜ʖ ͡°)
( ͡~ ͜ʖ ͡°)
( ಠ◡ಠ )
( •_•)>⌐■-■
(  ゚,_ゝ゚)
( ・ิз・ิ)
( ゚д゚)、
( ^▽^)σ)~O~)
((((゜д゜;))))
(*´д`*)
(*..Д`)
(*..д`*)
(*~▽~)
(-๏_๏-)
(-_- )
(/◔ ◡ ◔)/
(///_ಥ)
(;´Д`)
(=ω=;)
(=゜ω゜)
(>'o')> ♥ <('o'<)
(n˘v˘•)¬
(o´ωo)
(V)(°,,°)(V)
(\/) (°,,°) (\/)
(^▽^)
(`・ω・´)
(~ ̄▽ ̄)~
/╲/\╭ºoꍘoº╮/\\
<【☯】‿【☯】>
= (゚д゚)ウ
@_@
d(*⌒▽⌒*)b
o(≧≦)o
o(≧o≦)o
q(❂‿❂)p
y=ー( ゚д゚)・∵.
\˚ㄥ˚\
\ᇂ_ᇂ\
\(ಠ ὡ ಠ )/
\(◕ ◡ ◕\)
^̮^
^ㅂ^
_(͡๏̯͡๏)_
{´◕ ◡ ◕`}
{ಠ_ಠ}__,,|,
{◕ ◡ ◕}

106
plugins/greet.db Normal file
View File

@ -0,0 +1,106 @@
Hallo
Mirë dita
مرحبا
Салам
سلام
Kaixo
Zdravo
Olá
Oi
Demat
Здравейте
Hola
Moni
Bonghjornu
Bok
Ahoj
Hej
Hallo
Hello
Saluton
Tere
سلام
درود بر تو
درود بر شما
Bula
Kamusta
Hei
Terve
Bonjour
მიესალმები
miesalmebi
Hallo
Χαίρε
Hello
Aloha
שלום
नमस्ते
Sziasztok
Halo
Hai
Dia dhuit
Ciao
こんにちは
Kon'nichiwa
ನಮಸ್ಕಾರ
Namaskār
ជំរាបសួរ
안녕
Annyeong
ສະບາຍດີ
sabaidi
Salve
Sveiki
Hallau
Sveiki
Добар ден
Selamat tengahari
Ħelow
你好
Nǐ hǎo
Kia ora
नमस्ते
Namaste
Hei
ନମସ୍କାର
Namaskār
سلام
salam
Cześć
Hej
Olá
Oi
Buna
Привет
Preevyet
Talofa
Haló
Здраво
Zdravo
侬好
Noŋ hɔ
Mhoro
Ahoj
Zdravo
Hola
Grüss Gott
Hodi
Hej
Hallá
வனக்கம்
Vanakkam
Xin chào
Womenjeka
שלום
Sholem
வணக்கம்
Vanakaam
నమస్కారం
Namaskāram
สวัสดีค่ะ
Sawatdeekha
Merhaba
Chào bạn
Helo
העלא
Sawubona

254
plugins/krylon.py Normal file
View File

@ -0,0 +1,254 @@
# -*- coding: utf-8 -*-
from irc3.plugins.command import command
import irc3
import os
import sys
import random
import ipdb
from random import randint
from re import compile
from irc3 import rfc
dir_path = os.path.dirname(os.path.realpath(__file__))
KRYPTR = []
BOTNAMES = []
BOTNICKS = []
TOTAL_BOTS = 0
READY_BOTS = []
LOCK_KRYLON = 1 # 1
INTERRUPTED = 0
class KRYLON():
def __init__(self,bot,channel):
self.bot = bot
self.channel = channel
self.KRYLON_FILE = ['MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMms:-/NMMMMMMMMMMMMMMMMMMMMNmmdddmNMMMMMMMMMMMMMMMMMMMMMy+ohMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMN+....`sMMMMMMMMMMMMMMNds+:.--:::::-.-:oymMMMMMMMMMMMMMMh`...-yMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMmo-.` ..mMMMMMMMMMMNy/.-/shmNNNNNNNNmmho/-.+hMMMMMMMMMMN-.` `..:hMMMMMMMMMMMMMMMMMM', 'MMMMMNMMMMMMNh+.`` `.dMMMMMMMmo.-odNMMMMMMMMMMMMMMMMMNh+--sNMMMMMMN/`` `.:smMMMMMMMMMMMMMMM', 'MMMMMd+sys+:.` `/dMMMNo`:hNMMMMMMMMMMMMMMMMMMMMMMMms-.yMMMNy. `.:oydddyhMMMMMMM', 'MMMMMMh:` ```-+s-.yNMMMMMMMMMMMMMMMMMMMMMMMMMMMmo`/y/. ``.sMMMMMMMM', 'MMMMMMMNmysosyhdh+ -ohmmmmd/ :mMMMMMMMMNNMMMMMMMMMMMNNMMMMMMMMh. +hhhyo:` -+so+/:/+ymMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMo :dNMMMMMMd`:mMMMMMNds/::/ohNMMMMMh:..-yMMMMMMMd`-NMMMMMms. :NMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMdsNMMMMMMMN-`dMMMMNm/` `:dNMMN` dMMMMMMMy +MMMMMMMN+hMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMy oNMMMMN: .mMMNo. `/NMMMMMMMN-`NMMMMMMMMNMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMM/ hMMMMMm` dNMMMmhhdNMMMMMMMMNo yMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMM: mMMMMMNo :mMMMMMMMMMMMMMMMMMMs sMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMM/ dMMMMMMNs-` .omMMMMMMMMMMMMMMMMMMMo yMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMo yMMMMMMMMNhyooshmNMMMMMMMMMMMMMMMMMMMN+ dMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMy oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN- NMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMm :NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm`-MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMM.`mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMM+ yMMMNhdMMMMMMMMMMMMMMMMMMMMMMNNMMMMN: dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMm`-mdo- oNMMMMMNMMMMMMMMNMMMMMMh-+hNMh`:MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMs -./o +NMMMm+sNMMMMMNh:yNMMMN: /.-o-`mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMsymMm :NMmo.``hMMMMd/`/.-yNMh /MNh/-dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -mo.-hm..mMm+`:dMNo.-y: dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM.`..yMMMd`:s..hMMMMMNo` /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM-.sNMMMMMs `sNMMMMMMMMNomMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMdNMMMMMMMMsmMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM']
self.__run__()
def __run__(self):
self.KRYLON_FILE.reverse()
self.FILE_BUFFER=[]
for _ in self.KRYLON_FILE:
self.FILE_BUFFER.append(_)
self.FILE_LINES = len(self.KRYLON_FILE)
self.INIT = 0
self.STARTED = 0
self.FINISHED = 0
self.FILE_INDEX = 0
# BITWISE FILE LOCK SET
self.KRYLON_FILE_LOCK = []
for _ in range(len(self.KRYLON_FILE)):
self.KRYLON_FILE_LOCK.append(1)
# BITWISE R/W BOT LOCK SET
self.BOTS_MODE_LOCK = []
for _ in range(len(READY_BOTS)):
self.BOTS_MODE_LOCK.append(zip('1','1'))
# BITWISE R/W BOT LOCK UNSET
R=[]; W=[]; _X=-1; _Y=-1;
for _ in range(len(READY_BOTS)):
_X,_Y=list(self.BOTS_MODE_LOCK[_])[0]
R.append(int(_X))
W.append(int(_Y))
self.BOTS_MODE_READ=R
self.BOTS_MODE_WRIT=W
@irc3.plugin
class Plugin(object):
def __init__(self, context):
self.log = context.log
self.context = context
self.channel = context.config.channel
self._ST8 = 0
def __emoj(self,s):
emote_db = '%s/emote.db' % dir_path
emoj = random.choice(list(open(emote_db)))
random.randint(0,1)
if random.randint(0,1) == 0:
emoj = "\x0304{}\x0F".format(emoj)
else:
emoj = "\x0303{}\x0F".format(emoj)
s = s + '' + emoj
return s
def __greet(self):
greet_db = '%s/greet.db' % dir_path
greet = random.choice(list(open(greet_db)))
return greet
def __symbol(self):
symbol_db = '%s/symbol.db' % dir_path
symbol = random.choice(list(open(symbol_db)))
return symbol
def rotate(self):
self.b1n+=1
if self.b1n == len(BOTNICKS):
self.b1n=0
ipdb.set_trace()
def spraying(self, mask, channel, **kw):
PTR = KRYPTR[0]
PTR.kbr = []; PTR.kbw = []; PTR.kbl = [];
PTR.chn = channel
for index in range(len(PTR.BOTS_MODE_READ)):
PTR.kbr.append(PTR.BOTS_MODE_READ[index])
PTR.kbw.append(PTR.BOTS_MODE_WRIT[index])
PTR.kbl.append(PTR.KRYLON_FILE_LOCK[index])
PTR.fbu = PTR.FILE_BUFFER
PTR.fli = PTR.FILE_LINES
PTR.fin = PTR.FILE_INDEX
BOTNAMES=','.join(self.context.config.botnet.keys()).split(',')
PTR.bna = BOTNAMES
BOTNICKS=[]
for _ in BOTNAMES:
BOTNICKS.append(self.context.config.botnet[_].nick)
PTR.bni = BOTNICKS
PTR.b1n = BOTNICKS.index(self.context.nick)
PTR.int = 0
if PTR.INIT == 0:
PTR._ST8 = 0
PTR.INIT = 1
print('<<<<<<> JUST INIT <>>>>>>') # test if initialized for first pass, fails on purpose
PTR.STARTED = 1
PTR.FINISHED = 0
PTR.exe = 1 # set to recognize execution
PTR.cyc = 0 # how many cycles within this operation, e.g. amount of bots pass through this function
PTR.ops = 0 # how many completed operations, cycles reset, ops continue to count
#ipdb.set_trace()
for y in range(len(PTR.bni)):
if not y == PTR.b1n:
PTR.kbr[y] = 0
else:
PTR.kbw[y] = 1
PTR.who = self.context.nick
MSG=PTR.fbu.pop()
PTR.what = MSG
PTR.fin+=1
NEWBOT=','.join(list(self.context.config.botnet.keys())).split(',')[PTR.b1n]
print(PTR.bni)
print(PTR.bna)
print(PTR.b1n)
print(PTR.bni[PTR.b1n])
print(PTR.bna[PTR.b1n])
print("WHO:{} NEWBOT:{}".format(PTR.who,NEWBOT))
self.context.privmsg(PTR.chn,MSG)
if PTR._ST8 <= 5 and PTR.int == 1:
INTERRUPTED = 0
PTR.int = INTERRUPTED
PTR._ST8 = 3
@irc3.event(irc3.rfc.JOIN)
def welcome(self, mask, channel, **kw):
if LOCK_KRYLON == 1:
B0T = self.context
B0TNAMES=','.join(self.context.config.botnet.keys()).split(',')
B0TN1CKS=[]
for _ in B0TNAMES:
B0TN1CKS.append(self.context.config.botnet[_].nick)
for i,B0T.nick in enumerate(B0TN1CKS):
if B0TN1CKS[i] == B0T.nick:
NFLAG=1
for _ in READY_BOTS:
if B0T.nick == _:
NFLAG=0
if NFLAG==1:
READY_BOTS.append(self.context.nick)
BOTCNT = len(self.context.config.botnet)
if len(READY_BOTS) == BOTCNT:
BOTNICKS=B0TN1CKS
BOTNAMES=B0TNAMES
TOTAL_BOTS = BOTCNT;
BOT=self.context
CHN=channel
k=KRYLON(BOT,CHN)
KRYPTR.append(k)
self.spraying(mask,channel,**kw)
@irc3.event(irc3.rfc.CONNECTED)
def connected(self, **kw):
if LOCK_KRYLON == 1:
self.context.join(self.channel)
@irc3.event(rfc.PRIVMSG, iotype="out")
def krylon_event(bot, mask=None, event=None, target=None, data=None):
NICK=bot.context.nick
CHANNEL=bot.channel
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
print(MSG)
# ipdb.set_trace()
PTR = KRYPTR[0]
B0T=bot.context
B1N = PTR.bni.index(B0T.nick)
print("OUTPUT:{}".format(bot.context.nick))
@irc3.event(irc3.rfc.PRIVMSG, iotype="in")
def on_privmsg(self, mask=None, data=None, **kw):
# B0T=self.context
# print(data)
bot = self
NICK=bot.context.nick
CHANNEL=bot.channel
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
print(MSG)
# ipdb.set_trace()
PTR = KRYPTR[0]
B0T=bot.context
B1N = PTR.bni.index(B0T.nick)
print("INPUT:{}".format(bot.context.nick))
WTF=0
if mask.nick == 'd':
self.context.privmsg('#b0ts3x','dont interrupt me mofo')
PTR.int = 1
PTR.FILE_BUFFER=[]
for _ in PTR.KRYLON_FILE:
PTR.FILE_BUFFER.append(_)
PTR.fbu = PTR.FILE_BUFFER
PTR.INIT = 0
PTR.fin=0
PTR.b1n=0
PTR.FINISHED = 0
self.spraying(mask,channel,**kw)
return
if PTR.who == mask.nick and PTR.STARTED == 1 and PTR.FINISHED == 0 and PTR.what == data and PTR.fin < PTR.fli:
PTR.fin+=1
PTR.b1n+=1
if PTR.b1n == len(PTR.bni):
PTR.b1n=0
PTR.who = PTR.bni[PTR.b1n]
MSG=PTR.fbu.pop()
PTR.what = MSG
NEWBOT=','.join(list(bot.context.config.botnet.keys())).split(',')[PTR.b1n]
print(NEWBOT)
bot.context.config.botnet[NEWBOT].privmsg(CHANNEL,MSG)
if PTR.fin == PTR.fli:
sys.exit(0)

4
plugins/symbol.db Normal file
View File

@ -0,0 +1,4 @@
ψ

5
requirements.txt Normal file
View File

@ -0,0 +1,5 @@
hupper
irc3
aiocron
asyncio
ipdb

130
run.sh Executable file
View File

@ -0,0 +1,130 @@
INIT=0
CONFIG=".krylon_config"; #[ -f $CONFIG ] && rm $CONFIG
[ -f $CONFIG ] && INIT=1
MEMORY=""
kset() {
if [[ -z $1 ]] || [[ -z $2 ]]; then echo "error: no variable or value to kset()"; exit; fi
echo "$1 = $2" >> $CONFIG
}
kwrite() {
if [[ -z $1 ]]; then echo "error: no value to kwrite()"; exit; fi
echo "$1" >> $CONFIG
}
kblank() {
echo "" >> $CONFIG
}
kprompt() {
if [[ -z $1 ]] || [[ -z $2 ]] || [[ -z $3 ]] || [[ -z $4 ]] || [[ -z $5 ]] || [[ -z $6 ]]; then echo "error: no variable, prompt, help, enforcement, type or memory passed to kprompt()"; exit; fi
local INIVAR=$1; local PROMPT=$2; local HALPLZ=$3; local ENFORCE=$4; local TYPE=$5; local MEMORIZE=$6; unset REPLY;
while [[ -z "${REPLY}" ]] || [[ $ENFORCE -eq 1 ]]; do
echo -en "$HALPLZ\n$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n "[y/n]: "
read;
if [[ $ENFORCE -eq 1 ]] && [[ $TYPE -eq 0 ]]; then
while ! [[ -z $ENFORCE ]]; do
if ([ ${REPLY} == "y" ] || [ ${REPLY} == "Y" ]); then
return 0
elif ([ ${REPLY} == "n" ] || [ ${REPLY} == "N" ]); then
return 9
else
echo -n "$HALPLZ\n$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n "[y/n]: "
read;
fi;
done;
elif [[ $TYPE -eq 1 ]]; then
while true; do
[[ ${REPLY} =~ ^-?[0-9]+$ ]]
if ! [ $? -eq 0 ]; then
echo -n "$HALPLZ\n$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n "[y/n]: "
read;
else
return ${REPLY}
fi
done;
fi;
done;
if [ $MEMORIZE -eq 1 ]; then
MEMORY=${REPLY}
fi;
[ $TYPE -eq 1 ] && return ${REPLY} || kset "$INIVAR" "${REPLY}"
return 0;
}
if [ $INIT -eq 0 ]; then
kwrite "[bot]"
kprompt "nick" "bot ircnick" "bot's nickname to use on the network. e.g. here!*@*" 0 0 1
BOTNICK=$(python -c "import random; print(''.join(random.sample('$MEMORY',len('$MEMORY'))))");
kprompt "username" "bot username" "bot's username to use on the network. e.g. *!here@*" 0 0 1
USERNAME=$(python -c "import random; print(''.join(random.sample('$MEMORY',len('$MEMORY'))))");
kprompt "realname" "bot realname" "bot's realname that shows if someone. /whois bot." 0 0 0
kprompt "host" "irc address" "the ip/hostname of the irc server this bot will connect to." 0 0 0
kprompt "port" "irc port" "the port number of the irc server this bot will connect to." 0 0 0
kprompt "channel" "irc channel" "the channel the bot(s) will join upon connection." 0 0 1
CHANNEL=$MEMORY;
kwrite "version=1"
kprompt "ssl" "use ssl?" "is the connect to this irc server using secure socket layers?" 1 0 0
[ $? -eq 0 ] && (kset "ssl" "true"; kset "ssl_verify" "cert_none") || (kset "ssl" "false")
kprompt "bots" "how many helper bots?[0-255]" "how many bots will connect to the ircserver?" 0 1 0
BOTCOUNT=$?;
kblank
kwrite "includes ="
kwrite " irc3.plugins.command"
kwrite " irc3.plugins.asynchronious"
kwrite " irc3.plugins.storage"
kwrite " irc3.plugins.uptime"
kwrite " irc3.plugins.ctcp"
kwrite " irc3.plugins.cron"
kwrite " irc3.plugins.logger"
kwrite " irc3.plugins.userlist"
kwrite " plugins.b33p"
kwrite " plugins.krylon"
kblank
kwrite "flood_burst = 0"
kwrite "flood_rate = 1"
kwrite "flood_rate_delay = 1"
kwrite "storage = json://.krylon_database"
kblank
kwrite "[irc3.plugins.command]"
kwrite "cmd = ?"
kwrite "guard = irc3.plugins.command.mask_based_policy"
kblank
kwrite "[irc3.plugins.command.masks]"
kwrite "d"'!'"*dr1p@* = all_permissions"
kwrite "* = view"
kblank
kwrite "ignore_list ="
kwrite " g1mp_"'!'"*@*"
kwrite " g1mp"'!'"*@*"
kwrite " ken_"'!'"*@*"
kwrite " ken"'!'"*@*"
kblank
for i in $(seq 1 $BOTCOUNT); do
kwrite "[bot_$i]"
RANDOM=$((1 + $RANDOM % 255))
SALT=$(printf '%x\n' $RANDOM)
THIS=$SALT"_krylon_$(printf '%x\n' $i)"
THAT=$(python -c "import random; print(''.join(random.sample('$THIS',len('$THIS'))))");
kwrite "nick = $THAT"
RANDOM=$((1 + $RANDOM % 255))
SALT=$(printf '%x\n' $RANDOM)
THIS=$SALT"$USERNAME"
THAT=$(python -c "import random; print(''.join(random.sample('$THIS',len('$THIS'))))");
kwrite "username = $THAT"
kwrite "channel = $CHANNEL"
kblank
done;
fi;
echo -e "\n-\n"
[ -f $CONFIG ] && cat $CONFIG
echo -e "\n-\nEXECUTING"
irc3 $CONFIG
exit

22
run_artop.sh Executable file
View File

@ -0,0 +1,22 @@
rm .krylon_config
bash run.sh
while :
do
cp 6.tskull.txt plugins/krylon.py
bash run.sh
sleep 0.5
cp 5.hack.txt plugins/krylon.py
bash run.sh
sleep 0.5
cp 4.ghost.txt plugins/krylon.py
bash run.sh
sleep 0.5
cp 3.mind.txt plugins/krylon.py
bash run.sh
sleep 0.5
cp 1.goth.txt plugins/krylon.py
bash run.sh
sleep 0.5
cp 2.fh.txt plugins/krylon.py
bash run.sh
done

1
run_debug.sh Executable file
View File

@ -0,0 +1 @@
hupper -m irc3 .krylon_config

5
tool_ans2utf8.sh Executable file
View File

@ -0,0 +1,5 @@
#infile.ans
ANSI=$1
#outfile.txt
ASCII=$2
piconv -f CP437 -t UTF-8 < $1 > $2

214
tool_dconvutf8.py Executable file
View File

@ -0,0 +1,214 @@
import ipdb
import subprocess
cp437 = {
0:'\u0000',1:'\u263A',2:'\u263B',3:'\u2665',4:'\u2666',5:'\u2663',6:'\u2660',7:'\u2022',
8:'\u25D8',9:'\u25CB',10:'\u25D9',11:'\u2642',12:'\u2640',13:'\u266A',14:'\u266B',15:'\u263C',
16:'\u25BA',17:'\u25C4',18:'\u2195',19:'\u203C',20:'\u00B6',21:'\u00A7',22:'\u25AC',23:'\u21A8',
24:'\u2191',25:'\u2193',26:'\u2192',27:'\u2190',28:'\u221F',29:'\u2194',30:'\u25B2',31:'\u25BC',
32:'\u0020',33:'\u0021',34:'\u0022',35:'\u0023',36:'\u0024',37:'\u0025',38:'\u0026',39:'\u0027',
40:'\u0028',41:'\u0029',42:'\u002A',43:'\u002B',44:'\u002C',45:'\u002D',46:'\u002E',47:'\u002F',
48:'\u0030',49:'\u0031',50:'\u0032',51:'\u0033',52:'\u0034',53:'\u0035',54:'\u0036',55:'\u0037',
56:'\u0038',57:'\u0039',58:'\u003A',59:'\u003B',60:'\u003C',61:'\u003D',62:'\u003E',63:'\u003F',
64:'\u0040',65:'\u0041',66:'\u0042',67:'\u0043',68:'\u0044',69:'\u0045',70:'\u0046',71:'\u0047',
72:'\u0048',73:'\u0049',74:'\u004A',75:'\u004B',76:'\u004C',77:'\u004D',78:'\u004E',79:'\u004F',
80:'\u0050',81:'\u0051',82:'\u0052',83:'\u0053',84:'\u0054',85:'\u0055',86:'\u0056',87:'\u0057',
88:'\u0058',89:'\u0059',90:'\u005A',91:'\u005B',92:'\u005C',93:'\u005D',94:'\u005E',95:'\u005F',
96:'\u0060',97:'\u0061',98:'\u0062',99:'\u0063',100:'\u0064',101:'\u0065',102:'\u0066',103:'\u0067',
104:'\u0068',105:'\u0069',106:'\u006A',107:'\u006B',108:'\u006C',109:'\u006D',110:'\u006E',111:'\u006F',
112:'\u0070',113:'\u0071',114:'\u0072',115:'\u0073',116:'\u0074',117:'\u0075',118:'\u0076',119:'\u0077',
120:'\u0078',121:'\u0079',122:'\u007A',123:'\u007B',124:'\u007C',125:'\u007D',126:'\u007E',127:'\u2302',
128:'\u00C7',129:'\u00FC',130:'\u00E9',131:'\u00E2',132:'\u00E4',133:'\u00E0',134:'\u00E5',135:'\u00E7',
136:'\u00EA',137:'\u00EB',138:'\u00E8',139:'\u00EF',140:'\u00EE',141:'\u00EC',142:'\u00C4',143:'\u00C5',
144:'\u00C9',145:'\u00E6',146:'\u00C6',147:'\u00F4',148:'\u00F6',149:'\u00F2',150:'\u00FB',151:'\u00F9',
152:'\u00FF',153:'\u00D6',154:'\u00DC',155:'\u00A2',156:'\u00A3',157:'\u00A5',158:'\u20A7',159:'\u0192',
160:'\u00E1',161:'\u00ED',162:'\u00F3',163:'\u00FA',164:'\u00F1',165:'\u00D1',166:'\u00AA',167:'\u00BA',
168:'\u00BF',169:'\u2310',170:'\u00AC',171:'\u00BD',172:'\u00BC',173:'\u00A1',174:'\u00AB',175:'\u00BB',
176:'\u2591',177:'\u2592',178:'\u2593',179:'\u2502',180:'\u2524',181:'\u2561',182:'\u2562',183:'\u2556',
184:'\u2555',185:'\u2563',186:'\u2551',187:'\u2557',188:'\u255D',189:'\u255C',190:'\u255B',191:'\u2510',
192:'\u2514',193:'\u2534',194:'\u252C',195:'\u251C',196:'\u2500',197:'\u253C',198:'\u255E',199:'\u255F',
200:'\u255A',201:'\u2554',202:'\u2569',203:'\u2566',204:'\u2560',205:'\u2550',206:'\u256C',207:'\u2567',
208:'\u2568',209:'\u2564',210:'\u2565',211:'\u2559',212:'\u2558',213:'\u2552',214:'\u2553',215:'\u256B',
216:'\u256A',217:'\u2518',218:'\u250C',219:'\u2588',220:'\u2584',221:'\u258C',222:'\u2590',223:'\u2580',
224:'\u03B1',225:'\u00DF',226:'\u0393',227:'\u03C0',228:'\u03A3',229:'\u03C3',230:'\u00B5',231:'\u03C4',
232:'\u03A6',233:'\u0398',234:'\u03A9',235:'\u03B4',236:'\u221E',237:'\u03C6',238:'\u03B5',239:'\u2229',
240:'\u2261',241:'\u00B1',242:'\u2265',243:'\u2264',244:'\u2320',245:'\u2321',246:'\u00F7',247:'\u2248',
248:'\u00B0',249:'\u2219',250:'\u00B7',251:'\u221A',252:'\u207F',253:'\u00B2',254:'\u25A0',255:'\u00A0',
}
def q(s):
f = open('/home/dr1p/.weechat/weechat_fifo','w')
f.write('*{}\x0a'.format(s))
f.close()
class D():
def __init__(self):
self.MODE_BOLD=0
return
def c(self,n):
n = int(n)
cc = {
99:'\x03',
1:'\x02', #bold
3:'\x1d', #italics
4:'\x1f', #underline
9:'\x1e', #strikethrough
0:'\x01',
40:'1',
30:'14',
31:'04',
32:'09',
33:'08',
34:'12',
35:'13',
36:'11',
37:'15',
41:'04',
42:'09',
43:'08',
44:'12',
45:'13',
46:'11',
47:'15'
}
cb = {
99:'\x03',
1:'\x02', #bold
3:'\x1d', #italics
4:'\x1f', #underline
9:'\x1e', #strikethrough
0:'\x01',
40:'1',
30:'14',
31:'28',
32:'09',
33:'54',
34:'72',
35:'13',
36:'11',
37:'15',
41:'04',
42:'09',
43:'08',
44:'12',
45:'13',
46:'11',
47:'15'
}
#ipdb.set_trace()
if self.MODE_BOLD==1:
if n >= 30 and n <= 47:
return int(cc[n])
else:
return cb[n]
else:
return cb[n]
def w(s,index):
d=D()
s = s.replace('\x1b','')
ss = s
codes=[]
ogcodes=[]
newcodes=[]
while True:
sa = ss.find('[')
sb = ss.find('m')
if sa == -1 and sb == -1:
break
x = ss[sa:sb+1]
ogcodes.append(x)
codes.append(x.replace('m','').replace('[','').split(';'))
ss=ss[sb+1:]
count = len(codes[-1])
if count == 1:
ca = codes[-1][0]
if ca == '1' or ca == '3' or ca == '4' or ca == '9':
if ca == '1':
code = "{}".format(d.c(99))
else:
code = "{}".format(d.c(ca))
elif ca == '0':
code = "{}".format(d.c(1))
elif ca == '31':
# d.MODE_BOLD=0
code = "{}{}".format(d.c(99),d.c(31))
else:
try:
code = "{}{}".format(d.c(99),d.c(ca))
#code = "{},{}".format(c[99],c[int(ca)])
except:
if ca == '7C1':
codes[-1]=1
newcodes.append(code)
elif count == 2:
ca = codes[-1][0]
cb = codes[-1][1]
# ipdb.set_trace()
if ca == '0':
d.MODE_BOLD=0
code = "{}{}".format(d.c(99),d.c(cb))
elif ca == '1':
d.MODE_BOLD=1
code = "{}{}".format(d.c(99),d.c(cb))
else:
code = "{}{}{}{}".format(d.c(99),d.c(ca),d.c(99),d.c(cb))
newcodes.append(code)
elif count == 3:
ca = codes[-1][0]
cb = codes[-1][1]
cc = codes[-1][1]
if ca == '0':
code = "{}{},{}".format(d.c(99),d.c(cb),d.c(cc))
elif ca == '1':
d.MODE_BOLD=1
code = "{}{}{}{}".format(d.c(99),d.c(cb),d.c(99),d.c(cc))
newcodes.append(code)
elif count == 4:
ca = codes[-1][0]
cb = codes[-1][1]
cc = codes[-1][2]
cd = codes[-1][3]
code = "{}{}{},{}".format(d.c(1),d.c(99),d.c(cd),d.c(cc))
newcodes.append(code)
buffer = s
for i,_ in enumerate(ogcodes):
z = buffer.find(_)
if z == 0:
b=buffer[len(_):]
a=newcodes[i]
buffer = "{}{}".format(a,b)
else:
try:
a=buffer[:buffer.find(_)]
b=newcodes[i]
c=buffer[buffer.find(_)+len(ogcodes[i]):]
buffer = "{}{}{}".format(a,b,c)
except:
print('hi')
ipdb.set_trace()
print('hi')
print('hi')
q(buffer)
if __name__=="__main__":
f = open('/home/dr1p/Documents/python/acid.txt','r')
l = f.read().splitlines()
f.close()
for i,_ in enumerate(l):
if _.find('\x1aSAUCE') == -1:
w(_,i)
else:
pass