目录
前言
要不是因为做到一个杂项题,我估计这辈子也不会了解到这个奇葩语言,简单的说一下这个语言便是用位图色块来编写程序,也是够另类的,能想出来的人确实🐂🍺!
一、Piet是什么?
- 官方介绍:
Introduction:
Piet is a programming language in which programs look like abstract paintings. The language is named after Piet Mondrian, who pioneered the field of geometric abstract art. I would have liked to call the language Mondrian, but someone beat me to it with a rather mundane-looking scripting language. Oh well, we can’t all be esoteric language writers I suppose.
-
客观理解:
Piet是由DavidMorgan-Mar设计,其方案是位图,看起来像抽象艺术设计。编译指导图像周围移动,从一个连续颜色的区域下的一个“指针”。通过一个地区的指针退出时的程序进行。Piet编程语言的程序看起来都像抽象画的位图,基本的构建块就是颜色块。它支持20种不同的颜色,有些实现支持的更多。编译器由图像周围的移动“指针”引导,在图像中从一个色块移动到下一个。Piet理解起来是非常深奥,可能都没有办法称它为一种语言。因为Piet是用颜色来编写代码。
举个官方的例子图片(这些图片的意思都是Hello World!):
二、使用工具编译Piet图片
1、我们先要了解Piet程序的制作过程是存在不同颜色的,但是只有18种颜色才具有真实的作用,其他颜色可以说是仅仅为了装饰图片的(理论上,下图为可利用的20种颜色)
编写:
可以硬核点用画板配置好所有颜色然后便可以开始你的创造
我这里就是用在线的工具画了个输出1998的
下面是我用画图工具画出来的输出1998,真废了九牛二虎之力(累~~~
画图网站(但不能导出,需要导出还得本地画):
https://gabriellesc.github.io/piet/
三、使用工具对其图片进行解释
1.使用老版本windows工具
这边直接分享链接以及举例使用方法
- ./npiet.exe -tpic hello.gif 运行 hello.gif 程序并创建一个名为npiet-trace.png的跟踪文件。
- 或者使用命令 ./npiet.exe -q hello.gif
- 下载链接:https://www.bertnase.de/npiet/npiet-1.3a-win32.zip
2.更多的链接
npiet用于piet程序的解释器
- https://www.bertnase.de/npiet/ ###下载网站可能需要使用加速器
piet程序例子1
- 加法器:Mike Tolly 提供了一个简单的加法程序,它将两个输入数字相加。
使用:
piet程序例子2
- 无聊的数酒瓶,Eddy Ferreira 编写了这个程序来帮助他倒数墙上的啤酒瓶数。
使用:
piet程序例子3
我称它为大牛说
- Antoine Lucas 做了一个“cowsay”程序,没有使用任何柔和的颜色。示例输入和输出
使用:
https://www.dangermouse.net/esoteric/piet/samples.html ###更多的实例piet程序
更多思路
或许你可以将后门通过Piet技术写入位图,通过绑定解释器然后实现免杀功能,
或许你可以写个隐藏flag的程序?…