拖进IDA先看main函数
关键是encode函数。
对于这个encode函数,如果得出来的结果是enflag,那么说明用户输入的正确,即用户输入的字符就是flag。所以我们需要从enflag反推用户输入,写一下逆过程的代码。
首先我们来看一下enflag是什么
对于这个数据,我们可以直接写
注意"之前需要加\。
再看看key是什么。key应该是一个数值,发现是12h,即0x12,十进制的18
对于异或,只要再对key异或一次,就可以获得原来的结果。所以我们把enflag写进去,先和key异或再进行反的加减就行了。注意+-是优先于异或进行运算的,所以要给异或打上括号
结果