日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

BUUCTF--[GWCTF 2019]re3学习记录

發布時間:2025/3/21 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BUUCTF--[GWCTF 2019]re3学习记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

又是一道很操(沒做出來)的題目,學習其他師傅的思路。

第一步:

常規操作,無殼64位,放入IDApro中。

搜索找到main函數,出現紅色提示

棧存在問題,修改一下棧的值

?查看main函數,讀取,mproct函數,一種保護函數,不是很重要。

mprotect函數詳解

?SMC自修改代碼

在真正執行某一段代碼時,程序會對自身的該段代碼進行自修改,只有在修改后的代碼才是可執行的。在程序未對該段代碼進行修改之前,在靜態分析狀態下,均是不可讀的字節碼,IDA之類的反匯編器無法識別程序的正常邏輯。


第一次看,一臉懵逼,到這里就卡住了,把函數+i??? wtf???點進去查看

?大概意思是將sub_402219函數的匯編代碼修改了,最后再次執行,我們靜態分析看不出來。而且這里無法動態調試。

查看匯編代碼

?發現這里出現了一大堆數據,應該就是我們需要處理的數據。

選中402219數據段 D鍵轉換為數據段。

?這時我們就需要使用IDC腳本進行數據修改(一種類c語言)shift+F2

IDC腳本介紹

IDC腳本舉例

IDC函數

#include <idc.idc>static main() {auto addr = 0x402219; //聲明局部變量 addr是起始地址auto i = 0;for(i=0;i<224;i++) {PatchByte(addr+i,Byte(addr+i)^0x99); //設置虛擬地址addr處的一個字節值} }

然后將修改后的數據選中,右鍵分析,選擇force強制執行,然后把代碼按P鍵形成函數。

?我們分析一下函數,點進去都是好長一段,試試findcrypt插件,可能是某種加密,發現是AES

?byte_6030A0就是最后加密后的內容

BC0AADC0147C5ECCE0B140BC9C51D52B46B2B9434DE5324BAD7FB4B39CDB4B5B

現在我們需要來求密鑰unk_603170.linux遠程動態調試(輸入一個長為32位的字符串)

CB8D493521B47A4CC1AE7E62229266CE

最后學習別的師傅的腳本

from Crypto.Cipher import AES from Crypto.Util.number import * key = long_to_bytes(0xcb8d493521b47a4cc1ae7e62229266ce) #密鑰 mi = long_to_bytes(0xbc0aadc0147c5ecce0b140bc9c51d52b46b2b9434de5324bad7fb4b39cdb4b5b) #密文 lun = AES.new(key, mode=AES.MODE_ECB) flag = lun.decrypt(mi) print(flag)

得到最后的flag為

flag{924a9ab2163d390410d0a1f670}

總結

以上是生活随笔為你收集整理的BUUCTF--[GWCTF 2019]re3学习记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。