【攻防世界刷题】Misc-8-can_has_stdio?

【攻防世界刷题】Misc-8-can_has_stdio?

【攻防世界刷题】Misc-8-can_has_stdio?

出处Tags
攻防世界Brainfuck

知识点

1.Brainfuck语言
Brainfuck是一种极小化的计算机语言,它是由Urban Müller在1993年创建的。主要设计思路是:用最小的概念实现一种“简单”的语言,该语言只有八种符号,所有的操作都由这八种符号的组合来完成。

下面是这八种状态的描述,其中每个状态由一个字符标识:

字符含义
>指针加一
<指针减一
+指针指向的字节的值加一
-指针指向的字节的值减一
.输出指针指向的单元内容(ASCII码)
,输入内容到指针指向的单元(ASCII码)
[如果指针指向的单元值为零,向后跳转到对应的]指令的次一指令处
]如果指针指向的单元值不为零,向前跳转到对应的[指令的次一指令处

【例】一串brainfuck语句

a = '++++++++++[>+++++++++>++++++++>+++++++<<<-]>>>++.---.<----..+++.'

题解

  1. 题目打开为一串brainfuck语言的字符串

                                     +                                       
                                     ++                                       
                                     +++                                      
                                    ++[>                                      
                                    +>++>                                     
                                   +++>++                                     
                                   ++>++++                                    
                                  +>++++++                                    
                                  >+++++++>                                   
                                 ++++++++>+                                   
                                 ++++++++>++                                  
                                ++++++++>+++                                  
                                ++++++++>++++                                 
          ++++++++>+++++++++++++>++++++++++++++>+++++++++++++++>++            
            ++++++++++++++<<<<<<<<<<<<<<<<-]>>>>>>>>>>>>>--.++<<              
              <<<<<<<<<<<>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<                
                >>>>>>>>>>>>+.-<<<<<<<<<<<<>>>>>>>>>>>>>-.+<                  
                  <<<<<<<<<<<<>>>>>>>>>>>>>>>+++.---<<<<<<                    
                    <<<<<<<<<>>>>>>>>>>>>>---.+++<<<<<<<                      
                      <<<<<<>>>>>>>>>>>>>>+++.---<<<<<                        
                        <<<<<<<<<>>>>>>>>>>>>>>-.+<<                          
                          <<<<<<<<<<<<>>>>>>>>>>>>                            
                          >>----.++++<<<<<<<<<<<<<                            
                          <>>>>>>>>>>>>+.-<<<<<<<<                            
                         <<<<>>>>>>>>>>>>>>--.++<<<                           
                         <<<<<<<<<<<>>>>>>>>>>>>>-.                           
                        +<<<<<<<<<<<<<>>>>>>>>>>>>>>                          
                        +++.---<<<<<<   <<<<<<<<>>>>                          
                       >>>>>>>>-.+<       <<<<<<<<<<<                         
                       >>>>>>>>>>           >>>--.++<                         
                      <<<<<<<<<               <<<>>>>>                        
                      >>>>>>                    >>>-.+                        
                     <<<<<                        <<<<<                       
                     <<<                            <>>                       
                    >>                                >>                      
                                                                              
                                                                              
                                                                              
>>>>>>>>++.--<<<<<<<<<<<<<<>>>>>>>>>>>>-.+<<<<<<<<<<<<>>>>>>>>>>>>>--.++<<<<<<<<<<<<<>>>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<<<>>>>>>>>>>>>>>--.++<<<<<<<<<<<<<<>>>>>>>>>>>>-.+<<<<<<<<<<<<>>>>>>>>>>>>+.-<<<<<<<<<<<<>>>>>>>>>>>>>>--.++<<<<<<<<<<<<<<>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<>>>>>>>>>>>>-.+<<<<<<<<<<<<>>>>>>>>>>>>>>.<<<<<<<<<<<<<<>>>>>>>>>>>>>>++.--<<<<<<<<<<<<<<>>>>>>>>>>>>>>-.+<<<<<<<<<<<<<<>>>>>>>>>>>>>--.++<<<<<<<<<<<<<>>>>>>>>>>>>>+.-<<<<<<<<<<<<<>>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<<<<.

2.在线解码网站:http://www.hiencode.com/brain.html
在这里插入图片描述

3.离线解码脚本

def brainfuck(a):
    li = [0]
    index = 0
    kuo = []
    output = []
    i = 0
    while i < len(a):
        if a[i] == '+' or a[i] == '-':
            li[index] = eval(str(li[index]) + a[i] + '1')
        elif a[i] == '>':
            index += 1
            if len(li) <= index:
                li.append(0)
        elif a[i] == '<':
            index -= 1
        elif a[i] == '.':
            print(li[index], end=' ')
            output.append(li[index])
        elif a[i] == ',':
            i += 1
            li[index] = ord(a[i])
        elif a[i] == '[':
            if li[index] == 0:
                while a[i] != ']':
                    i += 1
                i += 1
            else:
                kuo.append(i)
        elif a[i] == ']':
            if li[index] != 0:
                i = kuo.pop()-1
            else:
                temp = kuo.pop()
        i += 1
    return output

a="""
                                                                              
                                                                              
                                      +                                       
                                     ++                                       
                                     +++                                      
                                    ++[>                                      
                                    +>++>                                     
                                   +++>++                                     
                                   ++>++++                                    
                                  +>++++++                                    
                                  >+++++++>                                   
                                 ++++++++>+                                   
                                 ++++++++>++                                  
                                ++++++++>+++                                  
                                ++++++++>++++                                 
          ++++++++>+++++++++++++>++++++++++++++>+++++++++++++++>++            
            ++++++++++++++<<<<<<<<<<<<<<<<-]>>>>>>>>>>>>>--.++<<              
              <<<<<<<<<<<>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<                
                >>>>>>>>>>>>+.-<<<<<<<<<<<<>>>>>>>>>>>>>-.+<                  
                  <<<<<<<<<<<<>>>>>>>>>>>>>>>+++.---<<<<<<                    
                    <<<<<<<<<>>>>>>>>>>>>>---.+++<<<<<<<                      
                      <<<<<<>>>>>>>>>>>>>>+++.---<<<<<                        
                        <<<<<<<<<>>>>>>>>>>>>>>-.+<<                          
                          <<<<<<<<<<<<>>>>>>>>>>>>                            
                          >>----.++++<<<<<<<<<<<<<                            
                          <>>>>>>>>>>>>+.-<<<<<<<<                            
                         <<<<>>>>>>>>>>>>>>--.++<<<                           
                         <<<<<<<<<<<>>>>>>>>>>>>>-.                           
                        +<<<<<<<<<<<<<>>>>>>>>>>>>>>                          
                        +++.---<<<<<<   <<<<<<<<>>>>                          
                       >>>>>>>>-.+<       <<<<<<<<<<<                         
                       >>>>>>>>>>           >>>--.++<                         
                      <<<<<<<<<               <<<>>>>>                        
                      >>>>>>                    >>>-.+                        
                     <<<<<                        <<<<<                       
                     <<<                            <>>                       
                    >>                                >>                      
                                                                              
                                                                              
                                                                              
>>>>>>>>++.--<<<<<<<<<<<<<<>>>>>>>>>>>>-.+<<<<<<<<<<<<>>>>>>>>>>>>>--.++<<<<<<<<<<<<<>>>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<<<>>>>>>>>>>>>>>--.++<<<<<<<<<<<<<<>>>>>>>>>>>>-.+<<<<<<<<<<<<>>>>>>>>>>>>+.-<<<<<<<<<<<<>>>>>>>>>>>>>>--.++<<<<<<<<<<<<<<>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<>>>>>>>>>>>>-.+<<<<<<<<<<<<>>>>>>>>>>>>>>.<<<<<<<<<<<<<<>>>>>>>>>>>>>>++.--<<<<<<<<<<<<<<>>>>>>>>>>>>>>-.+<<<<<<<<<<<<<<>>>>>>>>>>>>>--.++<<<<<<<<<<<<<>>>>>>>>>>>>>+.-<<<<<<<<<<<<<>>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<<<<.
"""

str1 = brainfuck(a)
out = ""
for i in str1:
    out += chr(i)
print(out)

答案

flag{esolangs_for_fun_and_profit}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值