Piet一种奇葩编程语言——利用在CTF中Piet的套路应该很多

1 篇文章 0 订阅


前言

要不是因为做到一个杂项题,我估计这辈子也不会了解到这个奇葩语言,简单的说一下这个语言便是用位图色块来编写程序,也是够另类的,能想出来的人确实🐂🍺!


一、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的程序?…

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂的1998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值