예제 #1
0
파일: output.py 프로젝트: qq53/trace
def start_GET():
    elf.rm('subout')
    pid = os.fork()
    if pid == 0:
        os.system('./redirect_in/in tmp')
        return ''
    else:
        return ''
예제 #2
0
파일: output.py 프로젝트: qq53/trace
def input_POST():
    kill_task()
    d = request.form['data']
    with open('subin','w') as f:
        f.write(d)    
    elf.rm('subout')

    pid = os.fork()
    if pid == 0:
        os.system('./redirect_in/in tmp')
        return ''
    else:
        return ''
예제 #3
0
파일: app.py 프로젝트: qq53/trace
def refresh_GET():
    session["outLines"] = 0
    kill_task()
    elf.rm("subin")
    elf.rm("subout")
    elf.rm("out")
    return "ok"
예제 #4
0
파일: app.py 프로젝트: qq53/trace
def home_POST():
    f = request.files["fileToUpload"]
    sf = cwd + "tmp"

    elf.rm(sf)
    elf.rm("subin")
    elf.rm("subout")
    elf.rm("out")

    f.save(sf)
    os.chmod(sf, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)

    result = elf.elf(sf)
    if result == None:
        return "false"

    template = env.get_template("inf.html")
    ss = result["sh"]
    ps = result["ph"]
    result.pop("sh")
    result.pop("ph")

    session["class"] = result["class"]
    session["ro_addr"] = result["ro_addr"]
    session["ro_size"] = result["ro_size"]
    session["outLines"] = 0

    funcs = config.get_inter_funcs()
    api32e = funcs["32"]
    api32n = config.get_api_name(32)
    comm_api = []
    for i in api32n:
        if i in api32e:
            comm_api.append(i)
    for i in comm_api:
        api32n.remove(i)

    api64e = funcs["64"]
    api64n = config.get_api_name(64)
    comm_api = []
    for i in api64n:
        if i in api64e:
            comm_api.append(i)
    for i in comm_api:
        api64n.remove(i)

    return template.render(
        header=result, sections=ss, programs=ps, apis32e=api32e, apis64e=api64e, apis32n=api32n, apis64n=api64n
    )