GameMaster
题目下载到手三个文件

优先查看exe,是个游戏。

32位PE文件以及.net编写的,用dnSpy打开。

读取了gamemessage文件存放到Program.memory里。
接下来都是一些键盘控件的处理,按Enter会进入俩个分支,有一个地方不同的是Escape处:

这里点击一下,跟到函数的地方。

会紧跟着调用一个goldFunc的函数,再跟过去,

从这里一直看下去,直到再次看到Program.memory

这里很明显做了一个异或34的处理,之后赋给AchivePoint1

中间的加减大概就是分数,一直到这里flag39,可能会调用函数genCode。这个函数在dll中,先不管。

这里又是对Program.memory进行了一个加密,用了ECB加密模式,填充方式是PaddingMode.Zeors,这是一个典型的AES加密。这里也是给到了AchivePoint2。

这里就是AchivePoint3了,进行了一个反序列化的操作,但是没有对文件进行处理。不明所以。
大概这个exe就看完了,下面也不太清楚都做了什么,可以明白的是gamemessage是可以解密的。
解密脚本:
from Crypto.Cipher import AES
with open("gamemessage","rb") as f:
data = f.read()
dataArr = [t for t in data]
for i in range(len(dataArr)):
dataArr[i] ^= 34
data = bytes(dataArr)
key = [66,114,97,105,110,115,116,111,114,109,105,110,103,

本文详细描述了解析GameMaster程序中的文件结构,包括识别32位PE文件、.NET代码和AES加密过程。作者通过解密gamemessage文件并使用z3工具求解密钥,揭示了部分加密算法和关键变量的操作。
最低0.47元/天 解锁文章
491

被折叠的 条评论
为什么被折叠?



