zoukankan      html  css  js  c++  java
  • 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



  • 相关阅读:
    centos 安装python3.6 简易安装过程
    包装类型
    剑指offer二叉树中和为某一值的路径
    剑指offer 捡绳子
    按位与的技巧
    SpringBoot 登录拦截功能的实现
    AIO实现简单http服务器
    真题-数的分解
    重建二叉树
    旋转数组的最小数字
  • 原文地址:https://www.cnblogs.com/blackicelisa/p/12263556.html
Copyright © 2011-2022 走看看