記一道簡單的re--BUUctf reverse1

1.首先拖進ida裏,看到了左面一百多function。。。仍是shift+f12 查看敏感字符串吧函數

2.發現了這兩個比較可疑的字符串,而後雙擊this is the right flag 進入到了他在內存中的位置學習

看到了這麼兩行,這個DATA XREF的意思就是 這個字符串在程序中被引用到代碼片段(函數)的地址,this

這裏有兩個方法進入到這個函數中3d

第一是在這行上右鍵,有一個jump in a new windowblog

 

點一下就會進入到這個函數的程序流程圖中,內存

 

 

而後f5,就進入到了這個函數的僞代碼中。ci

也能夠點後面的loc_140011996,這是引用這個字符串的函數的地址0x140011996,右鍵jump in a new window,而後就f5,進入到僞代碼中。字符串

第二種就是看DATA XREF後面的函數名sub_1400118c0而後去左面的函數名裏找。io

3.進入後,從頭往下捋一下,發現這麼幾個可疑的地方,function

 

 我猜111是Str2[j]這個字符對應的ascii碼,若是Str2中出現了這個字符, 就換成ascii碼爲48的字符,

查表後發現就是o換成0,

 這裏發現是用Str1來接收輸入的flag,

 

 而後將Str1與Str2進行比較,若是相等就this is the right flag!

因此就去看看Str2裏存的是什麼,雙擊Str2

 

因此猜將這個hello_world中的o換成0就是最終的flag,

提交試了一下還真是。

 

by:一個剛學pwn和re的新手,單純的想記錄一下本身學習的過程,若有什麼錯誤歡迎各位指正,謝謝。繼續努力。

相關文章
相關標籤/搜索