运行
试运行程序:
IDA反编译
拖入ida,F5反编译,经整理如下:
解法一
阅读代码知这是一道走迷宫的题,迷宫为:
迷宫有6种走法,对应指令0~5:
y为奇数 | y为偶数 | |
---|---|---|
0 | ↑ | ↗ |
1 | → | → |
2 | ↓ | ↘ |
3 | ↙ | ↓ |
4 | ← | ← |
5 | ↖ | ↑ |
对应上表,如上图,走出迷宫的指令应为:1234321234321101210050543450501210121234322321;
46~50转换输入的字符串,用z3模块求解:
from z3 import *
Input_x = [1,3,3,1,3,3,1,0,2,0,5,5,3,5,5,1,1,1,1,3,3,2,2]
Input_y = [2,4,2,2,4,2,1,1,1,0,0,4,4,0,0,2,0,2,2,4,2,3,1]
table = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
x = Int('x')
for i in range(len(Input_x)):
solve(Input_x[i]==(5-(i+x)%6), Input_y[i]==((i+x/6)%6), x>=0, x<=0x24)
TableIndex = [