package binsec
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Semantic analysis of binary executables
Install
dune-project
Dependency
Authors
-
AAdel Djoudi
-
BBenjamin Farinier
-
CChakib Foulani
-
DDorian Lesbre
-
FFrédéric Recoules
-
GGuillaume Girol
-
JJosselin Feist
-
LLesly-Ann Daniel
-
MMahmudul Faisal Al Ameen
-
MManh-Dung Nguyen
-
MMathéo Vergnolle
-
MMathilde Ollivier
-
MMatthieu Lemerre
-
NNicolas Bellec
-
OOlivier Nicole
-
RRichard Bonichon
-
RRobin David
-
SSébastien Bardin
-
SSoline Ducousso
-
TTa Thanh Dinh
-
YYaëlle Vinçont
-
YYanis Sellami
Maintainers
Sources
binsec-0.11.0.tbz
sha256=4cf70a0367fef6f33ee3165f05255914513ea0539b94ddfef0bd46fc9b42fa8a
sha512=cd67a5b7617f661a7786bef0c828ee55307cef5260dfecbb700a618be795d81b1ac49fc1a18c4904fd2eb8a182dc862b0159093028651e78e7dc743f5babf9e3
doc/src/binsec_cli_xtrasec/transfer_functions.ml.html
Source file transfer_functions.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 90 91 92 93 94 95 96 97 98 99 100 101 102(**************************************************************************) (* This file is part of BINSEC. *) (* *) (* Copyright (C) 2016-2026 *) (* 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). *) (* *) (**************************************************************************) module Integer = Z module type Arity = sig (* Symbols and their arities. 'r represents the result type. *) type 'r ar0 type ('a, 'r) ar1 type ('a, 'b, 'r) ar2 type ('a, 'b, 'c, 'r) ar3 type ('a, 'r) variadic end (* Note: in the following, we distinguish between backward and forward because there is no need to implement backward transfer functions for symbols with arity 0. *) (****************************************************************) (* Boolean transfer functions. *) module type Boolean_Backward = sig type boolean module Arity : Arity val not : (boolean, boolean) Arity.ar1 val ( && ) : (boolean, boolean, boolean) Arity.ar2 val ( || ) : (boolean, boolean, boolean) Arity.ar2 end module type Boolean_Forward = sig include Boolean_Backward val true_ : boolean Arity.ar0 val false_ : boolean Arity.ar0 end (****************************************************************) (* Binary transfer functions. *) (* Note: the size argument, when provided, refers to the size of the result. *) module type Binary_Backward = sig type binary type boolean module Arity : Arity val biadd : size:int -> (binary, binary, binary) Arity.ar2 val bisub : size:int -> (binary, binary, binary) Arity.ar2 val bimul : size:int -> (binary, binary, binary) Arity.ar2 val beq : size:int -> (binary, binary, boolean) Arity.ar2 val bisle : size:int -> (binary, binary, boolean) Arity.ar2 val bislt : size:int -> (binary, binary, boolean) Arity.ar2 val biule : size:int -> (binary, binary, boolean) Arity.ar2 val biult : size:int -> (binary, binary, boolean) Arity.ar2 (* First argument become most significant. *) val bconcat : size1:int -> size2:int -> (binary, binary, binary) Arity.ar2 val bextract : lo:int -> hi:int -> oldsize:int -> (binary, binary) Arity.ar1 val band : size:int -> (binary, binary, binary) Arity.ar2 val bor : size:int -> (binary, binary, binary) Arity.ar2 val bxor : size:int -> (binary, binary, binary) Arity.ar2 val buext : size:int -> oldsize:int -> (binary, binary) Arity.ar1 val bsext : size:int -> oldsize:int -> (binary, binary) Arity.ar1 (* Correspond to truncated division, used in C99 and processors. *) val bisdiv : size:int -> (binary, binary, binary) Arity.ar2 val bisrem : size:int -> (binary, binary, binary) Arity.ar2 val biudiv : size:int -> (binary, binary, binary) Arity.ar2 val biurem : size:int -> (binary, binary, binary) Arity.ar2 val bshl : size:int -> (binary, binary, binary) Arity.ar2 val bashr : size:int -> (binary, binary, binary) Arity.ar2 val blshr : size:int -> (binary, binary, binary) Arity.ar2 val bv_left_rotate : size:int -> (binary, binary, binary) Arity.ar2 val bv_right_rotate : size:int -> (binary, binary, binary) Arity.ar2 end module type Binary_Forward = sig include Binary_Backward val biconst : size:int -> Integer.t -> binary Arity.ar0 end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>