[BUUCTF]REVERSE——SimpleRev

SimpleRev

查壳,无壳,64bit。
在这里插入图片描述
用64IDA打开,直接进入主函数 ,输入d/D进入,Q/q退出。 主要是在Decry()里面进行处理,进去瞧瞧

在这里插入图片描述
对函数进行了部分注释。
函数对text,key进行了一系列的赋值,再把key中的大写字母变成小写字母,再把key中的字母进行一系列的变换后写入str2,最后str2和text进行比较,如果相同则 Congratulation!
我们已经知道了text里的值,可以逆向算法,推出输入的flag
在这里插入图片描述在这里插入图片描述
比较懵逼的是对于key内的字符进行变换,实在不懂是什么意思。
别人的解释:
值得注意的是取模操作,如a/b=c······d,进行你操作时c(我们可称之为放大倍数)是未知的,因此需要使用循环对放大倍数从0进行尝试,直到有符合要求的结果,但经过实践发现对于text全部字符而言这个c并不是一致的,比如第一个字符的c为0,第二个字符的c为1,第三个为3,都有可能,但从比较过程来看,text全是字母,因此可用条件语句筛选出符合条件的情况,即他的ASCII码>=65&&<=90或>=97&&<=122
使用两层循环,第一层表示放大倍数,第二层表示对text的是个字符依次进行操作

但自己不会操作。
这是别一种爆破方法
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/BangSen1/article/details/112991849