Skip to content

Commit bd06b91

Browse files
committed
Participate SCTF 2018 Finals
1 parent 9c559de commit bd06b91

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+2008
-0
lines changed

SCTF/2018 Finals/baby_tpk/sctf.tpk

13.8 KB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="AuthorSignature">
2+
<SignedInfo>
3+
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></CanonicalizationMethod>
4+
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
5+
<Reference URI="bin%2Fsamsungctf">
6+
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
7+
<DigestValue>AVoE3U9uEdfVYErXMCA0BKvaezSBXrGBDf7xbyDR5J8=</DigestValue>
8+
</Reference>
9+
<Reference URI="shared%2Fres%2Fq.png">
10+
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
11+
<DigestValue>kflQSTsGWmyHMGGqiBfrptbfHi0JeDywu42nlkrKrQU=</DigestValue>
12+
</Reference>
13+
<Reference URI="tizen-manifest.xml">
14+
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
15+
<DigestValue>ld9R+XTg+cb9zeCSITHwZYTSBjfpQ/XoLLokOu6NG7Q=</DigestValue>
16+
</Reference>
17+
<Reference URI="#prop">
18+
<Transforms>
19+
<Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"></Transform>
20+
</Transforms>
21+
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
22+
<DigestValue>lpo8tUDs054eLlBQXiDPVDVKfw30ZZdtkRs1jd7H5K8=</DigestValue>
23+
</Reference>
24+
</SignedInfo>
25+
<SignatureValue>
26+
ai2gzfXywZfh8RuTm8HTgf+7TIekWIHjqUBFjr4Nfjqb0qj74i7voMLrA55tRbRpKl6kob1x7Xsh
27+
7StS3WRztKLvk+QRXYac9sQhnDV2NMcytqSm1BS1D+jowPXvtpsLqjigQcZpw7jJmq+e28XgxaWb
28+
fn2V6e+B9pkUAW0oqIo=
29+
</SignatureValue>
30+
<KeyInfo>
31+
<X509Data>
32+
<X509Certificate>
33+
MIICkzCCAXugAwIBAgIGAWOl+tMkMA0GCSqGSIb3DQEBBQUAMFYxGjAYBgNVBAoMEVRpemVuIEFz
34+
c29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4gRGV2
35+
ZWxvcGVycyBDQTAeFw0xMjExMDEwMDAwMDBaFw0xOTAxMDEwMDAwMDBaMA8xDTALBgNVBAMMBFND
36+
VEYwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAL8yj0casDkCYrXr+TkFgYQRq8AEqLReQTCu
37+
KdphTvty7LQoRibk5JwnMRVGl9XgjxWjBJcqYXrILapXGuTIm5M0k7f5GrW2LbsbQBPA3MbnQKFb
38+
0z7TNJFO21kcQCOvYUG28B8yUtKldU85MmWrPjslPps2M+adwKp+EvnqdlRXAgMBAAGjMjAwMAwG
39+
A1UdEwEB/wQCMAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMA0GCSqGSIb3DQEB
40+
BQUAA4IBAQBkAXXXkw0vU/2IUA/QDPC/0vcGVJnvlm5fitGx0drKBk1sYe2qgQx7f6hXK49xiOPK
41+
b80V1oIBRlfdwvmyFPes4PTBHZeLaHgAETLX077bgOXrba0gqsYd7z72msTi1+wTxrCqhUrqKIn6
42+
gp9r9Qm8m1iSXd6dtHo/4pXJUZ3p7rqUBucXKSNs+nNCSmL4p67/wrdNJSUaGHuKzImOuDdXG3x/
43+
CVsinsCcw2Ns3dg4kZpgdHfJGfgkr2oxZ+Hdutr7OqLGZXg2eGOaFKOtNaHzClZf8jyZIoxl5AmW
44+
HUnM6nu9onEzddLEcivsmGV7bWfSO8iIhfDDDp1T1ZkHmo1z
45+
</X509Certificate>
46+
<X509Certificate>
47+
MIIDOTCCAiGgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMRowGAYDVQQKDBFUaXplbiBBc3NvY2lh
48+
dGlvbjEaMBgGA1UECwwRVGl6ZW4gQXNzb2NpYXRpb24xHjAcBgNVBAMMFVRpemVuIERldmVsb3Bl
49+
cnMgUm9vdDAeFw0xMjAxMDEwMDAwMDBaFw0yNzAxMDEwMDAwMDBaMFYxGjAYBgNVBAoMEVRpemVu
50+
IEFzc29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4g
51+
RGV2ZWxvcGVycyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANVGhRGmMIUyBA7o
52+
PCz8Sxut6z6HNkF4oDIuzuKaMzRYPeWodwe9O0gmqAkToQHfwg2giRhE5GoPld0fq+OYMMwSasCu
53+
g8dwODx1eDeSYVuOLWRxpAmbTXOsSFi6VoWeyaPEm18JBHvZBsU5YQtgZ6Kp7MqzvQg3pXOxtajj
54+
vyHxiatJl+xXrHgcXC1wgyG3buty7u/Fi2mvKXJ0PRJcCjjK81dqe/Vr20sRUCrbk02zbm5ggFt/
55+
jIEhV8wbFRQpliobc7J4dSTKhFfrqGM8rdd54LYhD7gSI1CFSe16pUXfcVR7FhJztRaiGLnCrwBE
56+
dyTZ248+D4L/qR/D0axb3jcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOC
57+
AQEAnOXXQ/1O/QTDHyrmQDtFziqPY3xWlJBqJtEqXiT7Y+Ljpe66e+Ee/OjQMlZe8gu21/8cKklH
58+
95RxjopMWCVedXDUbWdvS2+CdyvVW/quT2E0tjqIzXDekUTYwwhlPWlGxvfj3VsxqSFq3p8Brl04
59+
1Gx5RKAGyKVsMfTLhbbwSWwApuBUxYfcNpKwLWGPXkysu+HctY03OKv4/xKBnVWiN8ex/Sgesi0M
60+
+OBAOMdZMPK32uJBTeKFx1xZgTLIhk45V0hPOomPjZloiv0LSS11eyd451ufjW0iHRE7WlpR6EvI
61+
W6TFyZgMpQq+kg4hWl2SBTf3s2VI8Ygz7gj8TMlClg==
62+
</X509Certificate>
63+
</X509Data>
64+
</KeyInfo>
65+
<Object Id="prop"><SignatureProperties xmlns:dsp="http://www.w3.org/2009/xmldsig-properties"><SignatureProperty Id="profile" Target="#AuthorSignature"><dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile"></dsp:Profile></SignatureProperty><SignatureProperty Id="role" Target="#AuthorSignature"><dsp:Role URI="http://www.w3.org/ns/widgets-digsig#role-author"></dsp:Role></SignatureProperty><SignatureProperty Id="identifier" Target="#AuthorSignature"><dsp:Identifier></dsp:Identifier></SignatureProperty></SignatureProperties></Object>
66+
</Signature>
13.8 KB
Binary file not shown.
Binary file not shown.
3.93 KB
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="DistributorSignature">
2+
<SignedInfo>
3+
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></CanonicalizationMethod>
4+
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
5+
<Reference URI="author-signature.xml">
6+
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
7+
<DigestValue>CSkGKnrxTdWY4XDJ9+X+NMDJWN2KoSrZ7q6oDRgIAk4=</DigestValue>
8+
</Reference>
9+
<Reference URI="bin%2Fsamsungctf">
10+
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
11+
<DigestValue>AVoE3U9uEdfVYErXMCA0BKvaezSBXrGBDf7xbyDR5J8=</DigestValue>
12+
</Reference>
13+
<Reference URI="shared%2Fres%2Fq.png">
14+
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
15+
<DigestValue>kflQSTsGWmyHMGGqiBfrptbfHi0JeDywu42nlkrKrQU=</DigestValue>
16+
</Reference>
17+
<Reference URI="tizen-manifest.xml">
18+
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
19+
<DigestValue>ld9R+XTg+cb9zeCSITHwZYTSBjfpQ/XoLLokOu6NG7Q=</DigestValue>
20+
</Reference>
21+
<Reference URI="#prop">
22+
<Transforms>
23+
<Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"></Transform>
24+
</Transforms>
25+
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
26+
<DigestValue>u/jU3U4Zm5ihTMSjKGlGYbWzDfRkGphPPHx3gJIYEJ4=</DigestValue>
27+
</Reference>
28+
</SignedInfo>
29+
<SignatureValue>
30+
b4NkgmEhkOa2bdmI33bjvdCGFcHZ5LIvdetbBB7eCfSOaq1VCzIRkJACQFPr/7sRTKigzITfNvrI
31+
NjKORPUeMWgKMrM867eE1ikpYeH2Lq5Rv9PXHM3NMtc++AOyUiomNGc4k38/gnT2rMoD6sC83yWh
32+
LjMVawo20TKNLqEBJaQ=
33+
</SignatureValue>
34+
<KeyInfo>
35+
<X509Data>
36+
<X509Certificate>
37+
MIICmzCCAgQCCQDXI7WLdVZwiTANBgkqhkiG9w0BAQUFADCBjzELMAkGA1UEBhMCS1IxDjAMBgNV
38+
BAgMBVN1d29uMQ4wDAYDVQQHDAVTdXdvbjEWMBQGA1UECgwNVGl6ZW4gVGVzdCBDQTEiMCAGA1UE
39+
CwwZVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTEkMCIGA1UEAwwbVGl6ZW4gUHVibGljIERpc3Ry
40+
aWJ1dG9yIENBMB4XDTEyMTAyOTEzMDMwNFoXDTIyMTAyNzEzMDMwNFowgZMxCzAJBgNVBAYTAktS
41+
MQ4wDAYDVQQIDAVTdXdvbjEOMAwGA1UEBwwFU3V3b24xFjAUBgNVBAoMDVRpemVuIFRlc3QgQ0Ex
42+
IjAgBgNVBAsMGVRpemVuIERpc3RyaWJ1dG9yIFRlc3QgQ0ExKDAmBgNVBAMMH1RpemVuIFB1Ymxp
43+
YyBEaXN0cmlidXRvciBTaWduZXIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALtMvlc5hENK
44+
90ZdA+y66+Sy0enD1gpZDBh5T9RP0oRsptJv5jjNTseQbQi0SZOdOXb6J7iQdlBCtR343RpIEz8H
45+
mrBy7mSY7mgwoU4EPpp4CTSUeAuKcmvrNOngTp5Hv7Ngf02TTHOLK3hZLpGayaDviyNZB5PdqQdB
46+
hokKjzAzAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAvGp1gxxAIlFfhJH1efjb9BJK/rtRkbYn9+Ez
47+
GEbEULg1svsgnyWisFimI3uFvgI/swzr1eKVY3Sc8MQ3+Fdy3EkbDZ2+WAubhcEkorTWjzWz2fL1
48+
vKaYjeIsuEX6TVRUugHWudPzcEuQRLQf8ibZWjbQdBmpeQYBMg5x+xKLCJc=
49+
</X509Certificate>
50+
<X509Certificate>
51+
MIICtDCCAh2gAwIBAgIJAMDbehElPNKvMA0GCSqGSIb3DQEBBQUAMIGVMQswCQYDVQQGEwJLUjEO
52+
MAwGA1UECAwFU3V3b24xDjAMBgNVBAcMBVN1d29uMRYwFAYDVQQKDA1UaXplbiBUZXN0IENBMSMw
53+
IQYDVQQLDBpUVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTEpMCcGA1UEAwwgVGl6ZW4gUHVibGlj
54+
IERpc3RyaWJ1dG9yIFJvb3QgQ0EwHhcNMTIxMDI5MTMwMjUwWhcNMjIxMDI3MTMwMjUwWjCBjzEL
55+
MAkGA1UEBhMCS1IxDjAMBgNVBAgMBVN1d29uMQ4wDAYDVQQHDAVTdXdvbjEWMBQGA1UECgwNVGl6
56+
ZW4gVGVzdCBDQTEiMCAGA1UECwwZVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTEkMCIGA1UEAwwb
57+
VGl6ZW4gUHVibGljIERpc3RyaWJ1dG9yIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDe
58+
OTS/3nXvkDEmsFCJIvRlQ3RKDcxdWJJp625pFqHdmoJBdV+x6jl1raGK2Y1sp2Gdvpjc/z92yzAp
59+
bE/UVLPh/tRNZPeGhzU4ejDDm7kzdr2f7Ia0U98K+OoY12ucwg7TYNItj9is7Cj4blGfuMDzd2ah
60+
2AgnCGlwNwV/pv+uVQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBACqJ
61+
KO33YdoGudwanZIxMdXuxnnD9R6u72ltKk1S4zPfMJJv482CRGCI4FK6djhlsI4i0Lt1SVIJEed+
62+
yc3qckGm19dW+4xdlkekon7pViEBWuyHw8OWv3RXtTum1+PGHjBJ2eYY4ZKIpz73U/1NC16sTB/0
63+
VhfnkHwPltmrpYVe
64+
</X509Certificate>
65+
</X509Data>
66+
</KeyInfo>
67+
<Object Id="prop"><SignatureProperties xmlns:dsp="http://www.w3.org/2009/xmldsig-properties"><SignatureProperty Id="profile" Target="#DistributorSignature"><dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile"></dsp:Profile></SignatureProperty><SignatureProperty Id="role" Target="#DistributorSignature"><dsp:Role URI="http://www.w3.org/ns/widgets-digsig#role-distributor"></dsp:Role></SignatureProperty><SignatureProperty Id="identifier" Target="#DistributorSignature"><dsp:Identifier></dsp:Identifier></SignatureProperty></SignatureProperties></Object>
68+
</Signature>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<manifest xmlns="http://tizen.org/ns/packages" api-version="2.3.1" package="samsungctf" version="1.0.0">
3+
<profile name="mobile"/>
4+
<ui-application appid="samsungctf" exec="samsungctf" multiple="false" nodisplay="false" taskmanage="true" type="capp">
5+
<label>TPK</label>
6+
<icon>q.png</icon>
7+
<metadata key="iv" value="aXZpc2hlcmU="/>
8+
</ui-application>
9+
</manifest>

