Naragain Phumchusri

12 papers Journal 5Unranked 7
YearRankTypeTitle / Venue / Authors
2024 J jnl
Int. J. Bus. Intell. Data Min.
Naragain Phumchusri, Phongsatorn Amornvetchayakul
2023 conf
MSIE
Tirawat Jarukajornjinda, Naragain Phumchusri
2022 conf
IEEM
Naragain Phumchusri, Warot Kosawanitchakarn, Sirawish Srimook, Sirawich Chawanapranee
2022 conf
MSIE
Chayakorn Auppakorn, Naragain Phumchusri
2022 conf
MSIE
Mookarin Thongoiam, Naragain Phumchusri
2022 conf
MSIE
Pattraporn Jirapatsil, Naragain Phumchusri
2018 conf
IEEM
Suppasit Jongcheveevat, Naragain Phumchusri, Amonsiri Vilasdaechanont
2018 conf
IEEM
Naragain Phumchusri, Supasit Tangsiriwattana, Poom Luangjarmekorn
2017 J jnl
Ann. Oper. Res.
Paveena Chaovalitwongse, Krongsin Somprasonk, Naragain Phumchusri, Joseph A. Heim, Zelda B. Zabinsky, W. Art Chaovalitwongse
2016 J jnl
Comput. Ind. Eng.
Anupong Wannakrairot, Naragain Phumchusri
2015 J jnl
J. Comput. Sci.
Naragain Phumchusri, Yanipa Chinsuwan
2014 J jnl
J. Comput. Sci.
Naragain Phumchusri, Julie L. Swann
redb/extractors/decompiler/bninja/run.py
← Index redb/extractors/decompiler/bninja/run.py python
import argparse
import json

from decompiler import BinaryNinjaDecompiler
from utils.json_encoder import BinaryNinjaEncoder


def run_from_command_line():
    parser = argparse.ArgumentParser(description="Binary Ninja Decompiler")
    parser.add_argument("filepath", help="Path to the binary file to analyze")
    parser.add_argument(
        "--output", "-o", help="Output JSON file path (default: stdout)"
    )
    parser.add_argument(
        "--timeout",
        "-t",
        type=int,
        default=1200,
        help="Analysis timeout in seconds (default: 1200)",
    )
    args = parser.parse_args()

    with BinaryNinjaDecompiler(args.filepath, args.timeout) as decompiler:
        success = decompiler.extract()

        if not success:
            decompiler.log.error("Analysis failed")
            return 1

        # Output results
        if args.output:
            with open(args.output, "w") as f:
                json.dump(decompiler.analysis_results, f, cls=BinaryNinjaEncoder)
            decompiler.log.info(f"Results written to {args.output}")
        else:
            print(json.dumps(decompiler.analysis_results, cls=BinaryNinjaEncoder))

    return 0


if __name__ == "__main__":
    run_from_command_line()