看下面的wsad 和那个判断 应该是一个迷宫
前边有固定随机种子生成固定的8个数字。然后第一个数字赋值为0
之后代码内容过于复杂。怀疑是某个加密或者解密
这里还🈶️对输入16进制转换
百度一下blowfish加密过程
64位就是8个字符 推测最后的走迷宫的方案长度是8的倍数
存在反调试 我直接断在调试前 然后修改EIP到调试后
然后我断在了switch 这时候所有的初始化都弄完了 可以直接dump迷宫和密匙
迷宫如下
1 | 000000000111111 |
由反汇编可知 出发点为 (10,5) 目的地为(4,9)需要在16步以内走完(估计就是16步 手动走一下得到路径
1 | ddddwwwaaawwwddd |
对应前面的加密,刚好16位是8的倍数 不用padding分组blowfish加密 加密后转hex屏凑得到flag
1 | import blowfish |