xctf-攻防世界-reverse进阶区-流浪者-writeup

流浪者

1. 运行

GsCxQU.png
简单的crackme,找出注册码。

2.查壳

GsCOJ0.png
没有加壳

3. 分析

既然没有加壳,那么我们可以直接通过字符串定位到关键函数
GsCjzT.png
不断查看交叉引用,就可以找到关键函数sub_401890如下:
GsCXWV.png
然后继续分析:
GsCLiq.png

4. 写注册机

target = "KanXueCTF2019JustForhappy"
source = "abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ"
for i in target:
    v5 = source.index(i)
    if v5>=0 and v5<10:
        print(chr(v5+48),end="")
    elif v5>=10 and v5<36:
        print(chr(v5+87),end="")
    else:
        print(chr(v5+29),end="")

5. 总结

一个简单的crackme,主要的考查点应该是对数组指针和ascii的理解。用户输入没有判断的长度,大于26就会导致缓冲区溢出233333.

posted @ 2020-04-06 09:20  sarace  阅读(487)  评论(0编辑  收藏  举报