Buuctf xor 解题记录

1.下载解压之后发现是个xor文件,没见过,不过我还是选择查壳

2.嗯。。。啥都没查到,但是看到是64bit,那就直接ida64bit打开喽

3.发现有main函数,先看看主函数,f5查看伪代码

4.大概读了一下代码,发现还需要找一下global,双击寻找一下,然后就发现了

global的内容

5.将global的数据导出,shift+e

6.主函数中的代码意思是将输入的33个字符串分别和前一个异或后和global的前0x21个字符对比,因此我们直接编写脚本

a=[

  0x66, 0x0A, 0x6B, 0x0C, 0x77, 0x26, 0x4F, 0x2E, 0x40, 0x11,

  0x78, 0x0D, 0x5A, 0x3B, 0x55, 0x11, 0x70, 0x19, 0x46, 0x1F,

  0x76, 0x22, 0x4D, 0x23, 0x44, 0x0E, 0x67, 0x06, 0x68, 0x0F,

  0x47, 0x32, 0x4F, 0x00

]

flag=chr(a[0])

i=1

while True :

    if i<len(a):

        flag+=chr(a[i]^a[i-1])

        i+=1

    else:

        break

print(flag)

7.得到flag

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值