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.8.1.tbz
sha256=94090e05906c7a0559f60d2c65dbe167eb5953a2338b958b71911c1c81dd9ffd
sha512=6f52f8918c3c242f1346ebdc244f80744966112b935e00519e5d4d5acc040f8e2d2c54ff6b172cf5eb34b9bf7366de085605de88fcc15c43f34abce39ed34220
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
(**************************************************************************) (* This file is part of BINSEC. *) (* *) (* Copyright (C) 2016-2023 *) (* 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)"
>