点击此处获得更好的阅读体验
WriteUp来源
官方WP
题目考点
解题过程
官方解法
运行程序,在一张纸上写FUN字样进行识别,识别成功时程序关闭输出flag,并在当前目录生成flag.txt文件。
大佬WP by ThTsOd
在程序执行时 Ctrl+C 可知是 python 写的并打包,在 Temp 目录下找到文件,在程序运行时复制文件,搜索整个文件夹 flag{ 找到 flag
大佬WP by rycbar
程序是python打包出来的,解包找到主程序checkin,补上pyc头文件,反编译得到python代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| import cv2, re, sys from aip import AipOcr from apii import APP_ID, API_KEY, SECRECT_KEY, flag client = AipOcr(APP_ID, API_KEY, SECRECT_KEY) cap = cv2.VideoCapture(0) i = 0 x = 1 print('⠀⠀⠀⠀⠀⠀⣀⣄⣀⢀⣀⣀⡀⠀⠀⠀⢀⣄⣀⣀⣀⣀⡀⠀⠀⠀⢠⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⡤⠀⠀⠀⠀⠀⠀⠀⠀') print('⠀⠀⠀⠀⠀⢀⣹⣉⣝⢸⡇⠀⠀⠀⠀⢀⡞⠉⠉⣹⠉⠉⠁⠀⠀⢠⢼⢦⠐⢺⠓⢲⠀⠀⠀⠀⣾⠀⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀') print('⠀⠀⠀⠀⠀⠀⡤⣤⠤⢸⡏⢹⠉⠀⠀⠀⢸⡏⠉⢹⠉⠉⠁⠀⠀⠘⢸⠠⠤⢼⡤⠼⠤⠀⠀⠀⠛⡒⠒⡗⢒⠒⠂⠀⠀⠀⠀⠀⠀⠀') print('⠀⠀⠀⠀⠀⢀⠇⠀⠰⣸⠀⢸⠀⠀⠀⠈⠉⠉⠉⢻⠉⠉⠉⠀⠀⠀⢸⠀⣠⠏⠱⣄⠀⠀⠀⢀⡴⠁⠀⡇⠈⠳⡄⠀⠀⠀⠀⠀⠀⠀') print('⠀⠀⠀⠀⠀⠀⠉⠁⠀⠁⠀⠘⠀⠀⠀⠀⠀⠀⠀⠘⠀⠀⠀⠀⠀⠀⠘⠘⠁⠀⠀⠈⠃⠀⠀⠈⠀⠈⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀') while True: ret, frame = cap.read() cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('capture', frame) cv2.imwrite('.\\i' + str(i) + '.png', frame) i = i + 1 if i - 1 > x: z = open('.\\i' + str(x) + '.png', 'rb') img = z.read() message = client.basicGeneral(img) for j in message.get('words_result'): words = message['words_result'] num_list = [] for s in words: num_list.append(s['words']) final = num_list final = ''.join(final) if 'FUN' in final: print(flag) f = open('flag.txt', 'w', encoding='utf-8') f.write(flag) f.close() sys.exit(0) else: print('识别失败') sys.exit(0) else: x = x + 1 if cv2.waitKey(1) & 255 == ord('q'): break cap.release() cv2.destroyAllWindows()
|
看了一下代码,有OCR,发现真的和题目描述一样对着电脑摄像头扫“FUN”就可以了,然后放弃继续逆向,写了个大大的FUN扫出来得到flag。
Flag