package binsec
Semantic analysis of binary executables
Install
Dune Dependency
Authors
-
AAdel Djoudi
-
BBenjamin Farinier
-
CChakib Foulani
-
DDorian Lesbre
-
FFrédéric Recoules
-
GGuillaume Girol
-
JJosselin Feist
-
LLesly-Ann Daniel
-
MManh-Dung Nguyen
-
MMathéo Vergnolle
-
MMathilde Ollivier
-
MMatthieu Lemerre
-
OOlivier Nicole
-
RRichard Bonichon
-
RRobin David
-
SSébastien Bardin
-
SSoline Ducousso
-
TTa Thanh Dinh
-
YYaëlle Vinçont
Maintainers
Sources
binsec-0.7.2.tbz
sha256=5e1d0f26a567df4abcbeb964b454cf8b2c8484194ff2d9639bdeb94d63edcb3b
sha512=a638c665407fde9aadbd57a7b9f84260db8f03c0cbf65722732d43dfc93122d801e31977e0ba7cd249b340262caf216bca746a3520d0e01d487a5baf6a6c77e6
doc/src/binsec.sse/heuristic.ml.html
Source file heuristic.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
(**************************************************************************) (* This file is part of BINSEC. *) (* *) (* Copyright (C) 2016-2022 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) (* you can redistribute it and/or modify it under the terms of the GNU *) (* Lesser General Public License as published by the Free Software *) (* Foundation, version 2.1. *) (* *) (* It is distributed in the hope that it will be useful, *) (* but WITHOUT ANY WARRANTY; without even the implied warranty of *) (* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) (* GNU Lesser General Public License for more details. *) (* *) (* See the GNU Lesser General Public License version 2.1 *) (* for more details (enclosed in the file licenses/LGPLv2.1). *) (* *) (**************************************************************************) open Types module Dfs : WORKLIST = struct type 'a t = 'a list let empty = [] let is_empty = function [] -> true | _ -> false let push e w = e :: w let singleton e = [ e ] let pop = function e :: w -> (e, w) | [] -> raise Not_found let length = List.length end module Bfs : WORKLIST = struct type 'a t = 'a Sequence.t let length = Sequence.length let is_empty q = Sequence.length q = 0 let empty = Sequence.empty let push p q = Sequence.push_back p q let pop q = match Sequence.peek_front q with | None -> raise Not_found | Some v -> ( match Sequence.pop_front q with | None -> assert false | Some seq -> (v, seq)) let singleton p = push p empty end module Nurs : WORKLIST = struct (* This is actually a fairly classical heap. The priority added to the date is just generated at random. *) module I = Basic_types.Int.Map type 'a t = 'a I.t let rec gen_priority t = let p = Utils.random_max_int () in if I.mem p t then gen_priority t else p let length = I.cardinal let is_empty = I.is_empty let empty = I.empty let push e t = let p = gen_priority t in I.add p e t let pop t = let (_, e), t' = I.pop t in (e, t') let singleton p = push p empty end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>