baby_tree
题目说是啥语法混淆树
一开始看到一堆的数字,感觉像是定义数组,用notepad的高亮功能标记一下
一个if 条件,不知道干啥的
下面这一坨也看不出是个啥
继续往下翻,这里里定义了个key的值
最后有三个print,应该有一个是输出成功啥的
然后分析上面的代码,上面就是个函数,传了两个string类型进来
这里定义了一个b,用了而且还用了个list拆分,上下两段表示的应该是一个意思(类似一个说明,一个执行?)
下面有个k也是一样的,不过拆分的是keyvalue
下面定义了四个变量 r0 ,r1,r2,r3
一个for循环,初值为0,末尾是到 len() - 4
这里是个赋值的地方,四个四个赋值
每一个load_expr都是加载一个数,这个extension定义的是操作符号,这里是加,有两个值 i 和 1 ,所以这里是b[i+1]
上面还有个b[i],下面两个是 b[i+2] ,b[i+3] 所以
r0 = b[i]
r1 = b[i+1]
r2 = b[i+2]
r3 = b[i+3]
继续往下,这里有个括号 合起来是 b[(i + 0)]
然后根据下面的缩进关系可以得到r2 ^ ((k[0] +(r0 >> 4))& 0xff)
推测是个赋值语句 b[i+0] = r2 ^ ((k[0] +(r0 >> 4))& 0xff)
后面的语句都差不多,写出来是这样
r0, r1, r2, r3 = b