xctf攻防世界 crackme writeup

2022-08-12 08:00:15 字數 1710 閱讀 9838

感謝xctf提供學習平台

crackme有殼,脫殼部分見文章:

檢視字串:

跟蹤來到right,推測為成功時的標誌。

來到這裡,往上翻能看到核心**以及輸入和輸出的指令

輸入的字串放在了[edp-38]這個位置。程式是先迴圈,判斷了字串長度

eax作為計數器,最後與0x2a比較

核心演算法部分,主要是與「this_is_not_flag」異或,之後與402150位置比較,eax再次充當計數器,402150處資料位dword,4位,所以40108d處eax*4。

輸入的字串42位,但是給的異或只有16位,通過and操作解決

402150處資料, 改變顯示方式:

將這部分資料複製出,之後刪除掉前邊的位址,將「000000」替換位「,0x」再加上方括號,就可以直接編寫python指令碼使用。

最後附上整個注釋分析圖(右鍵檢視可放大)和python**

逆向 攻防世界 crackme

查殼,nspack殼,直接用軟體脫殼,ida引導程式。很明顯,就是將402130的資料和輸入的資料進行異或,判斷是否等於402150處的資料。dwrd佔4位元組。這道題主要記錄一下剛學到的,直接在ida使用python指令碼。from ida bytes import get bytes s dat...

逆向 攻防世界 crackme

查殼,nspack殼,直接用軟體脫殼,ida引導程式。很明顯,就是將402130的資料和輸入的資料進行異或,判斷是否等於402150處的資料。dwrd佔4位元組。這道題主要記錄一下剛學到的,直接在ida使用python指令碼。from ida bytes import get bytes s dat...

xctf 攻防世界 key

好久沒有去攻防世界玩了 主要是這段時間太忙了 有很多 雜事 纏身吧 然後沒事看看堆 就。看自閉了 然後這道題其實還是很簡單的 有很多函式 還有指令其實感覺 用od 或者ida 直接靜態 就能查出來什麼意思 就沒有必要 去深究 裡面的演算法 點進去 主要的函式 發現了這個東西 注意這個 memory ...