【BUUCTF-Reverse】0x11.findit

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}

此题除了写脚本之外,还有一种解法,这个加密过程是凯撒加密

我们可以在线解密

至于凯撒加密的原理,各位就自己了解吧,凯撒加密也是有偏移量这么一说的,可以写脚本爆破哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值