zoukankan      html  css  js  c++  java
  • buuctf 两道GXYCTF逆向

    1,luck_guy

    ida打开,很简单

    #include<stdio.h>
    int main() {
            char f1[] = "GXY{do_not_";
            char f2[] = "icug`of";
            char temp[7];
    
            for (int j = 0; j < 7; ++j)
            {
                    if (j % 2 == 1)
                            temp[j] = f2[j] - 2;
                    else
                            temp[j] = f2[j] - 1;
                    f2[j] = temp[j];
            }
            printf("%s%s}",f1,f2);
    }

    得到flag

    2,simplecpp

    拖进ida,找到关键函数

     可以分析出逻辑

    v24=v19[2]&~v19[0]
    v24==1176889593874
    
    v31 = (v19[2] & ~v19[1]) & v19[0] | v19[2] & ((v19[1] & v19[0]) | v19[1] & ~v19[0] | ~(v19[1] | v19[0]))
    v31 == 577031497978884115
    
    v28 = v19[2] & ~v19[0] | v19[1] & v19[0] | v19[2] & ~v19[1] | v19[0] & ~v19[1]
    v28 = 4483974544037412639
    (v28 ^ v19[3]) == 4483974543195470111
    
    ((v19[2]&~v19[0]) | (v19[0] & v19[1]) | v19[1] & v19[2]) != (~v19[0] & v19[2] | 0xC00020130082C0C)

    用z3

    from z3 import *
    
    x0,x1,x2,x3=BitVecs('x0 x1 x2 x3',64)
    f=Solver()
    
    f.add(((x2&~x1)&x0|x2&((x1&x0)|x1&~x0|~(x1|x0)))==577031497978884115)
    f.add((4483974544037412639^x3)==4483974543195470111)
    f.add(x2&~x0==1176889593874)
    f.add((x2&~x0|x1&x0|x2&~x1|x0&~x1)==4483974544037412639)
    
    if f.check() == sat:
        print f.model()
    [x3 = 842073600,
     x1 = 2452209997103237128,
     x0 = 4483973367147818765,
     x2 = 577031497978884115]

    再看

     将得出来的数与dst异或

    Dst = 'i_will_check_is_debug_or_noi_wil'
    flag = [0x3E,0x3A,0x46,0x05,0x33,0x28,0x6F,0x0D,0x36,0x38,0x40,0x00,0x22,0x00,0x4f,0x08,0x08,0x02,0x07,0x17,0x15,0x3E,0x30,0x13,0x32,0x31,0x06]
    for i in range(len(flag)):
        print(chr(ord(Dst[i]) ^ flag[i]),end='')

    得到:We1l_D0n^]#k}i<Wlgebra_am_i,但是不对

    之后看了看别人的wp,发现原来在比赛时发公告给了第二部分为e!P0or_a

    3,第三道卡住了,做出来再写 

  • 相关阅读:
    DHCP和NAT
    Mongos WoW
    是否能在构造函数,析构函数中抛出异常?
    Lua Getter/Setter
    xLua
    基于模板特化的Lua自动绑定系统
    为什么有人说富坚义博有着殿堂级的画功?他的画功体现在哪儿呢? 关注者 10205 被浏览 2701670
    在Windows和MacOS下编译Lua
    解决warning MSB8012:问题
    setjmp和longjmp
  • 原文地址:https://www.cnblogs.com/harmonica11/p/12191592.html
Copyright © 2011-2022 走看看