简单的vm操作,就是用代码自己实现各种功能
机器码算是 4个1组
简单调一下就知道正向流程是
逐个 用data里的一段 加 输入
逐个 用data里的一段 异或输入
高低位交互
于是逆向流程为
data=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
155, 168, 2, 188, 172, 156, 206, 250, 2, 185, 255, 58, 116, 72, 25, 105, 232,
3, 203, 201, 255, 252, 128, 214, 141, 215, 114, 0, 167, 29, 61, 153, 136, 153,
191, 232, 150, 46, 93, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, 169, 189, 139,
23, 194, 110, 248, 245, 110, 99, 99, 213, 70, 93, 22, 152, 56, 48, 115, 56,
193, 94, 237, 176, 41, 90, 24, 64, 167, 253, 10, 30, 120, 139, 98, 219, 15,
143, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18432, 61696, 16384, 8448, 13569,
25600, 30721, 63744, 6145, 20992, 9472, 23809, 18176, 64768, 26881, 23552,
44801, 45568, 60417, 20993, 20225, 6657, 20480, 34049, 52480, 8960, 63488,
3072, 52992, 15617, 17665, 33280, 53761, 10497, 54529, 1537, 41473, 56832,
42497, 51713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
for i in range(40):
num=data[150+39-i]
# print(hex(num))
num=(((num<<8)&0xFF00)+((num>>8)&0xFF))&0xFFFF
num^=data[i+100]
num-=data[i+50]
print(chr(num),end="")
