W. B. Samson

12 papers Journal 7Unranked 4
YearRankTypeTitle / Venue / Authors
1997 J jnl
Inf. Softw. Technol.
Ian Mitchell Marshall, Simon Price, P. I. Dugard, P. Hobbs, W. B. Samson
1995 conf
WCCE
Ian Mitchell Marshall, W. B. Samson, P. I. Dugard, A. Castell
1995 conf
DEXA Workshop
J. Lue, K. Brown, W. B. Samson
1994 J jnl
Inf. Softw. Technol.
Ian Mitchell Marshall, W. B. Samson, P. I. Dugard, W. A. Scott
1992 ch.
Specifications of Database Systems
W. B. Samson, A. W. Wakelin
1988 conf
Specification and Verification of Concurrent Systems
L. D. Natanson, W. B. Samson
1988 conf
BNCOD
R. Sadeghi, W. B. Samson, S. Misbah Deen
1986 J jnl
Comput. J.
E. Wong, W. B. Samson
1985 J jnl
Comput. J.
W. B. Samson, A. Bendell
1981 J jnl
Comput. J.
W. B. Samson
1978 J jnl
Comput. J.
W. B. Samson, Robert H. Davis
1976 J jnl
Comput. J.
W. B. Samson
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()