点击此处获得更好的阅读体验
题目考点
- Unity游戏逆向
解题思路
基于unity开发的游戏,实际只有一个视频播放器,输入框和一个确认框。找了下资料,默认<Game>_dataManagedAssembly-CSharp.dll
应该是存放主逻辑的地方。dnspy一把梭。只是一个DES CBC模式的加密,密文密钥都有,初始iv和key相同。注意C#里面字符串默认是Unicode,密钥是1234
,每个字符后面都要加x00
。
1 | import base64 |
解出来得到He_P1ay_Basketball_Very_We11!Hahahahaha!
,交一下发现不对,找了半天好像这个dll里没什么奇怪的地方了。后面用ce,直接暴力搜索Emmmmm
搜到不止一个结果,在内存中查看一下有新的收获,这里base64的部分和之前dll里的不一样!一共有两个地方不同,先尝试直接解密。第一个得到:Oh no!This is a trick!!!
第二个不知base64改了,key也改成了test。解密之后得到:She_P1ay_Black_Hole_Very_Wel1!LOL!XD!
,提交正确。脚本:
1 | import base64 |
继续在ce的内存中翻找,可以看到pe头。把整个dll dump下来,再丢尽dnspy,可以看到内容基本一致。
Flag
1 | sctf{She_P1ay_Black_Hole_Very_Wel1!LOL!XD!} |