AI 磨合进展

啊这,自己问 Gemini 各种搜索翻 Github 一个小时都没解决的问题,Copilot Agent + Gemini 3 Pro 只 5 分钟就改好了😅 疑似有点太高效了 疑似我有点太低效了

December 27, 2025 · 1 min · 🦉

Ethernaut 笔记

简介 最近从 Ethernaut 学习到了很多,抛开那些比较基础的,记录一些 ECDSA 相关的 以下公式中小写字母代表一个值,大写字母代表一个点,除了 N 是曲线的 order 我们知道 ECDSA 依赖于椭圆曲线上的离散对数问题,对于私钥 privkey,公钥 PubKey 是椭圆曲线上的一个点并且有 $\text{PubKey} = \text{privkey} \cdot G$,其中 G 是椭圆曲线的生成元,正是因为椭圆曲线上的离散对数问题,已知 PubKey 和 G 求 privkey 是困难的,才让数字签名得以可能 Sign 签名公式 $$ s = k^{-1} \cdot (h + r \cdot \text{privkey})\mod{N} $$k 是随机数,RFC6979 提供了生成方法,不建议真的随机生成,因为重用会导致私钥泄漏,后续会提到 h 是要被签名的 hash 值 r 是 k * G 这个点的 x 轴坐标 计算出 s 后,和 r 共同构成签名 (r, s),但在签名恢复的过程还会产生歧义,有两种结果,所以还要引入一个 v 来确认是哪一个结果,后续会提到 1import hashlib 2from eth_hash.auto import keccak 3from ecdsa import SECP256k1 4from ecdsa.rfc6979 import generate_k 5 6CURVE = SECP256k1 7N = CURVE.order 8G = CURVE.generator 9 10priv_key = 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 11 12h = keccak(b'hello') 13print(f'hash: 0x{h.hex()}') 14 15h_int = int.from_bytes(h, 'big') 16 17# random k, important 18k = generate_k( 19 order=N, 20 secexp=priv_key, 21 hash_func=hashlib.sha256, 22 data=h, 23) 24 25R = k * G 26r = R.x() % N 27k_inv = pow(k, -1, N) 28 29# s = k^-1 * (h + r * pk) 30s = (k_inv * (h_int + r * priv_key)) % N 31 32print(f'sig : 0x{r.to_bytes(32, 'big').hex()}{s.to_bytes(32, 'big').hex()}') 33print(f'r : 0x{r.to_bytes(32, 'big').hex()}') 34print(f's : 0x{s.to_bytes(32, 'big').hex()}') Recover 签名恢复公式,即从签名 (r, s) 中恢复出公钥 Pub ...

December 1, 2025 · 6 min · 🦉

proxychains4 在 macOS 上无法正常工作的问题小记

安装了 proxychains-ng 来强制特定程序走代理,发现在 macOS 上有时可以正常工作有时不行 经查询是 macOS SIP 的问题 因为 proxychains4 的工作原理是替换子程序的动态链接库来强制走代理,而 macOS SIP 为了安全考虑会阻止所有内置 executable 被替换动态链接库,以至 proxychains4 对所有内置 executable 无法正常工作,比如 /usr/bin/ 下的所有 解决方法,使用 Homebrew 安装的版本就好,通过 Homebrew 安装的程序就没有 SIP 保护 (实在只能用内置就只好关闭 SIP 了 如果 /usr/bin 和 /opt/homebrew/bin 下都有某个程序,可通过调整 PATH 里 /opt/homebrew/bin 的位置来调整优先级 特例,通过 Homebrew 安装的 curl 在 /opt/homebrew/opt/curl/bin 1export PATH=/opt/homebrew/bin:/usr/bin:$PATH

July 4, 2025 · 1 min · 🦉

科技爱好周刊 354 期阅读笔记

科技爱好周刊 354 期 天才,我居然都没想到过 相比于自己配代理直接拉,没法自动检查更新,还得加个 schedule 来自动拉取 latest 对于大陆服务器上最初部署需要拉一大堆镜像的场景,很适合 这些描述,越来越接近现实 能被 AI 轻松替代的技能已经完全不值得投入时间了 有很多可以思考的

June 28, 2025 · 1 min · 🦉

博客在手机端的应用模式适配

以下场景仅在 iOS 端完成测试 电脑上打开博客当然很友好啦 但是在手机端打开,保存书签到桌面,就有很神奇的体验了 其他书签比如 Grafana, UptimeKuma 之类的,打开都是全屏模式,体验非常丝滑 唯独自己博客的书签,点击后会跳转去 Safari 打开,令人疑惑 简单搜索了一下还是找到了原因以及解决方案 Safari docs 原来可以通过 meta tag 来调整,还好使用的 hugo 主题简单,可以使用 layouts/partials/extend_head.html 覆盖默认来自定义一些 html head ( 居然有一天会查阅 Safari 的文档

June 23, 2025 · 1 min · 🦉

科技爱好周刊 351 期阅读笔记

科技爱好周刊 351 期 惭愧,今天也让 AI 生产了平庸之作 甚至还能模仿我的风格

June 6, 2025 · 1 min · 🦉

科技爱好周刊 350 期阅读笔记

科技爱好周刊 350 期 还真有点道理的,我也该研究下怎么可以搞用户订阅,每次有文章更新就发邮件,这样对于想看我博客的人也方便 如果有愿意付费只看精品的,就可以只发包含某些 tag 的文章 Exactly,对 AI 的使用还是很保守,毕竟幻觉问题还是难以解决,而且我也不太想放弃自己的脑子 还记得大学时候在社团里,给学弟学妹们写寄语,我写到虽然不要重复去发明轮子,但照着轮子去做自己的 demo,发明一下三角形四边形也都很重要。可能是文字表达能力不太好,写得很抽象,但其实想要表达的便是这里的意思,如果花心思去做出和现在很多轮子一模一样的东西,确实太浪费时间也没有必要,但只是做做 demo,从过程中去感受轮子之所以这样设计,也是能学到很多东西的,也或许能从中迸发一些新的灵感

June 3, 2025 · 1 min · 🦉