Brainfuck&Ook!加密


[TOC]

Brainfuck/Ook!编码加密


Ook!加密

语法规则

OOK!只有三个不同的语法元素:
Ook。
OOK?
OOK!

它们组合成两个组,各种组合组合指定命令。因此,节目必须包含偶数个“Ook”。换行符被忽略

命令

OOK。OOK?
将内存指针移动到下一个阵列单元格。

OOK?OOK。
将内存指针移动到上一个阵列单元格。

OOK。OOK。
增加内存指针指向的数组单元格。

OOK!OOK!
减少内存指针指向的数组单元格。

OOK。OOK!
从STDIN读取一个字符并将其ASCII值放入Memory指针指向的单元格中。

OOK!OOK。
打印ASCII值等于内存指针指向的单元格中的值的字符。

OOK!OOK?
移动到匹配的Ook之后的命令?OOK!如果存储器指针指向的单元格中的值为零。注意Ook!OOK?和欧克?OOK!命令嵌套像括号一样,匹配对的定义方式与括号相同。

OOK?OOK!
移动到匹配的Ook之后的命令!OOK?如果存储器指针指向的单元格中的值不为零。


密文形式一(常见):

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. 

密文形式二(不常见):

..... ..... ..... ..... !?!!. ?.... ..... ..... ..... .?.?! .?... .....
..... ..... ..... ..... ..... ..... !.?.. ..... ..!?! !.?!! !!!!! !?.?!
.?!!! !!... ..... ..... ..!.! !!!!! !!!!! !!!!! !!!.? ..... ..!?! !.?..
....? .?!.? ..... .!.!! !!!.! !!!!! !!!!! !!!!! !.?.. ..... ..... .....
!?!!. ?!!!! !!!!! !!!!! !!?.? !.?!! !!!!! !!!!. ?.... ..... ..... .....
!?!!. ?.... ..... ..... ....? .?!.? ..... .!.!! !!!!! !!!!. ?.... .....
..... ...!? !!.?! !!!!! !!!!! !!!!! ?.?!. ?!!!! !!!!! !!!!! !!!!! !!!!!
!!!!! !!.?. ..... ..... !?!!. ?.... ..... .?.?! .?... ..... ..... .....
..!.? ..... ....! ?!!.? ..... ...?. ?!.?. .!.?. ..... .!?!! .?!!! !!!?.
?!.?! !!!!! !!!!! .?.

Brainfuck加密

语法规则

Brainfuck编程语言由八个命令组成,每个命令都表示为一个字符。

递增指针:>

减少指针:<

递增指针处的字节:+

减少指针处的字节:-

输出指针处的字节:。

输入一个字节并将其存储在指针的字节中:,

如果指针处的字节为零,则跳过匹配]:[

向后跳转到匹配[除非指针处的字节为零:]


Brainfuck命令的语义也可以用C语言简洁地表达,如下所示(假设p先前已被定义为char *):

  • ++ p : >
  • –p : <

  • ++ * p : +

  • – * p : -

  • putchar(* p): 。

  • *p = getchar(): ,

  • while(* p){ : [

  • } : ]

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

这两种加密方式的解密网站是同一个:
https://www.splitbrain.org/services/ook


文章作者: Doublenine
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Doublenine !
 上一篇
文件包含之LFI学习 文件包含之LFI学习
[TOC] LFI含义文件包含漏洞主要是由四种函数造成的: include() require() include_once() require_once() 用这四类函数包含文件时,文件会被当做PHP代码来执行 include
下一篇 
越权漏洞学习 越权漏洞学习
[TOC] 越权漏洞概念 越权,顾名思义就是超出权限范围进行操作。 多数WEB应用都具备权限划分和控制,但是如果权限控制功能设计存在缺陷,那么攻击者就可以通过这些缺陷来访问未经授权的功能或数据,这就是我们通常说的越权漏洞。 越权漏洞
  目录