Reverse
martricks
main函数中接收输入以后将input和一个字符串异或一下存入savedregs中
这里7*(i_23/7)+i_23%7
这种写法实际上还是i_23,只不过表示成了第x行y列的形式(7个元素/行)
两个数组分别存放在了savedregs-192和savedregs-128中
下面两层嵌套循环,中间进行了一个累加的运算
关键是箭头所指向的积的累加
实际上就是矩阵相乘
相乘结果异或后与数组6010a0比较
理解各个变量以后也可以通过逆矩阵的方式求解,不过矩阵归根结底还是线性方程,用Z3照抄跑一下就能出来,更省事XD
from z3 import *
t1 = [115, 111, 109, 101, 32, 108, 101, 103, 101, 110, 100, 115, 32, 114, 32, 116, 111, 108, 100, 44, 32, 115, 111, 109, 101, 32, 116, 117, 114, 110, 32, 116, 111, 32, 100, 117, 115, 116, 32, 111, 114, 32, 116, 111, 32, 103, 111, 108, 100]
t2 = [170, 122, 36, 10, 168, 188, 60, 252, 130, 75, 81, 82, 94, 28, 130, 31, 121, 186, 181, 227, 67, 4, 253, 172, 16, 181, 99, 189, 141, 231<