創建表格 要在MySQL中創建表格,請使用"CREATE TABLE"語句。 確保在創建連接時定義了資料庫的名稱。 示例創建一個名為 "customers" 的表格: import mysql.connector mydb = mysql.connector.connect( host="local ...
附件下載下來,解壓,發現是一個python打包的exe
這裡用pyinstxtractor進行反編譯,後面會得到一個文件夾,裡面有一個pyc文件
這裡可以用進行網站進行對pyc進行反編譯:線上Python pyc文件編譯與反編譯 (lddgo.net)
反編譯的python結果如下:
# Visit https://www.lddgo.net/string/pyc-compile-decompile for more information
# Version : Python 3.7
def check():
a = input('plz input your flag:')
c = [
144,
163,
158,
177,
121,
39,
58,
58,
91,
111,
25,
158,
72,
53,
152,
78,
171,
12,
53,
105,
45,
12,
12,
53,
12,
171,
111,
91,
53,
152,
105,
45,
152,
144,
39,
171,
45,
91,
78,
45,
158,
8]
if len(a) != 42:
print('wrong length')
return 0
b = None
for i in range(len(a)):
if ord(a[i]) * 33 % b != c[i]:
print('wrong')
return None
print('win')
check()
邏輯還是比較簡單的,但就是這個b的值不知道,後面考慮到前四個字元固定是"flag",所以可以先把b給爆破出來,爆破b的腳本如下:
str=[144,163,158,177] flag="flag"for j in range(len(flag)): for b in range(1,1000): if (ord(flag[j])*33)%b==str[j]: print(b) 運行結果如下:
可以得到b=179,接著跟著代碼邏輯繼續爆破:
flag="" b=179 for i in range(len(c)): for num in range(32,127): if num*33%b==c[i]: flag+=chr(num) print(flag) 運行結果: flag:flag{2889e7a3-0d6b-4cbb-b6e9-04c0f26c9dca} ps:如果一開始用uncompyle6進行反編譯pyc文件的話,b的值是可以反編譯出來的,也就不用去爆破b的值