[INSHack2019]gflag
題目
知識點:Gcode 3D打印命令
*G0:快速移動
*G1:控制移動 : 坐標軸XYZE移動控制(G0和G1一樣), 例子:G0 F2000 X30 Y30 Z30 E3
*G2:順時針畫弧
*G3:逆時針畫弧
.....
更多命令可以看:3D打印gcode命令大全及解析
在線解析網站:https://ncviewer.com/
把給出的代碼貼進去,點一下plot:
[INSHack2019]Crunchy
題目
def crunchy(n):
if n < 2: return n
return 6 * crunchy(n - 1) + crunchy(n - 2)
g = 17665922529512695488143524113273224470194093921285273353477875204196603230641896039854934719468650093602325707751568
print("Your flag is: INSA{%d}"%(crunchy(g)%100000007))
解析
直接運行是不能運行的,會報錯(超過最大遞歸限度),需要把遞歸改寫一下
一種方法是用矩陣乘法來做:
貼上大佬的腳本
def matrix_multiply(mat_a, mat_b, n):
a, b, c, d = mat_a
x, y, z, w = mat_b
return (
(a * x + b * z) % n,
(a * y + b * w) % n,
(c * x + d * z) % n,
(c * y + d * w) % n,
)
def matrix_power(A, m, mod):
if m == 0:
return [1, 0, 0, 1]
elif m == 1:
return A
else:
B = A
n = 2
while n <= m:
B = matrix_multiply(B, B, mod)
n = n*2
R = matrix_power(A, m-n//2, mod)
return matrix_multiply(B, R, mod)
F1 = [6, 1,
1, 0]
g = 17665922529512695488143524113273224470194093921285273353477875204196603230641896039854934719468650093602325707751568
print("INSA{%d}"%matrix_power(F1, g, 100000007)[1])
[INSHack2018]42.tar.xz
題目
This file is very deep. Will you dare dig in it ?
打開是42個壓縮包,每層打開都有42個,盲猜要開42層,4242=1.5013093754529657235677197216425e+68,這個數量就很恐怖了,貼上我的垃圾腳本,跑了第一個壓縮包磁盤直接爆炸
import lzma
import shutil
import tarfile
import os
def unzx(filename):
print(filename)
inputs = lzma.open(filename)
out = open(filename.split(".")[0]+".tar","wb")
shutil.copyfileobj(inputs,out)
out.close()
inputs.close()
os.remove(filename)
def untar(filename):
print(filename)
tar = tarfile.open(filename)
names = tar.getnames()
if os.path.isdir(filename):
pass
else:
os.mkdir(filename.split(".")[0]+"/")
for name in names:
tar.extract(name,filename.split(".")[0]+"/")
tar.close()
os.remove(filename)
def unpack(dirs):
#print(dirs)
files = os.listdir(dirs)
#print(files)
for file in files:
unzx(dirs+"/"+file)
untar(dirs+"/"+file.split(".")[0]+".tar")
unpack(dirs+"/"+file.split(".")[0])
unpack("42")
解壓到最后一層每一個文件都有500+mb, 但是居然詭異地找到了flag,在
\buuctf-misc\[INSHack2018]42.tar.xz\tmp\42\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\2\1\flag
大佬的bash腳本
while [ "`find . -type f -name '*.tar.xz' | wc -l`" -gt 0 ]; do find -type f -name "*.tar.xz" -exec tar xf '{}' \; -exec rm -- '{}' \;; done;
速度還比較快,而且沒有爆磁盤
[INSHack2018]Spreadshit
用office條件格式,給所有的空格染色,調整一下單元格大小
BUU上提交字母要都改成小寫
[INSHack2018]GCorp - Stage
打開
追蹤tcp流量
拉到最底下
base64解碼
沒了
INSHack2018 so deep
用Audacity查看了一下頻譜,發現有點模糊的文字,看不清楚,用sonic visualiser查看,
在Layer選項中點擊Add Peak Frequency Spectrogram, 調整視圖至清晰,發現是flag的前一半
https://blog.csdn.net/qq_36618918/article/details/107912977
用deep sound解密