babymips
注意数据的处理
这里出现位运算,大有可能是高低位进行运算了
这里有一道类似的题目:
[WEEK1]easy_re - 努力的大魔王 - 博客园 (cnblogs.com)

但是这里写出逆向代码就不对了,看了wp才知道要用 &0xFF 来限制每个操作后的字符的位数为8位
为什么8位?因为v1是char类型,只有一个字节(8位)

所以wp为:
key1="Q|j{g" #将字符串 key1 中的每个字符转换为其 ASCII 值,并将这些 ASCII 值存储在一个列表 flag 中 flag=list(map(ord,key1)) flag+=[82, 253, 22, 164, 137, 189, 146, 128, 19, 65, 84, 160, 141, 69, 24, 129, 222, 252, 149, 240, 22, 121, 26, 21, 91, 117, 31] for a in range(5,32,1): if (a&1)!=0: flag[a]=((flag[a]<<2)|(flag[a]>>6))&0xFF else: flag[a]=((flag[a]>>2)|(flag[a]<<6))&0xFF for i in range(32,): flag[i]=chr(flag[i]^(32-i)) print(''.join(flag))

浙公网安备 33010602011771号