前言
前几天修整了博客侧边栏,现在下载网页的 GPG 签名应该简单多了虽然应该除了我自己也没人会用。
介绍
此「流氓软件」非彼「流氓软件」,是今天刚发售的 Steam 游戏。
玩家在通关普通结局后,重新启动游戏即可开启真结局的挑战,
邮件内附一行小字 注意:仅限计算机专家
1,花一个小时达成了全成就。
整体思路还是挺简单的,记录一下。
Hack
通过解包恢复 Godot 工程的方式绕过谜题,直捣黄龙。
- GDRE_tools, recover project,
Malware.pck
- 观察解包文件可知,
mail\8009_You are a real computer expert.json
是最后成就的文本 - 整个文件夹拖进 VSCodium,搜索
8009_You are a real computer expert.json
- 在唯一的搜索结果
windows\mail_box\password.gd
中找到密码 - 半分钟速通达成
常规方法
- 在最后的邮件中间大段空行的部分,夹了一行
clue.jpg\n注意:仅限计算机专家
- 打开游戏文件夹,
club.jpg
发现(或者直接 Eveything 搜索clue.jpg
) - 拖进 ImHex,根据文件头判断文件其实是 7z 压缩包
- 其实密码就是
password
,假装不知道可以用 hashcat + 7z2hashcat 暴力破解,反正字典没试几个就出来了…… - 解压,发现是一堆乱七八糟的文件夹,看详情其实只有一个文件
tree /F ./
,发现文件是7\3\Hello.html
- 虽然浏览器打开只是
Hello Tom!
,但网页源代码中写了 base64Zm9sZGVy77yaMjk5ZDEyZDg4ZTBlOTljMQ==
- 解码,发现是字符串
folder:299d12d88e0e99c1
- Everything 搜索
299d12d88e0e99c1
,发现在$env:SystemDrive\.bc7e3b6e381b7026\299d12d88e0e99c1
有两个文件 - 显然,
runme.json
是密文,readme.exe
是可执行文件,当然前提是显示全部文件的扩展名= = readme.exe
拖进 x64dbg,运行,在输入密码的地方下断点- (Shift + D) 搜索字符串
Password
- 在 00007FF6D09E1621-00007FF6D09E1765 发现密钥,复制出来保存为
privkey.txt
- 尝试导入 GnuPG,失败
- 转头问 GPT-4o-mini,发现是 PEM 格式的 RSA 私钥,GPG 读不了,得用 OpenSSL
- 继续问 GPT,解密命令
openssl rsautl -decrypt -inkey privkey.txt -in clue.json -out plaintext.txt
运行失败,还报错The command rsautl was deprecated in version 3.0. Use 'pkeyutl' instead.
- 发现是加密文件选错了,应该是
runme.json
,重试openssl pkeyutl -decrypt -inkey privkey.txt -pkeyopt rsa_padding_mode:pkcs1 -in runme.json -out plaintext.txt
,还是不行 - 查看
runme.json
,发现原来这个也是 base64,解码出的内容重定向(注意编码)到runme.txt
,终于成功解密 - 打开
plaintext.txt
,发现是b4e9ab2f61cbfda4
- 以下为错误示范
- 总结一下目前已知的数据,三个 hash,还有
Hello.html
的文件路径73
,而邮件密码是五位,合理推测三个 hash 各对应一个数字 其实知道三个 hash 值各不相同,还有73
,直接暴力尝试也不是不行……- md5sum 输出都是 32 个十六进制(128bit),和这几个 hash 长度不符,直接搜索引擎搜
md5 16
,发现有结果,然而似乎就是取前 16 位,1-9 的 hash 都对不上,合理推测失败
- 总结一下目前已知的数据,三个 hash,还有
- 老老实实字典 + hashcat 慢慢磨,或者直接上 cmd5 搜,做到这步我就直接解包了
- 几个 hash 对应的值(当然不是瞎掰的,可以访问 MD5 16 Hash Generator 验证)