示例#1
0
    # analyze binary
    # todo: 不要な解析を無視
    elf = ELF(args.elf)  # _write4
    libc = ELF(args.libc) if args.libc else None

    sect = Section(elf)
    functions = Functions(elf)
    plt = elf.plt
    got = elf.got

    # dump simple
    if not args.symbols:
        print("")
        # dump sections
        print("[+]: all sections")
        sect.dump_all_sections()

        print("")
        # all functions
        # todo: 関数の中身を調べる方法(ローカル変数の数やできるなら初期値も調べたい)
        print("[+]: all functions")
        functions.dump_all_functions()

        # plt
        print("")
        print("[+]: plt")
        table_header = "{0:30} : {1:15}"
        print(table_header.format("symbol name", "address"))
        print("-" * 50)
        for p in plt.items():
            print(table_header.format(p[0], hex(p[1])))