BUUCTF Reverse2

Reverse2

在IDA中通过搜索定位到此图表
image
选中后F5生成伪代码

点击查看代码
    for (j = 0; ; ++j)
    {
        v8 = j;
        v2 = j_strlen(Str2);
        if (v8 > v2)
            break;
        if (Str2[j] == 111)
            Str2[j] = 48;
    }

ASCII中111为'o';48为'0'

可以发现,它对我们输入的 str1 与程序里的 str2 做比较,str2 是{hello_world},而在开始前会将 str2 中的字母 o 替换为数字 0,于是得到 flag

点击查看代码
if (Str2[j] == 111)
            Str2[j] = 48;
    }
    sub_1400111D1("input the flag:");
    sub_14001128F("%20s", &Str1);
    v3 = j_strlen(Str2);
    if (!strncmp(&Str1, Str2, v3))
        sub_1400111D1("this is the right flag!\n");
    else
        sub_1400111D1("wrong flag\n");
    sub_14001113B(&v5, &unk_140019D00);
    return 0i64;
}
即可得到flag{hell0_w0rld}
posted @   月上藤萝  阅读(88)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示