攻防世界——第5题
首先还是运行程序看运行的机制
他会提示你输入错误,这是我们解题的一个关键,提示我们相关判断的位置
那我们还是用jeb反汇编看看代码有什么吧。
经过分析,是调用过native层的ncheck方法,于是我们就分析一下native层
这里纠纷发现里与输入的flag比较的地方。图中有两个字符串处理的函数,我们分析一下
第一个是将字符串前16位于后16位交换位置
第二个方法就是每两个一组进行交换
因此,我们可以直接逆着解密就可以了
经过这两层后会得到这样一个字符串:QAoOQMPFks1BsB7cbM3TQsXg30i9g3==
显然这不是我们想要的答案
然后我们就返回jeb界面看看还有没有什么线索
看到这里就发现实现用a这个类里面的方法处理后再调用了native层的方法,所以最后一层解密就是这里。一看就是base64加密,知识换了一个加密本而已。使用脚本就可以解密啦。
答案:flag{just_ANot#er_@p3}