import gmpy2
p =gmpy2.mpz(285960468890451637935629440372639283459)
q =gmpy2.mpz(304008741604601924494328155975272418463)
e =gmpy2.mpz(65537)
phi_n= (p - 1) * (q - 1)
d = gmpy2.invert(e, phi_n)
print("d is:")
print (d)
5.已知pqend,使用脚本解密flag.enc文件,得到flag
点击查看代码
import rsa
e = 65537
p = 285960468890451637935629440372639283459
q = 304008741604601924494328155975272418463
n = 86934482296048119190666062003494800588905656017203025617216654058378322103517
d = 81176168860169991027846870170527607562179635470395365333547868786951080991441
key = rsa.PrivateKey(n,e,d,q,p)
with open("./flag.enc","rb") as f:
f = f.read()
print(rsa.decrypt(f,key))
v12 = "Qsw3sj_lz4_Ujw@l"
v12 = list(v12)
flag = ''for i in range(16):
for j in range(128):
x = j
ifchr(x).isupper():
x = (x-51)%26+65ifchr(x).islower():
x = (x-79)%26+97ifchr(x) == v12[i]:
flag += chr(j)
print(flag)
#include<stdio.h>#include<string.h>#include<stdlib.h>intmain(){
int ls[20] = {0,198,232,816,200,1536,300,6144,984,51200,570,92160,1200,565248,756,1474560,800,6291456,1782,65536000};
for (int i = 1; i <= 19; ++i)
{
if (i & 1)
printf("%c", (unsignedint)(ls[i] >> i));
elseprintf("%c", (unsignedint)(ls[i] / i ));
}
}
base64_table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"base64_table = list(base64_table)
for i in range(10):
v1 = base64_table[i]
base64_table[i] = base64_table[19 - i]
result = 19 - i
base64_table[result] = v1
for i in base64_table:
print(i,end='')
flag = [0 for x in range (0,34)]
ls3 = []
ls1 = [0x9, 0x0A, 0x0F, 0x17, 0x7, 0x18, 0x0C, 0x6, 0x1, 0x10, 0x3, 0x11, 0x20,0x1D, 0x0B, 0x1E, 0x1B, 0x16, 0x4, 0x0D, 0x13, 0x14, 0x15, 0x2, 0x19,0x5, 0x1F, 0x8, 0x12, 0x1A, 0x1C, 0x0E, 0]
ls2 = [0x67,0x79,0x7B,0x7F,0x75,0x2B,0x3C,0x52,0x53,0x79,0x57,0x5E,0x5D,0x42,0x7B,0x2D,0x2A,0x66,0x42,0x7E,0x4C,0x57,0x79,0x41,0x6B,0x7E,0x65,0x3C,0x5C,0x45,0x6F,0x62,0x4D,0]
for i in range(33):
ls3.append(ls2[i] ^ ls1[i])
flag[ls1[i]] = ls3[i]
for i in flag:
print(chr(i),end='')
4.得到flag
MRCTF{Tr4nsp0sltiON_Clph3r_1s_3z}
十三、Youngter-drive
1.查壳,UPX,kali脱壳
2.IDA(非64)打开,shiftF12查找关键字串,进入函数
3.主要有用的函数是__cdecl sub_411940(),用到的两个字串数组追踪可得到
4.贴一个大佬的脚本
点击查看代码
off_418000 = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm"
off_418004 = "TOiZiZtOrYaToUwPnToBsOaOapsyS"
flag=''for i inrange(len(off_418004)):
if i %2 == 0:
flag += off_418004[i]
continuefor j,k inenumerate(off_418000):
if off_418004[i] == k:
ifchr(j+38).isupper():
flag += chr(j+38)
else:
flag += chr(j+96)
print(flag)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】