zoukankan      html  css  js  c++  java
  • BUU-jocker

    fa放进IDA发现堆栈不平衡 这里的调试技巧是: 哪里有问题,就在哪里的上一行Alt+K 赋值为0

    F5 main

    对v4操作对一系列全是假的flag 靠

    这里有对encyrpt函数异或 写一个IDC脚本泡一下

    #include <idc.idc>
     
    static main()
    {
        auto Address = 0x00401500;
        auto Value;
        
        for(;Address <= 0x00401500 + 186;Address++)
        {
            Value = Byte(Address);
            Value = Value ^ 0x41;
            PatchByte(Address, Value);
        }
    }
    View Code

    然后正常反编译 (用u和c乱搞以下)

    这里还是异或 不过只有19位  我们发现main函数里面还有一个finally函数

    这里v3到v7刚好5位  加上前面对19位就是24位刚好

    不过这里如果还用19位对异或字符串 "hahahaha_do_you_find_me?"   解出来是错误的

    我们猜测最后五个还是异或的同一个数  这个数 可以通过flag最后以为是 '}' 反解出来 最终得到flag

    (被注释掉的是fakeflag)

    '''
    a = []
    f = open('so.in')
    for i in range(6):
        s = f.readline()
        for j in range(16):
            if(j%4==0):
                a.append(int(s[j*3:j*3+2],16))
    print a
    for i in range(len(a)):
        if i & 1:
            a[i] += i
        else:
            a[i] ^= i
    Input = ''
    for i in range(len(a)):
        Input += chr(a[i])
    print Input
    '''
    a = []
    b = 'hahahaha_do_you_find_me?'
    f = open('so.in')
    for i in range(5):
        s = f.readline()
        for j in range(16):
            if(j%4==0):
                a.append(int(s[j*3:j*3+2],16))
    del a[len(a)-1]
    a.append(37)
    a.append(116)
    a.append(112)
    a.append(38)
    a.append(58)
    print a
    for i in range(19):
        a[i] ^= ord(b[i])
    k = ord('}') ^ 58
    for i in range(19,24):
        a[i] ^= k
    Input = ''
    for i in range(len(a)):
        Input += chr(a[i])
    print Input
    View Code

    so.in  两份(前面的是fakeflag  后面的是flag)

    66 00 00 00 6B 00 00 00 63 00 00 00 64 00 00 00
    7F 00 00 00 61 00 00 00 67 00 00 00 64 00 00 00
    3B 00 00 00 56 00 00 00 6B 00 00 00 61 00 00 00
    7B 00 00 00 26 00 00 00 3B 00 00 00 50 00 00 00
    63 00 00 00 5F 00 00 00 4D 00 00 00 5A 00 00 00
    71 00 00 00 0C 00 00 00 37 00 00 00 66 00 00 00
    
    
    
    
    
    
    
    0E 00 00 00 0D 00 00 00 09 00 00 00 06 00 00 00
    13 00 00 00 05 00 00 00 58 00 00 00 56 00 00 00
    3E 00 00 00 06 00 00 00 0C 00 00 00 3C 00 00 00
    1F 00 00 00 57 00 00 00 14 00 00 00 6B 00 00 00
    57 00 00 00 59 00 00 00 0D 00 00 00 00 00 00 00
    View Code
  • 相关阅读:
    二、网络基础
    Ado.net
    LINQ
    C#[抽象类,接口]
    自定义类库,并引用
    c#重点[封装,继承,多肽]
    c#重点[集合类型]异常,数组,集合ArrayList,List<>,hashTable,hashtable泛型(Dictionary)
    c#重点[数据类型,构造方法,变量,变量,运算符,装箱,拆箱]
    .net reflector激活
    sqlsever备份,还原和导入导出方法
  • 原文地址:https://www.cnblogs.com/lxy8584099/p/13644756.html
Copyright © 2011-2022 走看看