解包《三色Δ绘恋》,与 Kirikiri 初探

图源:《三色Δ绘恋》内附 圣诞节特别篇 “圣夜钟音” 主题桌面壁纸

本文ID:23166641-ab98-11e9-ad68-d1f5f7d77a33

舍友买了一份《三色Δ绘恋》,并决心通关它。我也是托了他的福,第一次体验到国产的 Galgame。所以每当闲时,舍友在他的位子上“决定人物命运”,我就在一旁默默看着他玩。这款游戏给我的感受就是,其中的立绘和音乐水准相当不错。某天于是突发奇想,从舍友那里拷贝了份游戏的文件,打算把里面的立绘和音频提取出来。

于是开始操作。

确定引擎,准备工具

整体的文件结构相当清晰,显然 TricolourLovestory_chs.exe 是中文版本的主程序,TricolourLovestory_chs.cf 是中文版本的启动配置文件,steam_api.dll 是连接 Steam 进行软件正版验证、存档上传等功能的插件,其他的 xp3 文件就是我们要找的资源包了。所以针对此文件格式,寻找对应的工具,进行解包。 经过 Google 和 Github 的多方搜索,找到了两个最为常用的工具,ExtractDataKrkrExtract。前者可以对资源包内的文件进行提取,后者可以对资源包内的文件进行提取、修改和删除。这里我们使用普适性更强的 ExtractData 进行提取操作。

博客主机折腾记

不知不觉间又是一段时间的停更,主机换了又换,服务改了又改,这次终归是尘埃落定了。折腾博客的时候也踩了一些坑,放在这里总结下。

主机位置

一直在考虑自己应该将网站的主机放在哪里。开始的时候想放到国外,毕竟价格便宜,而且npm和docker之类也不用考虑国内镜像和国内加速的问题。但是最大的缺点:无法对域名进行备案。ICP备案的要求是托管网站的主机在中国大陆境内,使用中国大陆IP地址。换句话说,就是非中国大陆的主机搭建的网站无法进行备案。

备案不只是通过审核得到一串号码这么简单。国内的搜索引擎应要求只能收录已备案的域名(链接),而且国内的部分和域名有关的服务(CDN加速、对象存储等)也需要绑定已备案的域名。

于是反复思考,我申请了美国主机的退款,选了阿里云的杭州区。

自动构建部署

另一个主要的问题是博客的自动构建和部署。开始的时候图免费和方便,把hexo渲染出来的所有文件放在了公开的Github Repo上做成了Github Pages,将博客的配置文件放在了另一个私有的Repo中。虽然这样可以利用各种支持Github的CI/CD平台进行构建和部署自动化(比如Circle CI),但是最后由于Github Pages国内访问速度的原因,以及域名备案的缘故放弃。

PHP 及 PHP 插件编译

图源:《明日方舟》 战场背景2

本文ID:23166645-ab98-11e9-ad68-d1f5f7d77a33


今后文章会同步更新在我的 CSDN 博客,但是还是以这个自己拿阿里云服务器搭建的网站为主的。不过CSDN有个好处是可以被国内的搜索引擎抓取到,嗯,省得我做搜索引擎优化了啊。

如果有人只想看完整写完的文章的话,也请左拐 CSDN,或者这里。主站开了七牛云加速,顺便做了 Google 、 Bing 和百度等的搜索引擎收录。最近身体欠佳。原定的学习计划和博客更新计划也不出意外的咕了。没有办法。健康是第一要务。等待过后慢慢去补吧。

编译 PHP

安装必要环境

包含编译器,和编译需要的库。所有的编译操作均在 Ubuntu 19.04 下进行。

1
2
sudo apt-get update
sudo apt install -y gcc g++ cmake make libxml2-dev libbz2-dev libcurl4-gnutls-dev libzip-dev libwebp-dev libpng-dev libjpeg-dev libxpm-dev libfreetype6-dev

下载源码

你可以 clone GitHub 上的代码:

1
git clone https://github.com/php/php-src.git

当然也可以到 php.net 下载源码并解压:

1
2
3
4
wget https://www.php.net/distributions/php-7.3.7.tar.gz
tar -xvzf php-7.3.7.tar.gz
rm php-7.3.7.tar.gz
cd php-7.3.7/

开始编译

首先读取插件列表(插件列表没有修改的时候可跳过此步骤):

1
./buildconf --force

Hexo 新姿势!

图源:《三色Δ绘恋》第8幕 烟花大会

