[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的是个字符依次进行操作

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值