zoukankan      html  css  js  c++  java
  • bugku love

    一.
    老规矩,先查下是否有壳。在这里插入图片描述
    没壳,直接拖入ida看。
    二.
    IDA的命令
    shift+F12 查看字符串
    F5 反编译
    在这里插入图片描述
    发现了flag等敏感词,点击进入看看。
    在这里插入图片描述
    x键可以直接进去调用这个变量的函数中去。
    在这里插入图片描述
    这里是我们的核心代码了,F5大法走起。
    在这里插入图片描述
    这里分析下来,我们的输入经过了三个过程:
    1.SUB_4110BE函数
    2.for循环
    3.sub_411127函数
    同时找到str2。
    在这里插入图片描述
    先一步一步来,第一个函数,点进去看看
    在这里插入图片描述
    发现是base64的编码(这个我也是看其他老哥的博客,才知道这玩意是base64加密的,就当记下来吧)
    2.SUB_41127函数
    这玩意反编译不出来,说明被保护了,我们只能去看反汇编的代码了,老老实实分析
    在这里插入图片描述
    在这里插入图片描述
    eax值直接决定了是不是right flag,test eax eax影响了零标志位,但是前面的strncmp函数也影响了零标志位,所以如果eax搞事情的话,能直接让我们跳转到wrong flag,后来发现这玩意对eax完全没影响。。。所以可以不管了。
    3.for循环这个比较简单,应该都能懂
    总结下来,就是输入的必须要和str2相同。
    一个脚本搞定:
    在这里插入图片描述

  • 相关阅读:
    mysql case when用法
    php+mysql实现事务回滚
    go安装windows源码
    【C++】子类访问父类typedef的问题
    【C++】STL算法之remove_if
    MySQL常用函数总结
    Apriori算法+python实现
    数据库索引理论
    Linux基本命令
    JAVA 多线程
  • 原文地址:https://www.cnblogs.com/YenKoc/p/12779976.html
Copyright © 2011-2022 走看看