apk文件,使用jadx打开即可
在主函数MainActivity中发现两串字符串
a = "ThisIsTheFlagHome"
b = "pvkq{m164675262033l4m49lnp7p9mnk28k75}"
可以看出,字符串a其实只是一个提示语句,字符串b就是flag了
下面有字符串b的加密操作,所以进行解密即可
原加密代码:
for (int i2 = 0; i2 < 38; i2++) {
if ((b[i2] < 'A' || b[i2] > 'Z') && (b[i2] < 'a' || b[i2] > 'z')) {
y[i2] = b[i2];
} else {
y[i2] = (char) (b[i2] + 16);
if ((y[i2] > 'Z' && y[i2] < 'a') || y[i2] >= 'z') {
y[i2] = (char) (y[i2] - 26);
}
}
}
解密代码:
b = "pvkq{m164675262033l4m49lnp7p9mnk28k75}"
flag = []
for i in range(38):
if 'Z' >= b[i] >= 'A' or 'z' >= b[i] >= 'a':
flag.append(chr(ord(b[i]) + 16))
if 'a' > flag[i] > 'Z' or flag[i] >= 'z':
flag[i] = chr(ord(flag[i]) - 26)
else:
flag.append(b[i])
print(''.join(flag))
#flag{c164675262033b4c49bdf7f9cda28a75}
此题除了写脚本之外,还有一种解法,这个加密过程是凯撒加密
我们可以在线解密
至于凯撒加密的原理,各位就自己了解吧,凯撒加密也是有偏移量这么一说的,可以写脚本爆破哦