![TravisCI] ![Say Thanks!]()
------------------
![Pasticciotto]
The key feature is its opcode "shuffling": their actual are determined by a password. (More in IMPLEMENTATION.md)
I wanted to experiment with since it was a topic that caught my attention while re challenges for CTFs. So, I decided to write one from scratch in order to understand better how instruction set architectures are implemented!
The design and the implementation behind Pasticciotto are not state-of-the-art but hey, it works! :D
The first one is "little mess" which perfectly describes how I put up this project. The second one is a typical dessert from Southern Italy, Salento! It's filled with cream! Yum!
You can use pasticciotto in your own binary! It's easy to do!
C code into pasticciotto:It can be translated into this pasticciotto's assembly snippet:
Let's assemble it with key HelloWorld:
Now we are ready to embed the VM in a .c program:
That's it!
The VM data / code / stack sections are represented through the object. It is defined here. The registers are in a uint16_t array in the VM object defined here.
polictf/ directory. I have also written a small writeup. Check it out!1. CMake
mkdir build
cd build
cmake ..
# or, if you want debug info:
# cmake -DPASTICCIOTTO_DEBUG=On ..
make
| Target name | Description |
| ----------------------- | -------------------------------------- |
| pasticciotto-emulator | Builds pasticciotto's emulator |
| polictf | Builds PoliCTF's client and server |
| polictf-client | Builds PoliCTF's client |
| polictf-server | Builds PoliCTF's server |
| pasticciotto-tests | Builds pasticciotto's test executable. |
If the PASTICCIOTTO_DEBUG flag is passed to cmake during the configuration phase, the targets will be compiled with debug symbols and additional debug information.
I wanted to polish the VM even more but I haven't got the time to do it. There are rough edges for sure!
Any contribution is very welcome! Feel free to open issues and pull requests!
[Pasticciotto]: ./res/pasticciotto.png
[TravisCI]:
开发语言:C++
Star 数:76
该项目属于CTF思路方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕Polymorphic VM and PoliCTF '17 reversing challenge.展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | pasticciotto - Polymorphic VM and PoliCTF '17 reversing challenge |
| 所属分类 | CTF思路 |
| 发布作者 | admin |
| 发布时间 | 2026-10-06 00:00:05 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 122 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |