惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
Spread Privacy
Spread Privacy
T
Threatpost
C
Cisco Blogs
P
Palo Alto Networks Blog
AI
AI
Cyberwarzone
Cyberwarzone
NISL@THU
NISL@THU
P
Privacy & Cybersecurity Law Blog
G
GRAHAM CLULEY
Simon Willison's Weblog
Simon Willison's Weblog
T
Tor Project blog
Latest news
Latest news
AWS News Blog
AWS News Blog
D
Docker
S
SegmentFault 最新的问题
博客园 - 聂微东
WordPress大学
WordPress大学
Vercel News
Vercel News
S
Securelist
爱范儿
爱范儿
J
Java Code Geeks
Know Your Adversary
Know Your Adversary
S
Schneier on Security
Hugging Face - Blog
Hugging Face - Blog
F
Fortinet All Blogs
Last Week in AI
Last Week in AI
D
DataBreaches.Net
宝玉的分享
宝玉的分享
D
Darknet – Hacking Tools, Hacker News & Cyber Security
MongoDB | Blog
MongoDB | Blog
Engineering at Meta
Engineering at Meta
K
Kaspersky official blog
美团技术团队
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
量子位
博客园_首页
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
Google Online Security Blog
Google Online Security Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
腾讯CDC
T
Threat Research - Cisco Blogs
雷峰网
雷峰网
有赞技术团队
有赞技术团队
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed
S
Security Affairs

Yesterday17's Blog

