周六忘了比赛,晚上快六点才拿到题目,看了下感觉能做,研究了下,最后还是可惜,比赛结束了拿到题目ida打开惯例看一下main再看看汇编基本上确定是ollvm了下面那一堆整齐的是真实块,上面通过分发器跳转才到达真实块执行代码。看到群里有大佬直接通过动调跳转找代码的,那确实是真功夫...脚本小子直接拿deflat.py还原了。建议放虚拟机里面,装GitHub页面推荐的angr版本脚本还原之后的样子这个时候f5已经可以看了PART1先看看第一部分的代码,前面到qmemcpy的代码是正常的分配内存和输入输出。后面进行了很长一堆的运算,其实都不用看,其实可以分析出来,前面都是静态的拿现有的进行操作,最后都给了v20,直接断在59行然后拿出v20就行了。59行之后是一个flag格式比对,把flag里面的内容截取出来放到v22里面PART2我们先不看400670这个函数,先看看后面的东西,做游戏题比较多的应该很容易就能看出来这是个迷宫了,拿400670函数对flag内容处理后的数据逐位进行操作(也就是迷宫里面的上下左右)这边其实故意搞复杂了点,把上下弄成加减100,然后再在后面!v20[v5 % 10
Xunflash