1

Crypto

Alice&Bob

p = 57092957057384230690303198761058034094859258539355954234059064085097060056186338893145278836857007868453350859297747381734217426552410127089962523253805231253327423

q = 2841175794376981485685944329309369604591631077159915516404228304178440077816194532730501118291350227769623123843923435156398000132729751621749907

e = 65537

c = "E2L+9hcy+HyDXll5Ai9qP97R+GzEObFSc1GWZCmgu/AT/PHlVcEgbZuNBJCV6+BY4sN4fuIQv/sBLe8Z9hvkMucAb3oeleGAohk+dzA6OfWY/GM1iFDBP+J83iK2zqZmDYeqx7Ot1y3RwI+PpXvN0QvAggA69EhNwnTDRGr8+E4="
import base64
import libnum
def egcd(a,b):
    if a == 0:
      return (b, 0, 1)
    else:
      g, y, x = egcd(b % a, a)
      return (g, x - (b // a) * y, y)
def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
      raise Exception('modular inverse does not exist')
    else:
      return x % m
n = p*q
d = modinv(e, (p-1)*(q-1))
enc = libnum.s2n(base64.b64decode(c))
m = pow(enc,d,n)
print libnum.n2s(m)
#flag{748814fd3070e914}

常见的对称加密

题目描述:
题目:常见的对称加密
内容:标准的对称加密发现S盒有问题

S:
[14, 13, 4, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7]
[0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8]
[4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0]
[15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13]
[15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10]
[3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5]
[0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15]
[13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9]
[10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8]
[13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1]
[13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7]
[1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12]
[7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15]
[13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9]
[10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4]
[3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14]
[2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9]
[14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6]
[4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14]
[11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3]
[12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11]
[10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8]
[9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6]
[4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13]
[4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1]
[13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6]
[1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2]
[6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12]
[13, 2, 4, 8, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7]
[1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2]
[7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8]
[2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11]

plaintext:
ec33e878b62ab8a5f8250d7156c719dd35916f1471a4c7217944cd89d2cfb7f9

key:
welcome

Reverse

Analysis

很简单的加密

strings = [0x98, 0x9E, 0x93, 0x99, 0xAD, 0x7B, 0xA0, 0xA0, 0x97, 0xA4, 
  0x7F, 0xA1, 0xA0, 0x99, 0xA1, 0x9E, 0x9B, 0x93, 0x91, 0x84, 
  0x77, 0xAF]
for i in range(len(strings)):
    flag += chr(strings[i] - 50)
print flag
#flag{InnerMongolia_RE}

ReM4

clipboard.png

7B56261B810D2145C20F

eZx

脱壳

key = [54,61,51,52,47,108,111,97,61,106,107,105,108,56,106,62,85,89,82,7,80,24]
print len(key)
flag = ""
for i in range(22):
  flag += chr(key[i]^(i+80))
print flag
#flag{996e3120e4a580d4}

pumpkin9
10 声望3 粉丝

学习要看到核心,抓住本质。 --EX


« 上一篇
整数溢出
下一篇 »
BCNSCTF writeup

引用和评论

0 条评论