Reverse手搓脚本篇
前言
最近发现对AI的编写脚本能力越来越依赖,以至于不用ai的时候感觉什么都不会,对程序语言的掌握也只是停留在看的懂的层面。故写此文章来督促和要求自己在遇到Re题以及其他需要编写脚本的题目时候,尽量使用手搓。当然,完全手搓肯定是比较浪费时间的。毕竟在比赛的时候没有那么多时间留出来去慢慢写。所以我们的目标就是,对于一些基础的脚本和标准算法的脚本可以快速实现改造。遇到不同的题可以改为对应可以用的脚本。尽量不依赖ai去生成现有的。这样的一个好处是在线下断网的时候也可以在编写脚本的时候游刃有余
本篇会基于遇到的题目,持续更新。。。。
准备工具以及语法了解
这个模块介绍CTF中常用函数库和脚本编写时用到的语法和函数都有哪些
PyCryptodome库
通过 pip install pycryptodome 安装,这个库在CTF经常会使用到,无论是在密码学领域还是在逆向领域,使用都十分频繁
from Crypto.Cipher import AES
从库中导入 AES 算法模块
1. 基本功能
它的核心作用是:将每两个十六进制数字解析为一个字节(Byte,取值范围 $0$ 到 $255$)。
语法:
1 | bytes.fromhex("十六进制字符串") |
常见标准算法以及爆破脚本
1 | // 获取seed后生成固定随机数 示例,算法部分可改 |
代码一:[VNCTF 2025]Fuko’s starfish
3. AES 常用参数对比表
| 参数名 | 常用取值 | 说明 |
|---|---|---|
| Key | 16, 24, 或 32 字节 | 分别对应 AES-128, AES-192, AES-256 |
| Mode | MODE_ECB |
电子密码本模式(无需 IV) |
| Mode | MODE_CBC |
密码分组链接模式(需要 IV,安全性更高) |
| IV | 16 字节 | 初始化向量(仅在 CBC, CFB 等模式使用) |
1 | from Crypto.Cipher import AES |
左移&右移
1 | def rol8(b, n=3): |
程序示例:
1 | # -*- coding: utf-8 -*- |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Xilker's Blog!



