首页 > 其他 > 详细

BUUCTF Reverse [羊城杯 2020]easyre

时间:2021-06-28 09:43:59      阅读:42      评论:0      收藏:0      [点我收藏+]

好长时间没有更新过博客了,水了一道题。

无壳,64位程序,拖进ida。

技术分享图片

技术分享图片

逻辑比较简单,先base加密,又经过两次位变换,位变换可以通过爆破得到。

str = "EmBmP5Pmn7QcPU4gLYKv5QcMmB3PWHcP5YkPq3=cT6QckkPckoRG"
string ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890+/="
flag =‘‘
for i in range(len(string)):
    for j in string:
            if ord(j) <= 0x40 or ord(j) >0x5a:
                    if ord(j) <=0x60 or ord(j) >0x7a:
                            if ord(j) <=47 or ord(j) >57:
                                    t = j
                            else:
                                    t = chr((ord(j)-48+3)%10 + 48)
                    else:
                            t =chr((ord(j)-97+3)%26 + 97)
            else:
                    t = chr((ord(j) - 65 + 3) % 26 + 65)
            if t == str[i]:
                    flag +=j
                    break
print(flag)

还有一次位变换是十三个为一组分三组,进行换位。

最后base之后得到flag

flag{672cc4778a38e80cb362987341133ea2}

 

BUUCTF Reverse [羊城杯 2020]easyre

原文:https://www.cnblogs.com/sk2rw/p/14942623.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!