esaypyc

前面都是正常的py逆向,不过多赘述

有意思的初次碰到rsa算法,虽然是入门的

基础的exp附上

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import gmpy2
from Crypto.Util.number import long_to_bytes

q = 189239861511125143212536989589123569301
p = 386123125371923651191219869811293586459

e = 65537
c = 28767758880940662779934612526152562406674613203406706867456395986985664083182
# n = 73069886771625642807435783661014062604264768481735145873508846925735521695159
n = q * p
# print(n)
d = gmpy2.invert(e, (p - 1) * (q - 1))
print("d=", d)
m = pow(c, d, n)
print(m)
print(long_to_bytes(m))

需要re的代码

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 3.7

from Crypto.Util.number import *
flag = b'************************************'
m = bytes_to_long(flag)
e = 0xE6B1BEE47BD63F615C7D0A43C529D219
q = 0x861261B1C4F2453537AB548A61634A53964840E48A91BA594A11EDBAEF27ED205CC3B2AAD887BABE05343F0CB6121A6A2AA1E706E85291C3A8471E5F3AFAD72F
p = 0x9D1D8B0765EC685C2993291084802593252E12334C5B7E543EF952B864727511499E52D9F61DB84D55C3FB31CABD15A9E7E0E274FBED7C6F882E5550302B0BBB
c = 0x1F0FCF30222579024F25DD47C9B1F2FCA131312812CB4614BBFAB1860D3C503FA73E10BCD549368729FED443DB72636D26419F2B1A1DE8DCFF67E675420C8071E0980FEA34C22C0B6F79374EF6056EDCAA393CAEFF223A4986086C1C528CBCB369CB06E65E39C5C10774D174189BE0242B40C39F9159ADAEBB9E0D2AC411CA7E

这里已经知道pqce了,基本都知道,改一下数据即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import gmpy2
from Crypto.Util.number import long_to_bytes

q = 0x861261B1C4F2453537AB548A61634A53964840E48A91BA594A11EDBAEF27ED205CC3B2AAD887BABE05343F0CB6121A6A2AA1E706E85291C3A8471E5F3AFAD72F
p = 0x9D1D8B0765EC685C2993291084802593252E12334C5B7E543EF952B864727511499E52D9F61DB84D55C3FB31CABD15A9E7E0E274FBED7C6F882E5550302B0BBB

e = 0xE6B1BEE47BD63F615C7D0A43C529D219
c = 0x1F0FCF30222579024F25DD47C9B1F2FCA131312812CB4614BBFAB1860D3C503FA73E10BCD549368729FED443DB72636D26419F2B1A1DE8DCFF67E675420C8071E0980FEA34C22C0B6F79374EF6056EDCAA393CAEFF223A4986086C1C528CBCB369CB06E65E39C5C10774D174189BE0242B40C39F9159ADAEBB9E0D2AC411CA7E

n = q * p
print("n=",n,end='\n')
d = gmpy2.invert(e, (p - 1) * (q - 1))
print("d=", d,end='\n')
m = pow(c, d, n)
print(m)
print(long_to_bytes(m))

1722237088242-0f503ee1-3dde-44f6-b917-8f7c3af7a449.png

更新: 2024-07-29 15:12:40
原文: https://www.yuque.com/chaye-apqbl/vsc85q/rxr69tzgodtk8pgy


http://example.com/2026/01/19/RE/例题/NSSCTF/esaypyc/
Author
chaye
Posted on
January 19, 2026
Licensed under