BUU-[FlareOn3]Challenge1

查壳

无壳

IDA

逻辑简单,Str1和Str2(已知)相等则正确。而Str1是输入,在函数sub_401260处进行了变换。

在这里插入图片描述

sub_401260:

看到连续的位移和&运算是头疼且熟悉的。最近自己写了下base64,在学的过程中看到别人的base64代码和这几分神似。所以猜测这里是base相关加密。

在这里插入图片描述

进入反复出现的byte_413000:

YXABCDEFGHIJKLMNOPQRSTUVWzyxabcdefghijklmnopqrstuvw0123456789+/

太熟悉了,就是base64表换了顺序。直接用前几天写好的base64解密脚本,用这个table换掉标准table应该就可以了。

EXP

table='ZYXABCDEFGHIJKLMNOPQRSTUVWzyxabcdefghijklmnopqrstuvw0123456789+/'
arr=input('Base64 to Text,Base64:')
byte_code=''
origin_code=''
origin_str=''
for s in arr:
    if(s=='='):
        byte_code=list(byte_code)
        byte_code.pop(-1)
        byte_code.pop(-1)
        byte_code=(''.join(byte_code))
    else:
        byte_code+="{0:0>6}".format(format(table.find(s),'b'))
count=0
for s in byte_code:
    origin_code+=s
    count+=1
    if(count%8==0):
        origin_str+=chr(int(origin_code,2))
        origin_code=''
print(origin_str)

flag

flag{sh00ting_phish_in_a_barrel@flare-on.com}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值