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的新手,單純的想記錄一下本身學習的過程,若有什麼錯誤歡迎各位指正,謝謝。繼續努力。