进入sub_400770函数(比较判断),看到
用python跑方程,z3
z3的简单使用的脚本及教程网站:Python_Z3_python z3_C4cke的博客-CSDN博客
跑出来了加密之后的密码
然后从上面看输入开始逆,注意这里是看不出来输入的长度,脚本跑出来的结果是18位的(大部分想要看长度只能通过check()这种专门的函数)
有一个位移操作,用c语言写脚本比较好,直接复制粘贴,for循环里的内容记得反着来,脚本得到
666c61677b72655f69735f6772656174217d
这一串
直接在线16进制转换可得flag,或者用脚本进行大小端转换
得到flag{re_is_great!}
!获取数的时候,注意几个一组,然后从下往上组合(注意是小端存储)
这里unk_601060是Key的地址,它的值其实是[0002,0002,0003,0004](注意是小端存储,每一组要反着来读取)