reverse-for-the-holy-grail-350

这个题 其实算是比较简单的 加密过程也很简单明了

加密还有 check 函数 全部都在stringMod 这个函数里面

先检查  3的倍数的下标是不是等于firstcha里面的值  然后让 我们输入的值异或 (其实异或的值固定的)

然后下面就是又一次的check  其实慢慢分析也是比较简单明了的 然后我们用脚本算出答案

#!/usr/bin/python3
#coding:utf-8

firstchar =   [0x41,  0x69,  0x6e,  0x45,  0x6f,  0x61]
thirdchar =   [0x2ef, 0x2c4, 0x2dc, 0x2c7, 0x2de, 0x2fc]
masterarray = [0x1d7, 0xc,   0x244, 0x25e, 0x93,  0x6c]

xor_number=0x29a
xor_array=[]
for i in range(18):
	xor_array.append(xor_number)
	xor_number+=xor_number%5

flag="tuctf{"
for i in range(6):
	one=firstchar[i]
	three=thirdchar[i] ^ xor_array[(i*3) + 2]
	for j in range(256):
		if masterarray[i]==(j^xor_array[i*3+1])*(one^xor_array[i*3])%thirdchar[i]:
			flag+=chr(one)+chr(j)+chr(three)
			break

flag+="}"
print(flag)

flag 就直接出来了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值