网鼎杯-2020-青龙组-jocker
(SMC自解密+XOR+猜!)
正如这道题的名字,我做的时候就挺jocker的,题不是很难,但是最后的猜猜大法才能出flag是我没想到的,而且就算是把flag解出来了,给程序也不会有正确的回显,这就挺…..jocker
IDA打开,很容易知道flag为24位,进行了三个加密,我们分别分析
wrong函数,就是一个简单的加密函数
omg函数就是对上面那个函数的检验
这里我们就可以解出第一层密码,我们可以知道这个密码是假的
下面的两个函数需要进行SMC解密
对于SMC两种方法,一种用脚本,一种直接动调
脚本:
1 | from idc_bc695 import * |
使用动调其实更好追踪
动调
对于encrypt函数,就是一个简单的异或加密,这里我们提取数据,进行异或就可以解出前十八个字符
接下来就到了最jocker的时刻,
finally函数,这里通过合理猜测,我们可以知道%tp&:这五个就是我们的对比字符,然后仔细分析下面的代码,我们可以惊奇的发现,这个代码是无意义的!!!!!
后来乱猜,异或,把:异或了}试了试,最后解出flag…….
flag{d07abccf8a410cb37a}
评论