关于 python xor 的脚本

IDA 打开看看

找到 main 函数,我们看到有异或字符,和 global 比较,相同的话就获得 flag

第 9 行得知 flag 的长度为 33

第 13 行比较 v6 和 global 处存放的前 31 位字符是否相同;相同则输出 success

从 main 函数里面可以得到 V6 的处理方式为 v6 [i] 等于 v6 [i] 原来的值与 v6 [i-1] 按位异或.

查看 global 字符串

编写解密脚本

s = ['f',10,'k',12,'w&O.@',17,'x',13,'Z;U',17,'p',25,'F',31,'v"M#D',14,'g',6,'h',15,'G2O',0]
ss = 'fkw&O.@xZ;UpFv"M#DghG2O'
x = "f"
a = [102, 10, 107, 12, 119, 38, 79, 46, 64, 17, 120, 13, 90, 59, 85, 17, 112, 25, 70, 31, 118, 34, 77, 35, 68, 14, 103, 6, 104, 15, 71, 50, 79 ,0]  #字符串转换成 10 进制
for i in range(1,len(a)):
	x += chr(a[i]^a[i-1]) #对应 v6
print(x)

拿到 flag: flag{QianQiuWanDai_YiTongJiangHu}

参考

https://www.runoob.com/python/python-operators.html
https://blog.csdn.net/weixin_44731100/article/details/89156141

更新于

请我喝[茶]~( ̄▽ ̄)~*

1sme 微信支付

微信支付