日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BUUCTF-Reverse:xor(涉及异或脚本编写)

發(fā)布時(shí)間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BUUCTF-Reverse:xor(涉及异或脚本编写) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

xor一般指異或。異或,英文為exclusive OR,縮寫成xor異或(eor)是一個(gè)數(shù)學(xué)運(yùn)算符。

題目地址:https://buuoj.cn/challenges#xor

用IDA載入,尋找main函數(shù),F5打開偽C代碼:

int __cdecl main(int argc, const char **argv, const char **envp) {char *v3; // rsiint result; // eaxsigned int i; // [rsp+2Ch] [rbp-124h]char v6[264]; // [rsp+40h] [rbp-110h]__int64 v7; // [rsp+148h] [rbp-8h]memset(v6, 0, 0x100uLL);v3 = (char *)256;printf("Input your flag:\n", 0LL);get_line(v6, 256LL);if ( strlen(v6) != 33 ) // flag長度為33goto LABEL_12;for ( i = 1; i < 33; ++i )v6[i] ^= v6[i - 1]; // 從輸入的第二位開始,將其與前一位異或v3 = global;if ( !strncmp(v6, global, 0x21uLL) ) //比較V6與global段處存放前32位是否相同printf("Success", v3);// 如果相同輸出flagelse LABEL_12:printf("Failed", v3);result = __stack_chk_guard;if ( __stack_chk_guard == v7 )result = 0;return result; }

用戶輸入一個(gè)長度為33的字符串,字符串中的字符分別和前一個(gè)字符異或(對應(yīng)得ASCII碼)后和變量global的前0x21個(gè)字符比對。邏輯并不復(fù)雜,提取global的值:

導(dǎo)出數(shù)據(jù)(edit——》export data)shift+E:

unsigned char ida_chars[] = {0x66, 0x0A, 0x6B, 0x0C, 0x77, 0x26, 0x4F, 0x2E, 0x40, 0x11, 0x78, 0x0D, 0x5A, 0x3B, 0x55, 0x11, 0x70, 0x19, 0x46, 0x1F, 0x76, 0x22, 0x4D, 0x23, 0x44, 0x0E, 0x67, 0x06, 0x68, 0x0F, 0x47, 0x32, 0x4F, 0x00 };

編寫腳本:

list1=[0x66, 0x0A, 0x6B, 0x0C, 0x77, 0x26, 0x4F, 0x2E, 0x40, 0x11, 0x78, 0x0D, 0x5A, 0x3B, 0x55, 0x11, 0x70, 0x19, 0x46, 0x1F, 0x76, 0x22, 0x4D, 0x23, 0x44, 0x0E, 0x67, 0x06, 0x68, 0x0F, 0x47, 0x32, 0x4F, 0x00] #print(list1) # 會自動(dòng)變成十進(jìn)制 flag=chr(list1[0]) # f 第一個(gè)‘f’沒有被處理,但是也是flag的一部分。 i=1 while True:if i<len(list1):flag += chr(list1[i]^list1[i-1]) //從輸入的第二位開始,將其與前一位異或i+=1else:break print(flag)


得到flag:flag{QianQiuWanDai_YiTongJiangHu}
千秋萬代_一統(tǒng)江湖 ㄟ( ▔, ▔ )ㄏ

總結(jié)

以上是生活随笔為你收集整理的BUUCTF-Reverse:xor(涉及异或脚本编写)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。