1. 程式人生 > >實驗吧 此處無聲 writeup

實驗吧 此處無聲 writeup

無聊又刷了一下實驗吧,把很久之前沒做出來的此處無聲做出來了

首先用ida開啟,明顯是有殼的,用偵殼工具查了一波,沒查出什麼殼。

於是嘗試手動脫一波,但是能力不足,還是沒脫成功,但是用GetWindowText等函式斷點斷了一波,斷在了一個比較明顯的處理函式上面,於是直接把這個函式開始當oep直接dump下來。

dump下來之後,用ida開啟,看了下

這裡寫圖片描述

比較重要的就是那個memcmp那裡,看起來就是比較結果的

動態除錯看了下,發現v21是隨著輸入的使用者名稱而改變的,看了下別人的wp,這裡v21應該是md5(name)

但是其實這裡不知道也能做出來, 然後看下sub_4012f0 ,發現是把輸入的註冊碼用rc6加密了一波,這裡rc6的引數中的r=20 ,這裡是看金鑰的長度算的 (這裡順便吐槽一波ida,f5有些地方沒反編譯出來,要看彙編才看出來

sub_4011f0 看了下應該是生成金鑰的,但是太複雜懶得看,直接動態除錯把生成的key扒下來就行

sub_4018C0是檢測輸入的字元是否符合格式,sub_4018c0是將輸入的字元由32位字元轉換為16位的hex

現在我們有了key和加密後的data,到github上面clone一個rc6的專案,魔改下程式碼就能解出flag

flag : F6ADDD6C46EBB644BDA265366E8CA675