xctf-功放世界-reverse进阶区-流浪者-writeup

流浪者

1. 运行

xctf-功放世界-reverse进阶区-流浪者-writeup_第1张图片
简单的crackme,找出注册码。

2.查壳

xctf-功放世界-reverse进阶区-流浪者-writeup_第2张图片
没有加壳

3. 分析

既然没有加壳,那么我们可以直接通过字符串定位到关键函数
xctf-功放世界-reverse进阶区-流浪者-writeup_第3张图片
不断查看交叉引用,就可以找到关键函数sub_401890如下:
xctf-功放世界-reverse进阶区-流浪者-writeup_第4张图片
然后继续分析:
xctf-功放世界-reverse进阶区-流浪者-writeup_第5张图片

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.

你可能感兴趣的:(xctf-功放世界-reverse进阶区-流浪者-writeup)