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

  • 相关阅读:
    398. Random Pick Index
    382. Linked List Random Node
    645. Set Mismatch
    174. Dungeon Game
    264. Ugly Number II
    115. Distinct Subsequences
    372. Super Pow
    LeetCode 242 有效的字母异位词
    LeetCode 78 子集
    LeetCode 404 左叶子之和
  • 原文地址:https://www.cnblogs.com/pppyyyzzz/p/14342616.html
Copyright © 2011-2022 走看看