美文网首页
[reverse]软件密码破解2

[reverse]软件密码破解2

作者: BlinKer | 来源:发表于2017-11-04 16:39 被阅读0次

    0x00 已知条件

    给了一个CTF_100_1.exe。

    0x01 思考过程

    • 随便给一个输入,发现一个像是加密的函数,改名成check_input。


      image.png
    • 发现里面做的事是把当前路径和所给的输入字符串连接起来,然后开了子线程。
      • 如果调试的话,看不到子线程里面的过程,且check_input最后会返回result = -1
      • 而且最后还把Buffer跟这一堆进行比较,不通过则check_input最后也返回result = -1,看着像最终的目标串
      • 主函数(还没法反汇编)得到-1后会exit
    image.png
    • 注意到上述过程中有这个部分:



      调试时先跳到114行,再跳上去做了4个赋值操作。

      • 调试,发现写入函数的参数是一个.text地址,那里下面一点还有不可解释的数据。
        于是patch过去,再看情况调调函数结尾位置,main和这部分就都能反汇编了。
    image.png image.png
    • 看看main和这个函数就很清楚了,目标串多半就是前面提到的那个。把这个加密过程反着写个脚本,求出flag。
    [Python]
    target = '\x25\x5c\x5c\x2b\x2f\x5d\x19\x36\x2c\x64\x72\x76\x80\x66\x4e\x52'
    xor = 'elcome to CFF te'
    len = len(xor)
    flag = ''
    
    for i in range(len):
        flag += chr(ord(xor[i]) ^ (ord(target[i])-1))
    
    print flag
    
    

    0x02 细节

    • 记得小端序

    相关文章

      网友评论

          本文标题:[reverse]软件密码破解2

          本文链接:https://www.haomeiwen.com/subject/yxhnpxtx.html