zoukankan      html  css  js  c++  java
  • BUU-Youngter-drive

    关于线程创建和等待线程的题目

    首先UPX脱壳

    然后发现两个线程共同等待一个线程 谁先得到谁就释放 释放了另一个线程就可以继续运行

    就是控制两个线程轮流执行

    第一个线程有对Source处理 第二个函数没有 由于创建线程先后顺序 第一个线程先执行

    也就是说Source对奇数位被处理 偶数位不变

     处理函数也很简单 分大小写 而且table也是大小写分开储存的 方便直接判断

    细心一点发现 最后的对比函数循环了30次 而对比的字符串只有29位 所以最终的flag在 末尾 }前 随便加一位就行了

    table = 'QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnmx00'
    
    s = 'TOiZiZtOrYaToUwPnToBsOaOapsyS'
    
    flag = 'flag{'
    for i in range(len(s)):
        if i % 2:
            for j in range(len(table)):
                if table[j] == s[i]:
                    if(j < 26):
                        flag += chr(96 + j)
                    else:
                        flag += chr(38 + j)
                    break
        else:
            flag += s[i]
    flag += 'E}'
    print flag
    View Code
  • 相关阅读:
    router使用以及vue的动画效果
    配置wbepack
    Axios插件和loading的实现
    自定义组件的 v-model
    组件模块化使用
    组件基础
    vue的使用1
    solt插槽的使用。
    Vue的使用
    Vue的router使用
  • 原文地址:https://www.cnblogs.com/lxy8584099/p/13599972.html
Copyright © 2011-2022 走看看