攻防世界-流浪者

查壳

无壳
在这里插入图片描述

IDA

推测str为输入字符串,限制为 0~9 a~z A~Z

sub_4017B0是错误提示输出

if判断后是v5分别对三个范围内的str进行对应操作

最后将v5传给 sub_4017F0函数处理
在这里插入图片描述


第一个while循环对a1(也就是传入的v5)的地址进行处理判断,然后用a1+4*v4为字符串下标检索字符串aAbcdefghiabcde。如果检索结果等于KanXueCTF2019JustForhappy 则正确

在这里插入图片描述

解题

先在字符串aAbcdefghiabcde里检索KanXueCTF2019JustForhappy的顺序,然后在进行逆序相加得到 0~9 a~z A~Z 的值

这里逆序相加的分组情况事先算好:

0~9:+48
10~35:+87
36~61:+29

在这里插入图片描述

EXP

arr1='KanXueCTF2019JustForhappy'
arr2='abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ'
flag=[]
for s in arr1:
    demo=arr2.find(s)
    flag.append(demo) 
flag2=''
for i in flag:
    i=int(i)
    if(i>=0 and i<10):
        flag2+=chr(i+48)
    elif(i>9 and i<36):
        flag2+=chr(i+87)
    if(i>=36 and i<62):
        flag2+=chr(i+29)
print(flag2)

flag

flag{j0rXI4bTeustBiIGHeCF70DDM}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值