SCTF/2018 Finals/baby_tpk/solver.py

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from base64 import b64decode
2+
from binascii import unhexlify
3+
from Crypto.Cipher import CAST
4+
5+
key = 'samsungctf_TPK'
6+
iv = b64decode('aXZpc2hlcmU=')
7+
8+
data = '''
9+
5C E0 B9 F2 C4 1C 7D 73 68 F7 A5 F6 98 49 BF E1
10+
CF 5D 82 B2 59 D1 41 07 60 75 94 EC 3A D1 35 2B
11+
16 80 D0 C7 39 F8 B1 28 12 F9 6C 78 DE E4 9F BB
12+
'''.replace(' ', '').replace('\n', '')
13+
data = unhexlify(data)
14+
15+
obj = CAST.new(key, CAST.MODE_OFB, iv)
16+
print obj.encrypt(data)

SCTF/2018 Finals/lcg/LCG.py

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import signal
2+
import random
3+
4+
5+
class LCG:
6+
def __init__(self, s, k):
7+
self.init_state = s
8+
9+
k1, k2, k3 = k
10+
self.x = (k1 - 0xdeadbeef) % k3
11+
self.y = (k1 * 0xdeadbeef) % k3
12+
self.z = k2
13+
self.m = k3
14+
15+
def __iter__(self):
16+
self.index = 0
17+
self.size = 32
18+
self.s0, self.s1 = self.init_state
19+
return self
20+
21+
def __next__(self):
22+
if self.index >= self.size:
23+
raise StopIteration
24+
25+
self.index += 1
26+
s0, s1 = self.s0, self.s1
27+
self.s0, self.s1 = s1, (self.x * s1 + self.y * s0 + self.z) % self.m
28+
return self.s1
29+
30+
31+
if __name__ == '__main__':
32+
signal.alarm(60)
33+
34+
s0, s1, k1, k2, k3 = [random.getrandbits(64) for i in range(5)]
35+
36+
s = (s0, s1)
37+
k = (k1, k2, k3)
38+
39+
cnt = 16
40+
for i, v in enumerate(LCG(s, k)):
41+
guess = int(input())
42+
if guess == v:
43+
cnt += 1
44+
else:
45+
cnt -= 1
46+
47+
if i <= 16:
48+
print(v)
49+
50+
if cnt >= 16:
51+
with open('flag.txt', 'r') as f:
52+
print(f.read())

