如何从0用GitHub搭建自己的博客
前言很多人都想拥有一个属于自己的博客,但又觉得搭建博客很复杂、需要花钱买服务器。其实,利用 GitHub Pages + Hexo,你可以完全免费地搭建一个功能强大、外观精美的个人博客,而且不需要任何服务器运维知识。 本文将带你从零开始,一步步搭建一个属于自己的博客。我会尽量写得详细,即使你是完全的新手,也能跟着操作完成。 一、准备工作1.1 注册 GitHub 账号GitHub 是全球最大的代码托管平台,我们的博客就托管在 GitHub 上。 访问 https://github.com 点击右上角 “Sign up” 输入邮箱、密码、用户名,完成注册 验证邮箱 注意:用户名很...
vscseny:本地静态代码扫描,你的代码有没有危险调用
写代码的时候,有些函数调用本身就是危险信号——strcpy、system、eval、硬编码的密钥、弱加密算法。CodeQL 和 SonarQube 功能强,但部署重、要联网、对个人项目来说太重了。 vscseny 是一个本地静态代码扫描器,Go 写的,下载二进制直接跑,不需要运行时。指向你的项目目录,它报告危险调用、弱加密、硬编码密钥和常见错误,按严重程度排序。 特点完全离线运行,代码不会上传到任何地方。做安全工具这一点很重要——扫描自己项目的代码不应该经过第三方服务器。 Go 编译成单二进制,Windows 和 Linux 都有,下载解压就能用,不需要装 Python、Node 或...
vllixn:一条命令给 Linux 主机做安全体检
管服务器的时候,经常需要快速判断一台机器安不安全。网上的基线检查工具不少,但要么依赖一堆第三方库,要么输出英文报告看不懂,要么会偷偷改你系统配置。 vllixn 是我写的只读 Linux 主机安全体检工具。一条命令跑完,输出中文报告、分类雷达图和 0-100 评分。 检查范围九大分类,覆盖 Linux 主机安全的主要面: 账户:UID 0 别名、空口令、系统账户可登录 shell、重复 UID、sudo NOPASSWD、authorized_keys 权限、口令有效期、默认 umask、PAM 口令复杂度、登录失败锁定。 SSH:root 登录、口令认证、空口令、端口转发、X11 ...
cinema:把二进制执行过程变成可回放的电影
调试二进制的时候,经常会想”刚才那一步寄存器是什么样的”。strace 能告诉你发生了什么系统调用,但没法回答某一帧的完整状态——寄存器、内存、调用栈,以及它和前后帧的关系。gdb 能单步,但往前退一步几乎不可能。 cinema(放映机)就是解决这个问题的:把二进制的执行过程录下来,任意一帧都可以瞬间回去看。 核心思路基于 Unicorn Engine 做指令级事件采集。程序跑的时候,每条指令执行前后的状态都被记录下来。但如果每条指令都存完整快照,百万级事件的轨迹文件会大到没法用。 所以用了快照 + dirty page 追踪:间隔几何增长地做快照(快照数是对数级于事件数),中间帧通...
crypto-gu:纯标准库密码学工具箱,原语和攻击放在同一个内核
做 CTF 密码学题的时候,经常需要自己实现一些原语或者攻击。pycryptodome 能加密解密,但攻击(padding oracle、共模攻击、Wiener 这些)得自己写。每次比赛翻以前的 exp 复制粘贴,时间长了就想把这些东西整理成一个库。 crypto-gu 就是这么来的。纯 Python 标准库,零第三方依赖,把生产形态的密码学原语和确定性攻击实现放在同一个内核里。 原语层哈希:SHA-1、SHA-256、SHA-512、MD5、BLAKE2b、BLAKE2s、HMAC。还有长度扩展攻击的实现。 KDF:PBKDF2、HKDF(extract/expand)、...
elfpeek:把 ELF/PE 二进制拆成一张结构图
做逆向的时候,拿到一个二进制第一件事就是搞清楚它的骨架——哪些节区、入口在哪、依赖什么库、开了哪些加固。readelf 和 objdump 能用,但输出是纯文本,节区在文件里占多大比例、内存里怎么映射,全靠脑补。 所以写了 elfpeek,把 ELF 和 PE 解析成一张可视化结构图。 能看什么文件总览:格式、位宽、端序、类型、机器架构、入口地址。PE 还会显示映像基址和子系统。 加固特性:ELF 这边查 PIE、NX、RELRO(完整还是部分)、Canary、FORTIFY、有没有 RWX 段。PE 这边查 ASLR、DEP、CFG、高熵 VA、SEHOP。这些是拿到二进制第一眼看...
青岑密码学题集 WP
写在前面这套题从 01 做到 55(中间跳了 41、42),工具链、古典密码、数论、分组密码、伪随机数、RSA、椭圆曲线、侧信道都过了一遍。写的时候就是边做边记,卡哪写哪。 几个反复用到的东西先写这儿,后面就不重复了。 模运算不用解释。模逆元就是模世界里的除法,pow(a, -1, m) 一行搞定,前提是 gcd(a,m)=1。字节和十六进制来回转是日常:bytes.fromhex()、int.to_bytes()、pycryptodome 的 long_to_bytes / bytes_to_long。异或记住 a ^ b ^ b == a,流密码的命根子。 cha...
后缀数组(SA)详解—从倍增法到 LCP 应用
后缀数组(Suffix Array, SA)是字符串处理的另一大杀器。和 SAM 相比,SA 写起来简单一些,功能也覆盖了大部分字符串问题:不同子串个数、最长公共子串、出现次数统计、模式匹配。 这篇文章讲倍增法构造 SA,以及 LCP 数组的应用。 1. 什么是后缀数组对字符串 S,后缀数组 SA[i] 表示”排名第 i 的后缀的起始位置”。 比如 S = “ababa”: 后缀 0: ababa 后缀 1: baba 后缀 2: aba 后缀 3: ba 后缀 4: a 按字典序排序: a (后缀4) aba (后缀2) ababa (后缀0) ba (后缀3) b...
中国剩余定理(CRT)详解—从孙子定理到 RSA 应用
“有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”——《孙子算经》 这就是中国剩余定理(CRT)的起源。在 CTF 密码学中,CRT 无处不在:RSA 加速解密、共模攻击、广播攻击、Elliptic Curve 点合并……不会 CRT,密码学题基本做不动。 1. 定理内容给定一组同余方程: 1234x ≡ a₁ (mod m₁)x ≡ a₂ (mod m₂)...x ≡ aₖ (mod mₖ) 如果 m₁, m₂, …, mₖ 两两互质,则存在唯一解 mod M = m₁ × m₂ × … × mₖ。 2. 标准 CRT 实现1234567891011...
线段树详解—从单点修改到区间操作
线段树是竞赛算法中最常用的数据结构之一。它把数组按区间分治组织,让单点修改、区间查询、区间修改都能在 O(log n) 时间完成。CTF 中的 Misc、逆向、甚至部分 Pwn 题都可能用到。 这篇文章从基础线段树讲起,到懒标记(Lazy Propagation)的区间修改,最后讲几个经典建模。 1. 为什么需要线段树先想一个问题:给一个数组 a[1..n],需要支持两种操作: 修改某个元素 a[i] = v 查询区间 [l, r] 的和 朴素做法:修改 O(1),查询 O(n)。n=10^6 时查询太慢。 前缀和:修改 O(n),查询 O(1)。修改太多又太...









