zoukankan      html  css  js  c++  java
  • re | [BJDCTF 2nd]diff2

    这是一个远程逆向,dump下来一个叫diff的elfx86文件。

    IDA打开,作用是对比两个文件的差别:

    关键点在于compare函数,跟进去。

    关键点在于此处的字符相加超过0xFF变成0x100的时候就溢出为0x00退出循环,因此利用的思路为找到0x100-buf的数,然后反推,一位一位的爆破就好了,切到/tmp写个python脚本,直接丢脚本:

     1 import subprocess
     2 import os
     3 flag = ''
     4 while True:
     5     for i in range(0x1,0x100):
     6         payload = flag+chr(i)
     7         os.system("echo "+payload+">mz1")
     8         p = subprocess.Popen(['/home/ctf/diff','/tmp/mz1','/home/ctf/flag'],stdout=subprocess.PIPE)
     9         res = p.stdout.read()
    10         if res != '1':
    11             flag += chr(0x100-i)
    12             print(flag)
    13             break

    写文件那个地方偷了个懒用了echo,导致跑出来一堆废话,不过不影响。

  • 相关阅读:
    js38---门面模式
    js37---Function.prototype
    js36---函数嵌套
    js35
    js34
    js33--责任链模式
    js32---CommonUtil.js
    龙芯服务器参数
    SQLSERVER 秘钥整理
    IOMETER的简单使用
  • 原文地址:https://www.cnblogs.com/Mz1-rc/p/13866286.html
Copyright © 2011-2022 走看看