2026 新年解密红包 / Melody Flag | Yesterday17's Blog 谈谈 Iori 的设计思路(二):如何实现一个 Showroom 录制工具? | Yesterday17's Blog 谈谈 Iori 的设计思路(一):从 Nico Timeshift 说起 | Yesterday17's Blog Iori Minyami 0.1.0 发布 | Yesterday17's Blog 2025 新年解密红包 / Melody Flag | Yesterday17's Blog 使用 Cloudflare Warp 解决罗森票务的海外登录问题 | Yesterday17's Blog How To Blog 04: The Astro v5 Era | Yesterday17's Blog 谈谈 tokio::select! 的公平性 | Yesterday17's Blog Learning Pingora 05 - Connect with TLS | Yesterday17's Blog Leaving Bytedance | Yesterday17's Blog 大橋彩香 AsiaTour「Reflection」上海公演 个人向记录 & Repo | Yesterday17's Blog Recoving from burnout - What happened? | Yesterday17 Yubikey 重建手册 | Yesterday17's Blog How To Blog 03: Heimus | Yesterday17's Blog 🪧 Blog Migration Accouncement | Yesterday17's Blog Learn Your IDE - VSCode 是如何仅重启插件的? | Yesterday17's Blog How To Blog 02: Astro❤️Password | Yesterday17's Blog How To Blog 01: Why, How, and the Future | Yesterday17's Blog Learning Pingora 04 - Establish L4 Connection | Yesterday17's Blog Learning Pingora 03 - Upstreams and Peers | Yesterday17's Blog Learning Pingora 02 - A Simple HTTP Server | Yesterday17's Blog Learning Pingora 01 - Getting Started | Yesterday17's Blog 2024 新年解密红包 / Melody Flag | Yesterday17's Blog 向新的一年飞驰——记录 2023 | Yesterday17's Blog 「サクラノ刻」对话选摘(2) | Yesterday17's Blog PGP Key Revocation 注销声明 | Yesterday17's Blog 「サクラノ刻」对话选摘(1) | Yesterday17's Blog 2023 新年解密红包 / Melody Flag | Yesterday17's Blog 『蒼の彼方のフォーリズム』通关感想 | Yesterday17's Blog 单显卡直通教程 | Yesterday17's Blog 对博客与笔记的思考 | Yesterday17's Blog Project Anni 之旅(3)自动化 Flutter 应用 CI/CD 上架流程 | Yesterday17's Blog AsobiStage 直接播放链接 | Yesterday17 如何在后分P时代进行投稿——sswa使用详解 | Yesterday17's Blog JSON RPC 与 LSP 协议基础 | Yesterday17's Blog Grajapa Shueisha / BookEnd 加密方式调查 | Yesterday17's Blog 【2022篇+WriteUp】如何再收一个新年红包? | Yesterday17's Blog 如何将良心云的良心功能清理干净 | Yesterday17's Blog 【油猴脚本】bilibili 投稿页面返回旧版+旧版页面强制允许分P上传 | Yesterday17's Blog Cloudr1v1 授权方式分析 | Yesterday17 Typora 1.0.2 逆向实录 | Yesterday17's Blog Project Anni 之旅(2)ValueAfterTable——toml-rs的实现与限制 | Yesterday17's Blog IPv4透明代理+IPv6 Passthrough——树莓派单臂软路由折腾记 | Yesterday17's Blog 镣铐与舞蹈——个性与共性之迷思 | Yesterday17's Blog Go 学习笔记 02 - 找准 io 之道 | Yesterday17's Blog NAT Slipstreaming v1 原理浅析 | Yesterday17's Blog 绕过「9-nine-」的 CDKEY 验证——KrkrPlugin 正(?)向实录 | Yesterday17's Blog 静流的青春纪念册——「サクラノ刻 -櫻の森の下を歩む-」体验版感言 | Yesterday17's Blog Project Anni 之旅 01 - 从 clap-builder 到 derive | Yesterday17's Blog [Google CTF 2021] CPP WriteUp | Yesterday17's Blog 获取 アソビステージ 的实际播放链接 | Yesterday17's Blog 90 行 Rust 代码实现 AsyncTeeReader | Yesterday17's Blog 或许还算有价值一读的文章列表 | Yesterday17's Blog 从零开始的 Seedbox 之旅 | Yesterday17's Blog [随笔]技术型博客行文迷思(1) | Yesterday17's Blog 浅谈 git fetch 的工作方式 | Yesterday17's Blog 『ソーサレス*アライヴ! ~the World's End Fallen Star~』通关感想" | Yesterday17's Blog Rust std::fmt 格式语法简述 | Yesterday17's Blog 日亚修改居住国的解决方案 | Yesterday17's Blog [Windows/Linux] GC553 的 Switch 完美采集之路 | Yesterday17's Blog 【翻译】Subtyping and Variance / 子类型与变型 | Yesterday17's Blog Berd's Red Envelope 2021 WriteUp | Yesterday17's Blog 【中英对照】ALSA 音频 API 使用教程/A Tutorial on Using the ALSA Audio API | Yesterday17's Blog 从 cue_scanner.l 看 CUE Sheet 的词法单元 | Yesterday17's Blog Postman 历史记录导出的解决方案 | Yesterday17's Blog 《恋爱绮谭 不存在的夏天》通关感想 | Yesterday17's Blog [微机实验/TD-PITE] 微机接口综合实验 | Yesterday17's Blog [微机实验/TD-PITE] 键盘扫描及数码管显示实验 | Yesterday17's Blog [微机实验/TD-PITE] 数码管显示实验 | Yesterday17's Blog Airsonic Advanced+Google Drive+Caddy 部署纪实 | Yesterday17's Blog X-NUCA 2020 - hellowasm 题解 | Yesterday17's Blog [微机实验/TD-PITE] 8251 串行接口实验 | Yesterday17's Blog Node.js child_process.fork 与 env 污染 RCE | Yesterday17's Blog EP.01 「夜の向日葵」 | Yesterday17's Blog [微机实验/TD-PITE] 8254 定时/计数器实验+选做实验 | Yesterday17's Blog [JLU CTF/2020] babywasm WriteUp | Yesterday17's Blog PHP 反序列化与经典利用 | Yesterday17's Blog WebAssembly 逆向简述 | Yesterday17's Blog 『彼女、お借りします』一期完结点评 | Yesterday17's Blog [微机实验/TD-PITE] D/A 转换实验+选做实验 | Yesterday17's Blog [微机实验/TD-PITE] A/D 转换实验+选做实验 | Yesterday17's Blog 开源项目申请 JetBrains Open Source License 简单流程 | Yesterday17's Blog 微软拼音与 JetBrains 搜索快捷键冲突的解决方案 | Yesterday17's Blog [微机实验/TD-PITE] 8259 中断优先级实验+选做实验 | Yesterday17's Blog IFTTT 测试(续) | Yesterday17 IFTTT 测试 | Yesterday17's Blog [微机实验/TD-PITE] 存储器扩展实验+选做实验 | Yesterday17's Blog 新版 GCC 针对 -fdump-translation-unit 的替代方案 | Yesterday17's Blog 一次 HSTS 策略配置的排错之旅 | Yesterday17's Blog YukiNative 踩坑记——Windows 的消息队列 | Yesterday17's Blog 我是我自己——论获取 HTTPS 证书时的验证步骤 | Yesterday17's Blog 【设计文档】对 PUG 的大规模设计修订(1.1) | Yesterday17's Blog GS65 折腾记(2)加装固态,分区,Grub2 引导 Manjaro LiveCD | Yesterday17's Blog 「さくら、もゆ。」的空白字体列表——一次逆向问题定位过程实录 | Yesterday17's Blog GSuite 探索篇(1)使用 Service Account 向 Google Drive 传输文件 | Yesterday17's Blog 『サクラノ詩 -櫻の森の上を舞う-』通关感想 | Yesterday17's Blog 《ATRI -My Dear Moments-》通关感想 | Yesterday17's Blog [工具][VSCode 扩展] AegiKit——方便 Aegisub 使用的工具箱 | Yesterday17's Blog 贝塞尔曲线、字体矢量化与曲线运算 | Yesterday17's Blog NAT 类型初探 | Yesterday17's Blog
Chaos; Child 汉化补丁 神秘编码探索 | Yesterday17's Blog
Yesterday17 · 2021-09-30 · via Yesterday17's Blog

