BBUCTF luck_guy题解

ida打开,找到主函数,发现题目让你输入幸运数字获得falg,打开patch_me()函数,发现如果你输入的数是偶数,就可以得到flag,再进入get_flag()函数,函数会生成一个随机数然后对200取余,有六种情况,第一种,把s和f1拼接,双击发现f1是GXY{do_not_,然后再把f2和s拼接,而f2未知,继续往下看,第四种情况是给s赋值,但是由于ida会把储存数据到过来所以应该把s倒过来才是真正的s,然后再把s给f2,第五种情况对f2处理,若索引为奇数,把ASCLL码值减2,若为偶数,把ASCLL码值减1,然后又回到第一种情况,因为随机数会随着时间产生其实就是一个循环6次的结构,把处理后的f2 f1接起来就是flag

l1=[0x69,0x63,0x75,0x67,0x60,0x6F,0x66,0x7F]
for j in range(0,8):
    if(j % 2 == 1):
        l1[j]=l1[j]-2
    else:
        l1[j]=l1[j]-1
print(l1)
for j in range(0,8):
    l1[j]=chr(l1[j])
print(l1)
s=''.join(l1)
print(s)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值