• X-CTF(REVERSE入门) open-source


    之前文章讲过的技巧和知识,就不再详细描述了,如果有不明白的地方建议按照做题题目顺序查看。

    添加stdlib.h头文件,运行程序输入三个参数,输入参数数量不等于3输出what?退出程序

    满足三个要求的参数最后经过运算得到hash,hash边是我们要找的flag


    图1

    第一个和第三个参数已经给我们了分别是,“0xcafe”、“h4cky0u”

    输入参数时不可以输入十六进制,所以第一个参数我们转化为十进制为51966

    第二个参数根据语义可以知道如果second % 5 == 3 || second % 17 != 8,那么得到错误提示

                             a& b         a| b       a and b       a or b

    如果a,b是数值变量, 则&, |表示位运算, and,or则依据是否非0来决定输出

    所以我们取相反的情况得到可能的second,盲猜这数不会很大


    图2

    第二个参数假如为25,运行程序得到flag


    图3

    如果第二个参数为42呢,如果数字再大点比如满足条件的484,同样得到了flag


    图4

    这就是为什么,原来在图1中hash运算的第二个参数是(second % 17) * 11,而我们所有符合条件的数字经过(second % 17)运算后的结果都是8



  • 相关阅读:
    oo第二次总结
    oo第一次总结
    OO最后一次博客儿
    OO作业总结第三弹
    OO作业总结第二弹
    初学面向对象
    hi🎈
    散列函数及其应用
    结对项目作业
    构建之法第四,第十四章读书有感 (另补第十七章)
  • 原文地址:https://www.cnblogs.com/blackicelisa/p/12263556.html
Copyright © 2020-2023  润新知