• 【个人向】ctf比赛出的一道逆向游戏题——GameTime题解


    前提:

    最近沉迷游戏开发,想着在不考虑上线的情况下和别人合作做几款产品出来。正好碰上校赛,那就用手边的一些小练习写个re题。

    打包项目的时候,如果不进行其他操作,项目中的cs代码,甭管有用的没用的,在打包时通通都会被打进Assembly-CSharp.dll中,运行的时候通过Mono调用。所以有一种保护项目的手段就是对导出工程的Assembly-CSharp.dll进行加密,加载的时候对之进行解密

    wp:

    这个题大部分精力放在写游戏逻辑上了,所以没有对项目进行保护措施。

    直接进入GameTime!GameStart_DataManaged目录找Assembly-CSharp.dll文件,扔进dnspy或者其他的.net反编译工具里就能看到源码。

    image-20210425125348912

    看着文件挺多,但是绝大部分都是游戏逻辑,跟flag没什么关系。

    为了方便定位我直接把加密flag的cs代码命名成带有flag的文件,所以我们进入ScoreAndFlag里面看看:

    代码写的比较丑,但逻辑还是能看明白的,比如ScoreAdd:

    image-20210425125552200

    flag就是对“974”进行sha1的结果在来一次md5。

    image-20210425125658232

    sha1最终返回的结果全部大写,这些结果在传给md5(),返回前三十位,就是flag了。

    所以这个题出的一般,因为他只是个垃圾小游戏,不是题。

    image-20210425125724738

    题目文件:

    链接:https://pan.baidu.com/s/1dNlYwzzbDNHjcMo_2lUtiw
    提取码:kq1z

    感谢阅读。

  • 相关阅读:
    C到C++的升级
    设计模式分类
    对模式的十大误解
    MAC帧和IP包的分析
    python之路—从入门到放弃
    选课系统
    Scrapy框架详解
    爬虫系列
    Python从入门到断气
    常用模块
  • 原文地址:https://www.cnblogs.com/DorinXL/p/14699874.html
Copyright © 2020-2023  润新知