【個人向】ctf比賽出的一道逆向游戲題——GameTime題解


前提:

最近沉迷游戲開發,想着在不考慮上線的情況下和別人合作做幾款產品出來。正好碰上校賽,那就用手邊的一些小練習寫個re題。

打包項目的時候,如果不進行其他操作,項目中的cs代碼,甭管有用的沒用的,在打包時通通都會被打進Assembly-CSharp.dll中,運行的時候通過Mono調用。所以有一種保護項目的手段就是對導出工程的Assembly-CSharp.dll進行加密,加載的時候對之進行解密

wp:

這個題大部分精力放在寫游戲邏輯上了,所以沒有對項目進行保護措施。

直接進入GameTime!\GameStart_Data\Managed目錄找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

感謝閱讀。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM