目录
[GDOUCTF 2023]easy_pyc
pyc在线反编译python反编译 - 在线工具 (tool.lu)
已知 pqec求m,套用密码学模板
import gmpy2
import binascii
e = 306645347334662727966285107364291531289
q = 7021910101974335245794950722131367118195509913680915814438898999848788125908122655583911434165700354149914056221915541094395668546921268189522005629523759
p = 8228801334907462855397256098699556584084854642543205682719705217859576250443629616812386484797164506834582095674143447181804355696220642775619711451990971
c = 21812306272967730147845738706030680242331165675981994115949615844012361551700506020612445969402056602389411244248745130826969002161047213415607978602535719418999319494842608994479027676787499235277662156571617957720793923983451286566879014875330118016740706736991981355194846993958405444652507211603807160958
# 计算私钥 d
phi = (p - 1) * (q - 1)
d = gmpy2.invert(e, phi)
# 解密 m
m = gmpy2.powmod(c, d, p * q)
print(binascii.unhexlify(hex(m)[2:]))
[GWCTF 2019]xxor
输入六个数,for ( j = 0; j <= 2; ++j )外循环三次
sub_400686(&dword_601078, &unk_601060)函数 tea算法,找到key,delta,内循环64次
(unsigned int)sub_400770(v7) z3方程组
from z3 import *
s=Solver()
a1=[Int('a[' + str(i) + ']') for i in range(6)]
for i in range(6):
s.add(a1[2] - a1[3] == 2225223423)
s.add(a1[3] + a1[4] == 4201428739)
s.add(a1[2] - a1[4] == 1121399208)
s.add(a1[0] == -548868226)
s.add(a1[5] == -2064448480)
s.add(a1[1] == 550153460)
if s.check()==sat:
print()
print(s.model())
Key
#include <stdio.h>
#include <stdint.h>
int main() {
uint32_t key[4] = { 2, 2, 3, 4 };
uint32_t a[6] = { -548868226, 550153460, 3774025685, 1548802262, 2652626477, -2064448480 };
unsigned int v5;
unsigned int v3;
unsigned int v4;
for (int j = 0; j <= 4; j += 2)
{
v3 = a[j];
v4 = a[j + 1];
v5 = 1166789954 * 64;
for (int i = 0; i < 64; i++) {
v4 -= ((v3 + v5 + 20) ^ ((v3 << 6) + key[2]) ^ (v3 >> 9) + key[3]) ^ 0x10;
v3 -= ((v4 + v5 + 11) ^ ((v4 << 6) + key[0]) ^ (v4 >> 9) + key[1]) ^ 0x20;
v5 -= 1166789954;
}
a[j] = v3;
a[j + 1] = v4;
}
for (int i = 0; i < 6; i++)
{
printf("%x", a[i]);
}
return 0;
}
在线hex转字符
[MoeCTF 2022]checkin
flag直接喂嘴里
[LitCTF 2023]程序和人有一个能跑就行了
流程图中发现两组数据
F5反编译