GKCTF2020 逆向部分题的复现
逆向題目質量高,收獲很多
0x1.Check_1n
提示語句是中文,IDA7.0要能搜到中文字符串。
找到密碼錯誤的提示語句,查看引用。
拿到開機密碼:HelloWorld
輸入HelloWorld,進入“桌面”,打開flag,會提示base64編碼的Why don’t you try the magic brick game,提示玩打磚塊游戲,玩打磚塊游戲死了就出flag
另一種思路,看到奇怪字符串2i9Q8AtFJTfL3ahU2XGuemEqZJ2ensozjg1EjPJwCHy4RY1Nyvn1ZE1bZe,查引用,發現base58的關鍵數組。base58解密。
0x2.Chelly’s ldentity
Chelly是啥,一查,哦,看來師傅們都是老二次元了(手動狗頭.jpg)。
C++程序,你來回點函數,發現有些變量可以變換,有提示作用。
函數多,邏輯理清楚,整體分三部分,輸入一部分,算法一部分,最后結果比較一部分。算法又可分成輸入校驗和算法兩部分。
原本的輸入std::cin后面的變量,但發現下面判斷長度的函數的變量不是input,而是instr,這樣分析input賦值給instr。
sub_4111BD()判斷長度:16字符。
sub_411721()是算法實現函數,點進去
找while循環,沒循環如何遍歷。有一個數組與輸入字符的每個值比較,如果這個數組里的值小于輸入字符,把它們累加起來,輸入字符再和累加的值異或。關鍵是找這個數組,v9數組最早出現在sub_4116E0,點進去sub_4116E0
數組生成條件sub_411672,滿足條件就放到數組里,進入sub_411672。
質數生成函數:生成0-128的質數.。
算法搞清楚了,康康最后的結果比較函數。
賦值的那個數組就是結果數組。
腳本上場,登~ 登~ 登~(自帶音效)
0x3.BabyDriver
sys的后綴,驅動題,找DriverEntry。鍵盤過濾驅動
標準的鍵盤過濾驅動
因為是鍵盤過濾驅動,主要看下IRP讀操作的回調函數(第二個函數),也就是CompletionRoutine的位置
發現是個地圖題,就是上下左右由于鍵盤過濾驅動的影響,真實的值需要查表
maze類:1.內存中畫出一張地圖(地圖變換) 2.明確起點和終點 3.(四個字符對應上下左右)flag就是走出的路徑
地圖:
上下左右 IKJL
走出flag,LKKKLLKLKKKLLLKKKLLLLLL
輸入md5加密后就是flag
0x4.WannaReverse
勒索病毒,自帶換壁紙功能,拿到題還挺懵的,這就上勒索了(這么強嗎_流汗.jpg)
拿到四個文件,主要逆向WannaReverse.exe這個,libcrypto-1_1.dll是openssl庫來提供rsa的相關加密函數,clickme.exe是仿照wannacry病毒的界面程序(自帶換壁紙功能),flag.txt.Encry是被WannaReverse.exe加密的flag。
我的IDA反編譯的函數,函數名沒有提示是那種函數,這就很難受,
WannaCryp勒索病毒,采用AES算法加密文件,并使用非對稱加密算法RSA 2048加密AES的密鑰,每個文件使用一個隨機密鑰。
大致流程:
隨機生成一個AES密鑰,用于加密文件,然后用RSA公鑰加密生成的AES密鑰,并將加密結果保存在被加密文件的文件頭部。然后在clickme.exe中可以得到RSA私鑰。那解密流程就很清楚了,把文件頭的RSA加密結果拿出來用RSA私鑰解密得到AES密鑰”30776159143604297789676442413079”,然后用這個密鑰對該文件的剩下內容進行AES解密。
總結
以上是生活随笔為你收集整理的GKCTF2020 逆向部分题的复现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 饿了么官宣合作抖音后,美团的失意是什么?
- 下一篇: Markdown和Typora编辑器的学