随手写的用来应付提交的WP╮(╯_╰)╭想想其实也没啥需要细写的,有不懂的童鞋在评论里留言吧~我会尽快回复的XD见谅啦
easy_py
直接反编译提示元组下标越界
用010模版看了一下,几个data都没有问题
那么问题只可能出在code里了
简单扫了一下发现头部有一个64 23 33,这是指令(64)+数据(23 33)的格式。由于py的字节码中引用data都是通过下标来操作的,一般来讲是从0开始。观察其他几个64后的值都是00 00,00 01一类的,所以这里大概率就是越界的数值了。以及这个23 33比较嘲讽233
先将它改成00 00再次进行反编译,发现能出现完整的反汇编了。但是还是无法解析成源代码
头部的反汇编是几个蜜汁跳转,以及那个下标越界的指令被跳过了,保证了pyc能正确执行
而这蜜汁跳转是正常编译中不会出现的,因此无法反编译
将前9个字节删去即可(注意还有code段的长度0xb2也要相应的减小)
cmp = [0, 10, 7, 1, 29, 14, 7, 22, 22, 31, 57, 30, 9, 52, 27]
flag = raw_input()
m = 0
for i in flag:
i = ~ord(i) & 102 | ord(i) & -103
if i == cmp[m]:
m = -(-m + -1)
continue
else:
print 'wrong'
exit()
print 'right'
很简单的逐字节变换
cmp &