Bap_byteweight
Byteweight library.
Byteweight is a function start identification algorithm [1]
. This library provides a functorized implementation.
An auxiliary Bap_byteweight_signatures
library provides an access to the repository of binary signatures.
@see <https://www.usenix.org/system/files/conference/usenixsecurity14/sec14-paper-bao.pdf>
[1]: Bao, Tiffany, et al. "Byteweight: Learning to recognize functions in binary code." 23rd USENIX Security Symposium (USENIX Security 14). 2014.
module type Corpus = sig ... end
Data interface.
module type S = sig ... end
Byteweight algorithm interface.
module V1 : sig ... end
module V2 : sig ... end
Make(Corpus)(Trie)
creates a Byteweight procedure, that works in the Corpus
domain and uses Trie
for its implementation.
The Trie
module specifies how substrings are compared. In particular, it gives an opportunity, to implement normalized string comparison.
module Make
(Corpus : Corpus)
(Trie : Bap.Std.Trie.S with type key = Corpus.key) :
S with type key = Corpus.key and type corpus = Corpus.t
module Bytes : sig ... end
Default implementation that uses memory chunk as the domain.
module Stats : sig ... end