今天闲来无事,群里245哥提到 CCLCC 的汉化出了,遂去贴吧寻找资源。资源没找到,但却发现了 CC 汉化补丁中留下的解密游戏Misc题。于是浪费了一个下午的时间来摸这个(错乱)

补丁的下载链接是 https://pan.baidu.com/s/1c389nt2,待解密的内容是补丁中的 txtchscode.zip

ToC

  • Zip
  • 待解密文本
  • 加密程序
  • Hint
  • Where
  • Link
  • Hint 2
  • Name
    • Part 3
    • Part 1
    • Part 2
  • Password
  • Hint3
  • Password(终)
  • 结语

Zip

txtchscode.zip 中有 code.jpgdata.jpg 两个文件,对二者分别进行 binwalk 又可以得到两个隐藏的 zip。这里命名为 code.zipdata.zip

code.zip 解压可以得到两个 Java 文件,对 data.zip 解压则可以得到如下文所示的文本:

待解密文本

22010202222012110122201

222502263029340278002984

31067065058056053032033020

data.zip 中给出的 data 是一个由三行数字构成的文本。

加密程序

code.java 中一共有两个文件,一个是主文件,另一个并没有太大意义,因此省略。

package chaoschild;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.text.ParseException;

import java.util.Scanner;

public class ChaosChild {

/**

*

* @param linkedList

* @param fileName

* @author 天光逸

*/

//read the file by line

public static void readFileByLines(ChaosChild linkedList, String fileName) {

String key = null;

String password = null;

String link=null;

File file = new File(fileName);

BufferedReader reader = null;

try {

reader = new BufferedReader(new FileReader(file));

String tempString = null;

int line = 0;

// Read one line for one time until it reads null for the end of the file

while ((tempString = reader.readLine()) != null) {// to find if it reads to the end of the file

line = line % 3;

switch (line) {

case 0:

key = tempString;

break;

case 1:

password = tempString;

break;

case 2:

link = tempString;

Node node = new Node(key, password, link);

linkedList.addNode(node);

break;

}

line++;

}

reader.close();

} catch (IOException e) {

}

}

private Node head = null;// Head Node

private Node tail = null;// Tail node(null node) as Temporary nodes which used for substitution

//find key

public static Node findlink(String link, ChaosChild myList) {

Node tmp = null;

for (tmp = myList.getHead(); tmp != null; tmp = tmp.next) {

if (link.equals(tmp.link))

return tmp;

}

return tmp;

}

/**

*

* initial a linked list(set head)

* @param node

*/

public void initList(Node node) {

head = node;

head.next = tail;

}

/**

*

* add node

* @param node

*/

//sort all cars by purchase date

public void addNode(Node node) {

Node temp = head;

if (head == null) {

initList(node);

} else {// Replace head node

node.next = head;

head = node;

}

}

/**

*

* Traverse the list and delete node

* @param node

* @param myList

*/

public void deleteNode(Node node, ChaosChild myList) {

if (myList == null) {

return;

}

Node tmp = null;

for (tmp = myList.head; tmp != null; tmp = tmp.next) {

if (tmp.next != null && node.getlink().equals(tmp.next.getlink())) {

if (tmp.next.next != null) {

tmp.next = tmp.next.next;

} else {

tmp.next = null;

}

}

}

}

public Node getHead() {

return head;

}

/**

*

*

* @param myList

*/

/**

*

* @param args

* @throws java.text.ParseException

* @throws java.io.IOException

*/

//Achieve the four main funtions and save the file to data.txt

public static void main(String[] args) throws ParseException, IOException {

String filename="C:\\Users\\lenovo\\Desktop\\data.txt";

ChaosChild linkedList = new ChaosChild();

readFileByLines(linkedList, filename);

System.out.println("Welcome to this game. My name is MK0034209038. Please remember you have known my name.");

while (true) {

System.out.print("Please enter one of those :(input 1 2 3 4)\n1、Input data\n2、Display the data\n3、Hint \n4、Exit\n");

Scanner scanner = new Scanner(System.in);

int i = scanner.nextInt();

if (i == 1) {

System.out.println("You are not administrator");

// Scanner scanner = new Scanner(System.in);

} else if (i == 2) {

printlist(linkedList);

} else if (i == 3) {

System.out.println("Where is made by Morse code and please check the picture again.");

System.out.println("For more hints please enter 3 again");

int b = scanner.nextInt();

if(b == 3){

System.out.println("Well, the next hint is my name is made by 3 kinds of code");

}else{

System.out.println("OK,think about what the hell are those numbers meaning");

}

} else if (i == 4) {

BufferedWriter out;

try {

out = new BufferedWriter(new FileWriter(filename));

Node tmp = null;

long sum = 0;

for (tmp = linkedList.getHead(); tmp != null; tmp = tmp.next) {

out.write(tmp.key);

out.newLine();

out.write(String.valueOf(tmp.password));

out.newLine();

out.write(String.valueOf(tmp.link));

out.newLine();

}

out.close();

} catch (IOException e) {

}

return;

}

}

}

public static void printlist(ChaosChild myList) {

Node tmp = null;

long sum = 0;

for (tmp = myList.getHead(); tmp != null; tmp = tmp.next) {

System.out.print("Where:"+tmp.key + " " +"password:" +tmp.password + " " + "link:"+tmp.link + "\n");

}

}

}

