CSAPP——bomblab拆彈實驗4、5記錄

4這個有點(diǎn)巧過了,就直接寫了。

因為這個phase_4上面是func4,我就直接先看了。

看完func4,感覺用了4個傳參寄存器,結(jié)合源代碼的提示是個數(shù)學(xué)風(fēng)暴,那就先解這個數(shù)學(xué)式唄,特殊值直接一看,0 0 0 0的話就行,于是phase_4都沒看,直接試,就過了。然后再一看phase_4,只需要2個數(shù)字。


也就是0 0就行。就過了看phase_5。


emm不知道為什么這個圖的分析編輯記錄沒保存上,就再寫一遍吧。string_length一看就是讀取字符串長度,然后cmp rax是不是=6,那就是長度為6的字符串。然后說實話下面一串循環(huán)6次一個個字符處理不知道在干嘛,有點(diǎn)沒看懂是想干什么。下面的0x4024b0出現(xiàn)了一個奇怪的字符串

后面一看就是一句話,那就是前面的亂碼一樣的maduiersnfotvbyl是重點(diǎn)。


rbx放的是我輸入的字符串??雌饋砭褪翘幚硗炅艘院蠛拖旅嬉粋€特定的字符串進(jìn)行比較,比較一致后就過了。那看看是啥


感覺還是個單詞,abcdef這處理成個單詞就有點(diǎn)微妙啊。難道就是個定值?那我輸入flyers試試。結(jié)果booom。一看這個值,又變了

我就?????,輸入這個rvfedu試試呢?


麻了,我還是輸入aaaaaa試試看是怎么處理的,應(yīng)該是按位怎么有個變化吧

結(jié)果一看又變成flyers了。感覺這個關(guān)鍵就在這個循環(huán)處理字符上。看起來邏輯是取我輸入的字符的后四位加上之前那個亂碼再怎么處理了一下?實在有點(diǎn)沒搞懂。于是就去看了一下視頻解析。發(fā)現(xiàn)好像就是固定的取這個亂碼字符去對應(yīng)ASCII碼表。


從line5--->line6的想法是因為小寫字母從61開始對應(yīng)


查表就完了。說實話這個題我還是有點(diǎn)沒搞懂代碼,而且這個猜測的思路我也有點(diǎn)覺得想不到。還需要多練。就記錄到此。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容