五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

XCTF攻防世界--(新手賽區(qū))第4題快來圍觀學習!

2022-05-26 14:55 作者:rkvir逆向工程學院  | 我要投稿

1.先查看題目,依照作者的話說是需要逆向算法了,先下載下來吧

2.下載下來先查殼

下載下來是個64位沒加殼的二進制文件

3.老規(guī)矩,先丟進kali運行一下看看程序流程

運行了一下發(fā)現(xiàn)程序流程就是讓用戶輸入猜測的,一句猜測的結果進行輸出提示

4.既然這樣我們就直接把文件丟進ida中分析,先shift+F12查看引用字符

好家伙,發(fā)現(xiàn)關鍵提示字符,依照字面意思就是說用戶輸入的flag是正確的,那我們直接跟進去

5.跟進來看到welcom關鍵字符資源,這不就是二進制剛運行的時候顯示的用戶提示嗎?那我們直接查看進入引用函數(shù)

6.進入函數(shù)F5查看偽代碼,查看程序邏輯

①把一串字符賦值給v8

②把一串十六進制數(shù)賦值給v7,7賦值給v6

③將用戶輸入字符賦值給s,并將其長度賦值給v3

④首先對比輸入字符的長度是否小于v8的長度,如果小于執(zhí)行,sub_4007C0()函數(shù),跟進這個函數(shù)發(fā)現(xiàn)是提示輸入錯誤的

⑤for循環(huán)就是關鍵,循環(huán)中第一個if便是判斷用戶輸入的字符長度是否大于v8的長度如果大于,

那么就執(zhí)行sub_4007C0(),跟進發(fā)現(xiàn)就是提示flag錯誤的信息,第二個if便是對比用戶 輸入的

每個字符是否等于 (char)(((BYTE )&v7 + i % v6) ^ v8[i]),如果不等于執(zhí)行sub_4007C0(),跟

進發(fā)現(xiàn)也是提示flag錯誤,發(fā)現(xiàn)還有最后??一行代碼函數(shù)有跟進去看過,跟進去看就是提示 flag

正確,那怎么才能執(zhí)行他呢?肯定是循環(huán)成功執(zhí)行完以后那我們就可想而知,只要我們輸入的每

一個字符s[i] != (char)(((BYTE )&v7 + i % v6) ^ v8[i])則就可以 執(zhí)行完循環(huán),也就是說我們輸入的

flag是正確的,能得到提示信息。

⑥if ( s[i] != (char)(((_BYTE?)&v7 + i % v6) ^ v8[i]) )是比較加密后的flag,那我們逆運算加密后的flag便可以得到真正的flag了,因為源碼中的flag加密是采用異或,然而異或的逆運算任然是異或

逆運算代碼如下:

7.結果:


XCTF攻防世界--(新手賽區(qū))第4題快來圍觀學習!的評論 (共 條)

分享到微博請遵守國家法律
临汾市| 万安县| 江油市| 穆棱市| 响水县| 霍林郭勒市| 德令哈市| 丰台区| 彭水| 贵港市| 微博| 绵阳市| 抚顺县| 宝坻区| 阿合奇县| 毕节市| 宜章县| 合作市| 柳江县| 江安县| 浏阳市| 阳朔县| 南木林县| 全州县| 巴里| 岐山县| 金乡县| 章丘市| 凤山市| 疏勒县| 洛阳市| 肥西县| 甘泉县| 永修县| 吉隆县| 临安市| 博罗县| 胶州市| 武定县| 乌拉特后旗| 普兰县|