《CTF編程訓練題------10000以內的加減法》要點:
本文介紹了CTF編程訓練題------10000以內的加減法,希望對您有用。如果有疑問,可以聯系我們。
實驗君只是熱愛CTF奪旗比賽,并不是意義上所謂的“黑客”,請粉絲們不要誤會,那些@我幫忙盜賬號,盜暗碼、盜的圖片的童鞋們,臣妾做不到啊.
不羅嗦,直接上標題:http://ctf8.shiyanbar.com/codeBMP/
今有一壓縮包,其內圖片不知幾許(很多便是了).
【截圖僅為一部門】
請君算出所有圖片上的數與其文件名之乘積,所有乘積的和為KEY.
例:
文件名為1.bmp,圖片上的數為:1234
文件名為5.bmp,圖片上的數為:5678
……
文件名為233.bmp,圖片上的數為:2345
key為:1234 x 1 + 5678 x 5 + ... + 2345 x 233 = ?
小編友情提示:PPC即編程類題目,題目涉及到程序編寫、編程算法實現,當然PPC相比ACM來說,還是較為容易的.至于編程語言嘛,保舉使用Python或Ruby來嘗試.
“首先本標題的思路是對0到9取模,再根據規律進行比對即可''
取模
file = convert('C:\\Users\\lenovo\\Desktop\\bmp\\7.bmp')
box1 = (0,0,6,10)
box2 = (10,0,16,10)
box3 = (20,0,26,10)
box4 = (30,0,36,10)
im = file.crop(box4)
im.save('C:\\Users\\lenovo\\Desktop\\bmp\\model\\9.bmp')
'''
import Image
def convert(str1):
im = Image.open(str1) #實現對圖片的加載
table = []
for i in range(256):
if i <140:
table.append(0)
else:
table.append(1)
im = im.convert('L') #實現對圖片的黑白化
out = im.point(table,'1') #中值去噪,用值為140
return out
def cut(im): #對圖片進行切割
box1 = (0,0,6,10)
box2 = (10,0,16,10)
box3 = (20,0,26,10)
box4 = (30,0,36,10)
im1 = im.crop(box1)
im2 = im.crop(box2)
im3 = im.crop(box3)
im4 = im.crop(box4)
return [im1,im2,im3,im4]
def print1(im): #將每個數模用的特征表現成元組的集合,每個數字都有不同的集合特征
width = im.size[0]
height = im.size[1]
load = im.load()
sss = []
for x in range(width):
for y in range(height):
sss.append(load[x,y])
#print sss
return sss
def characteristic_get(): #獲得數模的特征
characteristic = []
for i in range(0,10):
out = convert('C:\\Users\\lenovo\\Desktop\\bmp\\model\\'+str(i)+'.bmp')
#out.point(table,'1')
characteristic.append(print1(out))
return characteristic
def ocr(str1,characteristic):
im = convert(str1) #去噪
imj= cut(im) #分割
result = ''
#print print1(imj[0])
#print characteristic[7]
for i in imj:
for hex in range(0,10):
if print1(i)==characteristic[hex]:
result+=str(hex)
break
return result
characteristic = characteristic_get()
path = 'C:\\Users\\lenovo\\Desktop\\bmp\\'
sum = 0
for i in range(1,10000):
sum+= i*int(ocr(path+str(i)+'.bmp',characteristic))
print sum
解題思路已經表達完畢.
CTF奪旗的朋友點擊右上角存眷實驗吧,希望不熱愛CTF奪旗的朋友有們,也可以存眷實驗吧,你們都是天才,看著看著就入門了.
感謝朋友們對實驗吧的年夜力支 持. 實驗吧官方粉絲群: 384182116 實驗吧活動交流群:222359598
維易PHP學堂逐步分享更多《CTF編程訓練題------10000以內的加減法》相關教程。歡迎交流
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/9118.html