relativeToIP=args.relativeToIP) comparator = MessageComparator(specimens, layer=args.layer, relativeToIP=args.relativeToIP, failOnUndissectable=False, debug=debug) ######################## print("Segment messages...") inferenceTitle = 'bcDeltaGauss{:.1f}'.format(sigma) # +hiPlateaus startsegmentation = time.time() segmentsPerMsg = bcDeltaGaussMessageSegmentation(specimens, sigma) runtimeSegmentation = time.time() - startsegmentation refinedPerMsg = refinements(segmentsPerMsg, None) runtimeRefinement = time.time() - startsegmentation print('Segmented and refined in {:.3f}s'.format(time.time() - startsegmentation)) symbols = symbolsFromSegments(segmentsPerMsg) refinedSymbols = symbolsFromSegments(refinedPerMsg) ######################## # Without refinement: # comparator.pprintInterleaved(symbols) comparator.pprintInterleaved(refinedSymbols) # calc FMS per message
args = parser.parse_args() if not isfile(args.pcapfilename): print('File not found: ' + args.pcapfilename) exit(1) sigma = 0.6 if not args.sigma else args.sigma print("Load messages...") specimens = SpecimenLoader(args.pcapfilename, layer=args.layer, relativeToIP=args.relativeToIP) print("Segment messages...") inferenceTitle = 'bcDeltaGauss{:.1f}'.format(sigma) # +hiPlateaus startsegmentation = time.time() segmentsPerMsg = bcDeltaGaussMessageSegmentation(specimens, sigma) runtimeSegmentation = time.time() - startsegmentation refinedPerMsg = refinements(segmentsPerMsg) runtimeRefinement = time.time() - startsegmentation print('Segmented and refined in {:.3f}s'.format(time.time() - startsegmentation)) symbols = symbolsFromSegments(segmentsPerMsg) refinedSymbols = symbolsFromSegments(refinedPerMsg) # TODO output (colored?) visualization on terminal print("Access inferred symbols via variables: symbols, refinedSymbols") print("Access inferred message segments via variables: segmentsPerMsg, refinedPerMsg") IPython.embed()