国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

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題快來圍觀學習!的評論 (共 條)

分享到微博請遵守國家法律
静宁县| 樟树市| 于都县| 岗巴县| 山东省| 和田县| 光泽县| 达日县| 静海县| 乐陵市| 禄劝| 夏邑县| 宁明县| 绥德县| 万全县| 平度市| 当雄县| 水城县| 普兰县| 涟水县| 吴江市| 枣庄市| 织金县| 台前县| 额济纳旗| 镇赉县| 如东县| 柘城县| 建瓯市| 苏尼特右旗| 朝阳市| 吉木萨尔县| 洮南市| 玉田县| 平遥县| 加查县| 平阳县| 邳州市| 金昌市| 洪湖市| 左云县|