zoukankan      html  css  js  c++  java
  • *CTF——Re复现

    wherekey

    废话

    看懂了wp后,感觉逆向真的很吃真相,在比赛的时候还不知道有sig签名这玩意,后面又看到一个静态链接的题目,发现有sig文件,然后在跟着天璇的wp逆了一遍后,发现自己的不足,需要每天都补一点网络编程了

    流程分析

    首先用ida静态分析一下,发现输出"Please enter the key:",这句话的函数在0x40261b,但在我远程动态调试的时候0x402609运行完程序就挂了,看了天璇wp说这里可能是环境原因,但我不知道怎么做测试

     点进这个函数一看可以发现是open tty这个文件

    在看看上面的一个初始化函数

     发现第一个函数是套接字,而htons是跟网络相关的(笔者以前看过一点恶意代码分析经常看到这个函数,所以知道跟网络相关),返回的是套接字的返回值(大概判断一下,应该类似于句柄)

     我们接着往下看,这回看汇C语言

     我们可以发现,在while函数里有两个if语句的判断,由于没有动态调试,无法知道接下来的运行步骤,但是由于初始化的不同可以判断一下第一个函数应该是跟网络相关,第二个应该是跟文件相关

     这个函数里面有recvfrom,而第一个参数就是dword_4C8520,所以可以知道这是一个接收套接字传过来的字节,每次接收5个,这下面的函数先不做解释(下面会说的)

    我们接着往下看进入关于tty文件的函数

     有read函数,所以我们可以判断这是输入函数,然后乙们再来观察发现有sendto函数,是发送字节的意思,并且每读取5个发送一次

    此时我们再来看看sub_4022DE函数,其实这个是个加密函数

     在sub_401f2e这里是可以直接通过动调给逆出来的,因为这里是把假flag进行加密,然后在进入sub_401E3E给我们输入的进行加密,最后在跳入

     该地方进行验证,是否正确

    exp我打算大部分题目都复现完后在自己敲一下

    参考天璇WP:https://we.buptmerak.cn/archives/274#header-id-15

  • 相关阅读:
    B1031
    B1021
    B1021
    B1021
    Android 系统服务一览表
    MULTI-INTERFACE CONNECTIVITY ON ANDROID
    ConnectivityManager 确定和监控网络连接状态
    Android系统各种类型的service刨根解读
    Android Netd
    Android am 指令的使用
  • 原文地址:https://www.cnblogs.com/pppyyyzzz/p/14342616.html
Copyright © 2011-2022 走看看