本文ID:daffc4b0-ab96-11e9-9458-8ba16a2b5025


Hexo的插件真是个好东西!一开始部署博客的时候并没有太在意插件的问题,毕竟觉得博客主题自带的插件其实挺全面的,足够使用了。但是用久了总是会腻,就想着简单的博客能不能有一些新操作新方法加入。即使是添加写功能也好。于是就翻了翻插件目录,挑了些比较有用的插件,拿出来做个总结,同时也是为了方便以后使用做的一个简单记录。

文字上标

插件是hexo-ruby-character,需要在Linux环境下编译npm包。

示例:Chocolate (Vanilla) ,也可方便的给汉字注音,例如: 鬼魅魍魉 (guǐ mèi wǎng liǎng) ,又或者是恶搞,类似: 精彩节目 (qián fāng gāo néng) ,同时也适用于其他语言,譬如: (うそ) だの?

管理员界面

插件是hexo-admin,效果是一个类似CodiMD编辑页面的“管理控制台”,可以实时编辑预览Markdown文章,修改tag,从剪贴板粘贴图片到文章等操作。注意:仅用于hexo s状态下的博客实例。

文章加密

插件是hexo-blog-encrypt,使用前须在站点配置文件加入以下内容:

1
2
encrypt:
enable: true

随后在文章的开头部分加入password:字段设置密码即可。

同时,配合abstract:字段和message:字段可以设置对无密码人的提示信息。同时注意不要设置toc。

中英文自动空格

插件为hexo-filter-auto-spacingnpm install --save之后就可以用,无需手动设置。

Linux & Windows 小技巧(2)

图源:《ソード・アート・オンライン(刀剑神域)》第一季第二集 CM

本文ID:23166642-ab98-11e9-ad68-d1f5f7d77a33


博客一直在慢速更新…之前一直忙于各种事情,学校的课、比赛、不断接触和学习新的东西,因此没什么机会静下心来好好整理、记录我学到的东西,也就没有办法一并记下我对某些问题的理解和思考。

之前一度认为,“有写博客文章的时间,还不如好好学点新的东西”。但是自从领悟到我和舍友之间记忆力和知识熟练程度的差距之后,终于肯下定决心好好写自己的博客了——我比不上他们,我真的不是那种过目不忘的人,所以只能通过不断的复习和总结才能勉强记住些东西。

有人说,初学者是“什么都不会,同时自己不知道自己会什么”,稍有学识的普通人是“自己会些东西,但是自己觉得自己会的很多”,而大神则是“自己会很多东西,但是自己觉得自己学的不多而且不知道自己已经会了什么”。

可能我还是初学者吧。

git push 反复输密码很烦?

有的时候可能会遇到一种极端情况:假设你要编写脚本,比如:自动化运维脚本。其中涉及到一些对 git 仓库的操作,而且需要密码,比如:在自动脚本中让部署机器拉取私有仓库,或是让部署机器将构建后的代码使用某个 github 账号推送到某个 git 仓库。这个时候需要用户手动输入用户名和密码,但是我们往往不能手动输入——比如公用的 docker build machine,根本不允许用户在构建过程中进行交互。

Linux & Windows 小技巧(1)

图源:《三色绘恋》 游戏背景图

本文ID:23166643-ab98-11e9-ad68-d1f5f7d77a33


最近又学到了一些零零碎碎的 Linux、Windows 命令,和一些可能今后会用得着的小技巧,怕自己忘记,所以把它们写在博客里面提醒一下自己,免得到时候再花费大量时间去百度、Google 找文章。

Linux 下查看进程树?

查看进程有好几种方式,tophtop 这种可视化的,还有 ps 这种纯文本输出的程序都可以做到。但是如果想要查看某一进程的父进程或者子进程PID该怎么办?可以借助另一个程序,pstree。参数很灵活,可以根据需要启用或关闭。程序截图如下:

WinHex 的替代品?

WinHex是很强大的一个二进制文件查看和编辑工具(尤其是做 CTF 杂项题的时候 :)。虽然说现在全网随便搜搜就有破解版(Cracked Version)可以用,但是多了解几个 WinHex 的替代品,有备无患。

EditPlus

说起来很巧,这个神器还是我在学校图书馆电脑上发现的。本来以为这东西只能编辑编辑文本,做 Notepad++ 的小弟,没想到这还能打开二进制文件查看16进制数据(emmm,不能编辑),而且…还支持 Windows ARM。

打开文件之后,点击 Edit->Hex Viewer 即可查看十六进制数据。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×