Fork me on GitHub

ctf--some脚本

  • md5碰撞(misc)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/user/bin/env python2
    # -*-coding:utf-8 -*-

    import hashlib,sys

    def getMD5(Cap):
    for x in range(1000000,100000000):
    captcha=x
    MD5=hashlib.md5(str(captcha)).hexdigest()
    if MD5[0:6]==Cap:
    return captcha
    print getMD5(sys.argv[1])
  • 关于含有大小写字母及数字的凯撒移位(encry)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #!/user/bin env python2
    # -*-coding:utf-8 -*-

    sr1="abcdefghijklmnopqrstuvwxyz"
    sr2="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    sr3="0123456789"
    src=sr1+sr1+sr2+sr2
    result=""
    str="LyjtL3fvnSRlo2xvKIjrK2ximSHkJ3ZhJ2Hto3x9"
    for a in range(1,27):
    for i in str:
    if i==" ":
    result=result+" "
    elif sr3.find(i)>-1:
    result=result+sr3[sr3.find(i)]
    else:
    j=src.find(i)
    if (j>-1):
    result=result+src[j+a]
    print result
  • 二维码生成脚本(misc)

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

    import Image
    import numpy as np

    def hex2bin(hexmat):
    binmattemp = [bin(m)[2:] for m in hexmat]
    rowlen = max([len(m) for m in binmattemp])
    binmat = [[0]+[int(b) for b in row.zfill(rowlen)] for row in binmattemp]

    print rowlen+1, 'x', len(binmat)
    for i in xrange(len(binmat)):
    print ''.join([str(b) for b in binmat[i]])

    return binmat, rowlen+1, len(binmat)

    def rm_col(binmat, col):
    return [row[:col]+row[col+1:] for row in binmat]


    def make_bw_img(binmat, w, h, outfilename, blackbit=0):

    bwmat = [[0 if b==blackbit else 255 for b in row] for row in binmat]

    imagesize = (w, h)
    img = Image.fromarray(np.uint8(np.array(bwmat)))
    img.save(outfilename)

    if __name__ == '__main__':
    hexmat = [0x00000000,
    0xff71fefe,
    0x83480082,
    0xbb4140ba,
    0xbb6848ba,
    0xbb4a80ba,
    0x83213082,
    # 0xff5556fe,
    0xff5556fe,
    0x00582e00,
    0x576fb9be,
    0x707ef09e,
    0xe74b41d6,
    0xa82c0f16,
    0x27a15690,
    0x8c643628,
    0xbfcbf976,
    0x4cd959aa,
    0x2f43d73a,
    0x5462300a,
    0x57290106,
    0xb02ace5a,
    # 0xef53f7fc,
    0xef53f7fc,
    0x00402e36,
    0xff01b6a8,
    0x83657e3a,
    0xbb3b27fa,
    0xbb5eaeac,
    0xbb1017a0,
    0x8362672c,
    0xff02a650,
    0x00000000]

    binmat, w, h = hex2bin(hexmat)
    binmat = rm_col(binmat, 22)
    binmat = rm_col(binmat, 7)
    make_bw_img(binmat, w, h, 'matrix_rmcol.png', blackbit=1)
  • 水印图片显示(misc)
    链接

  • 曼彻斯特编码解码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/user/bin/env python2
    # -*-coding:utf-8 -*-

    n=0x5555555595555A65556AA696AA6666666955
    flag=''
    bs='0'+bin(n)[2:]
    r=''
    def conv(s):
    return hex(int(s,2))[2:]
    for i in range(0,len(bs),2):
    if bs[i:i+2]=='01':
    r+='1'
    else:
    r+='0'
    for i in range(0,len(r),8):
    tmp=r[i:i+8][::-1]
    flag+=conv(tmp[:4])
    flag+=conv(tmp[4:])
    print flag.upper()
  • 图片base64编码转图片

    1
    2
    3
    4
    5
    6
    7
    #!/user/bin/env python2
    # -*-coding:utf-8 -*-
    import base64
    image="图片base64编码"
    fp=open("test.png","wb") //图片后缀根据所提供的图片的base64编码情况来写
    fp.write(base64.b64decode(image))
    fp.close()
  • 二进制数转ascii码

    1
    2
    3
    4
    5
    #!/user/bin/env python3
    # -*-coding:utf-8 -*-
    s='二进制字符串'
    for i in range(0,len(s),8):
    print (chr(int(s[i:i+8],2)),end='')
  • CRC32爆破