91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

Brainfuck是一種極小化的計算機語言,它是由Urban Müller在1993年創建的。由于fuck在英語中是臟話,這種語言有時被稱為brainf*ck或brainf**k,甚至被簡稱為BF。 在ctf比賽中,有時會碰到需要解brainfuck或ook的情況,一般會使用在線解碼網站:https://www.splitbrain.org/services/ook 當在不能接入外網的場景下解題,則需要一個離線腳本。故優化了github上的一個項目完成了該解碼腳本,支持brainfuck、ook以及short ook。

資源截圖

代碼片段和文件信息

#?-*-?coding:utf-8?-*-
import?sys
from?collections?import?deque

class?LoopError(Exception):
pass

class?OokParser(object):
def?__init__(self):
self.BEGIN?=?(‘!‘?‘?‘)
self.END?=?(‘?‘?‘!‘)
self.primitives?=?{(‘.‘?‘.‘):?‘inc‘
???(‘!‘?‘!‘):?‘dec‘
???(‘.‘?‘?‘):?‘right‘
???(‘?‘?‘.‘):?‘left‘
???(‘!‘?‘.‘):?‘write‘
???(‘.‘?‘!‘):?‘read‘}
???
def?parse(self?input_text):
items?=?input_text.lower().replace(‘ook‘‘‘).replace(‘?‘?‘‘).replace(‘\n‘‘‘).replace(‘\r‘‘‘)
for?i?in?range(0?len(items)?2):
x?=?(items[i]?items[i+1])
if?x?in?self.primitives?or?x?in?(self.BEGIN?self.END):
yield?x

class?BrainfuckParser(object):
def?__init__(self):
self.BEGIN?=?‘[‘
self.END?=?‘]‘
self.primitives?=?{‘+‘:?‘inc‘
???‘-‘:?‘dec‘
???‘>‘:?‘right‘
???‘<‘:?‘left‘
???‘.‘:?‘write‘
???‘‘:?‘read‘}
???
def?parse(self?input_text):
for?x?in?input_text:
if?x?in?self.primitives?or?x?in?(self.BEGIN?self.END):
yield?x

class?Interpreter(object):
MAX_NESTED_LOOPS?=?1000

def?__init__(self?ook_mode=True):
self.bf_parser?=?BrainfuckParser()
self.ook_parser?=?OokParser()
self.set_parser(ook_mode?and?self.ook_parser?or?self.bf_parser)

def?reset(self):
self.cells?=?deque([0])
self.index?=?0
self.input_buffer?=?[]
self.output_buffer?=?[]
self.open_loops?=?0
self.loop?=?[]

def?inc(self):
self.cells[self.index]?+=?1

def?dec(self):
self.cells[self.index]?-=?1

def?right(self):
self.index?+=?1
if?self.index?>=?len(self.cells):
self.cells.append(0)

def?left(self):
if?self.index?==?0:
self.cells.appendleft(0)
else:
self.index?-=?1

def?write(self):
self.output_buffer.append(self.cells[self.index])

def?read(self):
try:
self.cells[self.index]?=?int(raw_input(“Your?input:?“))
except?(TypeError?ValueError):
print?“Invalid?input!?Continuing?...“

def?as_ascii(self):
return?““.join([chr(c)?for?c?in?self.output_buffer])

def?set_parser(self?parser):
self.parser?=?parser
self.reset()

def?interpret_raw_text(self?text):
self.input_buffer.extend(self.parser.parse(text))
try:
self.interpret_items(self.input_buffer)
except?IndexError:
print?“?...?(incomplete)“
except?LoopError:
print?“LoopError?...?exiting“
sys.exit(1)

def?interpret_items(self?items):
for?item?in?items:
if?self.open_loops:
self.interpret_inside_loop(item)
else:
self.interpret_directly(item)

def?interpret_inside_loop(self?item):
if?item?==?self.parser.END:
self.open_loops?-=?1
if?self.open_loops?==?0:
while?self.cells[self.index]:
self.interpret_items(self.loop)
return
elif?item?==?self.parser.BEGIN:
if?self.open_loops? self.open_loops?+=?1
else:
raise?LoopError(“Nesting?maximum?(%s)?exceeded“?
%?self.MAX_NEST

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????390??2018-09-25?16:31??BrainFuck(Ook)\brainfuck.txt

?????文件??????11941??2018-09-25?16:56??BrainFuck(Ook)\example.png

?????文件???????5070??2018-09-25?16:53??BrainFuck(Ook)\ook.py

?????文件???????2280??2018-09-25?16:06??BrainFuck(Ook)\ook.txt

?????文件????????867??2018-09-25?15:20??BrainFuck(Ook)\shortOok.txt

?????目錄??????????0??2018-09-25?16:56??BrainFuck(Ook)

-----------?---------??----------?-----??----

????????????????20548????????????????????6


評論

共有 條評論