攻防世界 - RE - 流浪者

Title: 流浪者

WP:

打开cm.exe,要求我们输入passwd
随便输入几个,弹出’错了, 加油’的对话框

用IDA pro打开,在IDA view可以找到这些string
按下x找到用到他们的函数
像KanXueCTF2019JustForhappyz 这种字符串就很值得关注
它也就只在一个函数里出现了
找找邻近函数, 然后反编译一下

我们发现cm.exe会将输入的字符串的大写字母减去29,小写字母减去87,数字减去48,得到一个新数组
然后从字典"abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ"里取出相应位置的字符,组成新字符串
将新的字符串与KanXueCTF2019JustForhappyz进行比较

披着RE外衣的crypto题
那我们只需要逆这步骤来就行了

s ='abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ'
ss = 0
mp = {}
for i in s:
    mp[i] = ss
    ss = ss + 1

s = 'KanXueCTF2019JustForhappy'
res = []
for i in s:
    res.append(mp[i])

ans = ''
for i in res:
    if(i < 10):
        ans = ans + chr(i+48)
    elif(i < 36):
        ans = ans + chr(i+87)
    else:
        ans = ans + chr(i+29)

print(ans)

j0rXI4bTeustBiIGHeCF70DDM
所以flag为:
flag{j0rXI4bTeustBiIGHeCF70DDM}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值