Cyrus Blog

FLAG{S0_H4PPY_C_U_H3R3} (>.<)

在中国大陆加速下载 GarageBand 音色包

众所周知中国已经广泛的接入国际互联网(确信),但是在大陆地区下载 GarageBand 库乐队的音色包可能需要数个小时之久。这里介绍一种可以加快下载速度的方法。 这个方法可能需要一些编程小技巧,比如 Python,以及可能需要 Xcode 的安装。 本文代码位于 Gist,你可以在 Gist 评论区看到同样的步骤。 一共四个步骤: 找到 garageband 目录并打开 plist 文件(可能需要 Xcode) 启动 garageband 之后打开「活动监视器 / Activity M  阅读全文

ebpf & bcc 中文教程及手册

本文主要结合 IO Visor Project 的英文文档进行翻译,从零开始入门 ebpf,并使用 bcc 编写自定义的探针 (Probe,某些地方叫做 Agent)。 本文中会有一些推荐阅读的参考资料和一些英文原文文档。如果忽略任何这些链接,都不会对理解本文造成问题,但是他们可能对一些技术历史和技术架构的了解有所帮助(或许只是谈资) 0x00 ebpf 是什么 历史渊源 要说清楚这个还是要说点历史的。推荐阅读:eBPF 简史 BPF 的全称是 Berkeley Packet Filter  阅读全文

Clair scanner 源码分析和二次开发

本文是对 Clair 开源客户端 Clair scanner 源码分析,而非对 Clair 本身(Server 端)进行分析。关于 Clair 本身我推荐看看这个。 利用 docker-compose 可以快速构建 Clair 服务端,而 Clair scanner 则是一个简单易用的客户端,我们可以基于此开发一系列自己需要的功能。这里本文 Clair scanner 源码结构进行简单分析,介绍一些编译过程中可能会遇到的小问题,但是出于工作内容原因不会给出二次开发的案例。 源码编译 二次开发自  阅读全文

Linux 环境自编译安装高版本 Golang

由于 Ubuntu APT 安装的 Golang 可能版本过低,(以及其他发行版的包管理工具也会如此)以下脚本用于在 Linux 系统安装高版本 Golang。 安装前建议移除任何版本 Golang,清除相关的 GOPATH GOROOT 等环境变量。 Golang 从 >= 1.4 开始支持自编译,即使用 Golang 来编译 Golang。可以在 这里 寻找任何你想要的版本,替换掉脚本中的 1.11.6。 本脚本不会对环境造成严重影响,但是会移除存在的 Golang 版本。可以在运行目  阅读全文

在字节跳动谈 996.icu

从离职经历说起 离开上一家公司并不是意味着上一家公司对我有不优,10-7-5 配上有竞争力并且有上涨空间的实习薪资,还有五环外的低廉房租都令人怀念。从前同事口中,以及离职后的一些消息中,或许公司正在经历着中小型往大型的转型阵痛期,在规则和管理上有一些小问题。——不枉费我在拿了新 Offer 后做的七十多个小时的财报研究和行情分析,作为略自私的我,我当然觉得不必随公司经历这些问题挺好的;同时我也希望自己写的辣鸡代码会被人接下去(x,good luck with that! 虽然似乎因为大二半年离  阅读全文

分布式入门0&1:系列目录 & CAP 原理和 Paxos 算法

2018 年 1 月,比特币从最高点开始下跌,本文初创于这段时间。由于种种原因,咕了一年,到了 2018 年底依旧没有写完。新年即将来临之际,我对文章内容进行了重新编排。将会按照以下顺序依次展开: CAP 原理和 Paxos 算法, 从 BFT 到 PBFT, 从 Raft 和 ZAB 再看 Paxos 分布式系统事务一致性(待定), 分布式负载均衡算法(待定). 这一顺序是我的学习(和未来填坑)的顺序,我是偶然接触到 Paxos 从而接触到分布式的。 大部分相关系列文章会将 Paxos/R  阅读全文

使用 acme.sh 为全站更新 HTTPS

0x00 acme 基本使用技巧 Step1:获取acme.sh脚本: 1curl https://get.acme.sh | sh 本文没有配置反代的情形,也不涉及泛解析。Hexo 的 blog 是直接在生成的静态目录下通过 Apache 调用的。 Step2:需要手动建立给apache存放凭据的目录,任意目录均可,需要和下文一致: 1mkdir /etc/apache2/ssl/ Step3:启用相关模块: 123ln -s mods-available/ssl.load mods-en  阅读全文

Channel, goroutine 和 os/exec

最近有一个需求,用 Golang 执行一条命令,并且需要为该命令设置一定时间的 timeout。由此展开,我们从执行一条基本的 shell 命令开始,逐渐研究黑魔法。 0x00 前言 本文我们假设没有任何前置知识,可放心食用。 正好昨天面试问到了 Go-routine 的相关原理问题,以及 CSP 相关概念问题。开篇先 diss 一波这位面试同学,感觉非常学院派,不是很懂问一个安全算法岗 Engineer 而不是 Researcher 这些问题的意义,一个初阶 user 是肯定不知道 CSP   阅读全文