一.findit
1.得到apk文件,使用jeb打开,tab反编译,在MainActivitySource中发现关键词
2.在后面发现一串跟flag很像的字串
3.简单看一下后面的代码,发现是将后面的字串进行某种加密解密处理,把字串弄下来
点击查看代码
str = ['p', 'v', 'k', 'q', '{', 'm', '1', '6', '4', '6', '7', '5', '2', '6', '2', '0', '3', '3', 'l', '4', 'm', '4', '9', 'l', 'n', 'p', '7', 'p', '9', 'm', 'n', 'k', '2', '8', 'k', '7', '5', '}']
for i in str:
print(i,end='')
pvkq{m164675262033l4m49lnp7p9mnk28k75}
4.凯撒解密得到flag
flag{c164675262033b4c49bdf7f9cda28a75}
二.rsa
1.得到一个key文件和一个enc文件,key文件010打开,发现是公钥
2.使用公钥分析网站:http://www.hiencode.com/pub_asys.html
3.得到n、e,分解n,网站:http://www.factordb.com/
4.得到p、q,使用脚本得到d
81176168860169991027846870170527607562179635470395365333547868786951080991441
点击查看代码
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))
三、[ACTF新生赛2020]rome
1.查壳,无壳,IDA(非64)打开
2.shiftF12查找字符,找到关键字符
3.点进函数,审计一下函数,发现flag的头ACTF{}
4.可以发现主要的加密函数就是两个while函数
5.简单处理一下伪代码
点击查看代码
while (v12[17] <= 15 )
{
if (v1 + v12[17]) > 64 && v1 + v12[17]) <= 90 )
(v1 + v12[17]) = (v1 + v12[17]) - 51) % 26 + 65;
if (v1 + v12[17]) > 96 && v1 + v12[17]) <= 122 )
(v1 + v12[17]) = (v1 + v12[17]) - 79) % 26 + 97;
++v12[17];
}
v12[17] = 0;
while (v12[17] <= 15 )
{
result = v12[v12[17]];
if (v1 + v12[17]) != result )
return result;
++v12[17];
}
6.直接按照伪代码的加密方式写个脚本
点击查看代码
v12 = "Qsw3sj_lz4_Ujw@l"
v12 = list(v12)
flag = ''
for i in range(16):
for j in range(128):
x = j
if chr(x).isupper():
x = (x-51)%26+65
if chr(x).islower():
x = (x-79)%26+97
if chr(x) == v12[i]:
flag += chr(j)
print(flag)
7.得到的就是flag
flag{Cae3ar_th4_Gre@t}
四、[FlareOn4]login
1.得到一个html一个txt,用VS打开html,发现这个的原理就是一个if判断rotFlag,改一下代码,在if前面加一句alert(rotFlag)回显flag
2.进入网页,在框内输入源码中的字串
[email protected]
3.得到的回显中的内容就是flag
flag{[email protected]}
标签:gmpy2,记录,v12,代码,chr,BUU,RE,flag,print
From: https://www.cnblogs.com/120211P/p/17005691.html