Daily-Note
Binaryfuck
hanhxx
2023. 3. 23. 21:54
Binaryfuck
:: brainfuck을 개조한 것으로 난독화가 더해진 프로그래밍 언어를 만드는 걸 목표로 한다.
여기서 말하는 난독화의 느낌을 가져가지 위해 아래 예시를 먼저 보자.
+++++[>+>+++>+++++++>++++++++++<<<<-]>>>----.+++
처음 딱 봤을 때 "엥 이게 뭐야"하는 생각이 들 것이다. 그걸 난독화라고 생각하면 된다.
무엇과 연관이 있는지, 이게 무엇을, 어떤 내용을
나타내는지 알아보기 난처하고 당황스럽게 하는 거라 할 수 있다.
원래 brainfuck에는 8개의 연산자가 있는 데 Binaryfuck에서는 그 8개의 연산자 대신
각각의 연산자에 지정된 고유의 bit sequence를 사용한다.
+ | 000 |
- | 001 |
[ | 110 |
] | 111 |
< | 011 |
> | 010 |
. | 100 |
, | 101 |
Binaryfuck의 예시를 보면 알겠지만 Binaryfuck의 내용을 binary로 바꿔서 나타내면
대게 긴 bit sequence가 만들어지기 때문에 16진수(Hexadecimal), base32 or base64로 나타낸다고 한다.
binaryfuck)
++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>----.+++++++.+++++.
bit sequence)
00000000000000000000000000000011001000001000000000001000000000000000000000001
00000000000000000000000000000000110110110110011110100100100010010010011000000
00000000000000000100000000000000000100