SCTF/2018 Finals/lcg/solver.py

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
from pwn import *
2+
3+
4+
def egcd(a, b):
5+
if a == 0:
6+
return (b, 0, 1)
7+
g, y, x = egcd(b % a, a)
8+
return (g, x - (b//a) * y, y)
9+
10+
11+
def modinv(a, m):
12+
g, x, y = egcd(a, m)
13+
if g != 1:
14+
raise Exception('No modular inverse')
15+
return x % m
16+
17+
18+
def guess(num):
19+
p.sendline(str(num))
20+
return int(p.recvline())
21+
22+
p = remote('lcg.eatpwnnosleep.com', 12345)
23+
24+
d = 0xdeadbeef
25+
N = 16
26+
27+
X = []
28+
for i in range(N):
29+
X.append(guess(0))
30+
31+
Y = []
32+
for i in range(1, N):
33+
Y.append(X[i] + d * X[i-1])
34+
35+
Z = []
36+
for i in range(1, N - 1):
37+
Z.append(Y[i] - Y[i-1])
38+
39+
m = None
40+
for i in range(2, N - 2):
41+
m0, m1, m2 = Z[i-2], Z[i-1], Z[i]
42+
m_next = m1*m1 - m0*m2
43+
if m is None:
44+
m = m_next
45+
else:
46+
m = egcd(m, m_next)[0]
47+
if m < 0:
48+
m = -m
49+
log.success('M: 0x%x' % m)
50+
51+
k = (Y[2] - Y[1]) * modinv(Y[1] - Y[0], m) % m
52+
log.success('K: 0x%x' % k)
53+
54+
z = (Y[1] - k * Y[0]) % m
55+
log.success('Z: 0x%x' % z)
56+
57+
s0 = X[N - 2]
58+
s1 = X[N - 1]
59+
for i in range(16):
60+
num = ((k - d) * s1 + k * d * s0 + z) % m
61+
p.sendline(str(num))
62+
s0, s1 = s1, num
63+
64+
p.recvline()
65+
print p.recvline()

SCTF/2018 Finals/mq/MQ.py

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
from random import randint
2+
from binascii import hexlify
3+
import sys
4+
5+
6+
def wline(msg=''):
7+
sys.stdout.write(msg + '\n')
8+
sys.stdout.flush()
9+
10+
11+
class MQpoly:
12+
def __init__(self, terms, p, n):
13+
self.terms = terms
14+
self.p = p
15+
self.n = n
16+
17+
def apply(self, vals):
18+
if len(vals) != self.n:
19+
raise ValueError('Values for n variables should be given')
20+
21+
quad, uni, c = self.terms
22+
23+
ret = 0
24+
for i in range(self.n):
25+
for j in range(i, self.n):
26+
ret += quad[i][j] * vals[i] * vals[j]
27+
ret %= self.p
28+
29+
for i in range(self.n):
30+
ret += uni[i] * vals[i]
31+
ret %= self.p
32+
33+
ret += c
34+
ret %= self.p
35+
36+
return ret
37+
38+
def __str__(self):
39+
quad, uni, c = self.terms
40+
41+
st_terms = []
42+
for i in range(self.n):
43+
for j in range(i, self.n):
44+
v = quad[i][j]
45+
if v != 0:
46+
st_terms.append('%dx%dx%d' % (v, i+1, j+1))
47+
48+
for i in range(self.n):
49+
v = uni[i]
50+
if v != 0:
51+
st_terms.append('%dx%d' % (v, i+1))
52+
53+
if c != 0:
54+
st_terms.append('%d' % (c,))
55+
56+
return ' + '.join(st_terms)
57+
58+
@classmethod
59+
def random_element(cls, p, n):
60+
quad = [[randint(0, p-1) if j <= i else None for j in range(n)]
61+
for i in range(n)]
62+
63+
for i in range(n):
64+
for j in range(i+1, n):
65+
quad[i][j] = quad[j][i]
66+
67+
uni = [randint(0, p-1) for i in range(n)]
68+
c = randint(0, p-1)
69+
70+
terms = (quad, uni, c)
71+
return cls(terms, p, n)
72+
73+
74+
if __name__ == '__main__':
75+
p = 131
76+
n = 32
77+
78+
with open('flag.txt', 'rb') as f:
79+
flg = f.read()
80+
81+
with open('/dev/urandom', 'rb') as f:
82+
flg += f.read(n - len(flg))
83+
84+
mq = MQpoly.random_element(p, n)
85+
wline(str(mq))
86+
for i in range(n+1):
87+
lst_1 = sys.stdin.buffer.read(n)
88+
lst_2 = [(b1 + b2) % p for b1, b2 in zip(lst_1, flg)]
89+
clue = [mq.apply(lst_1), mq.apply(lst_2)]
90+
91+
wline(hexlify(bytes(clue)).decode())
92+

0 commit comments

Comments
 (0)