简单观察程序,data 中的三行对应分别是 keypasswordlink。其中 key 又被称作 where

Hint

Where is made by Morse code and please check the picture again.

Well, the next hint is my name is made by 3 kinds of code

OK,think about what the hell are those numbers meaning

提示告诉我们,Where 是由 Morse 电码表示的,并且 Name 是由三种编码构成。

Where

code 的图片告诉我们 2=00=。因此需要将 2 替换为 00 替换为空,再经过 Morse 解码得到结果为 ITEHYBT

Link 的文本是 31067065058056053032033020,看上去就很像 Hex 的文本每两个被看上去就很像空格的 0 隔开。依然遵循先前的 0= 规则:

解码得到结果 1geXVS23,看上去就很像百度网盘的样子,加上 https://pan.baidu.com/s/ 前缀,果然是:

Hint 2

https://tieba.baidu.com/p/4983552973
https://tieba.baidu.com/p/4983552973

根据贴吧的讨论,NameMK0034209038 是由作者的名字 天光逸 经过三种不同的编码方式转换而来。

Name

Name 编码后的文本为 MK0034209038,原文为 天光逸。这里需要沿用 0= 的规则,将 Name 分为三部分:MK03429038

之前我四个一组分成了 MK0034209038,结果发现并非如此(

Part 3

最好解的就是这第三部分。这部分的文本是 9038,对应的是 \u9038

Part 1

下一个攻克的是第一部分。根据仓颉键盘描述,M 代表K 代表,合起来就是天字。

根据这个原理解码 WhereITEHYBT 文本,发现 ITE 代表,但 HYBT 打不出来,倒是 HEBT 能打出字来。

Part 2

这部分的内容是 0342,是中文电码编码后的字。

http://chinesecommercialcode.net/search/index/cn
http://chinesecommercialcode.net/search/index/cn

Password

有了上文 Part2 的解码方法,对 Password 字段进行解码。

Password 的文本是 222502263029340278002984,初步经过 0= 划分后得到五组:

再应用 2=0,得到:

再查询中文电码,得到字符:

0005 = 三

0063 = 五

0934 = 四

0780 = 唉

0984 = 坩

等待,坩是什么?

Hint3

Password(终)

尝试不变换 29842,查询 2984,得到汉字。于是最终的 Password 文本就是:

0005 = 三

0063 = 五

0934 = 四

0780 = 唉

2984 = 死

将其读出后作为提取码输入,得到:

游戏结束ww

结语

宫代

「……!」

我呆在原地,言语尽失。

在这明媚的阳光下,在跑过去用不上数秒的地方。

——『她』就站在那里。

尾上

「…………」

毫无疑问,那正是我以为今生不会再次相见的她。

她用一副不知是该笑、是该哭、还是该生气……看似很迷茫的表情,一直在注视着我。

还有一个没见过的年纪相仿的女孩子站在她的身旁。

为什么……?

宫代

(为什么,会在这里……?)

我无法移开目光,也无法挪动半步。

我们明明近在咫尺,却又隔着无法逾越的距离,只能注视着对方。

宫代

「…………」

就算在听见警察提醒我『必须快点走了』的声音后,我也未能对此作答。

回过神来时,我已握紧了双拳。

少女

「世莉架……?」

尾上

「诶? 怎么了?」

听到了她那让我心生怜爱的声音。

轻风,承载着她的声音吹拂而来。

少女

「一下子这是怎么了? 那是谁?认识的人吗?」

尾上

「…………」

宫代

「…………」

在我和她之间回荡着的是什么样的情感,连我自己也不是很清楚。

只是——她那熟悉的双瞳中所浮现的泪水,清晰地烙印在了我的双目中。

尾上

「——不。是不认识的人」

接着,无声的泪水便洒落而下。

她——在笑着。

身旁的女孩子大概是她的挚友吧,为了不让那名女孩子察觉——她擦拭了眼泪,露出了笑容。

宫代

「…………」

她转过身,背对着我走去。

停止的时间又再次流动,我的脸上也浮现出了笑容。

宫代

「嗯……我也不认识你……」

阳光刺痛了双眼。

我抬头仰望着天空。

为了不让偷偷渗出的泪水落下。

这是开心的泪水。

我相信是这样。也必须这样相信。

——所有的一切,全部,这样就好。

宫代

「对不起,我们走吧」

我向警察这样说道,迈出了脚步。

已经看不见,『她』那远去的身影了。

今生不会再见……。

我们会在绝无交汇的路上走下去……。

——我们就这样,一起走完,彼此的人生

Chaos; Child TE,文本版权归科学社及相关译者所有。