Discover Packages
github.com/9elements/converged-security-suite/v2
pkg
bruteforcer
package
Version:
v2.7.0
Opens a new window with list of versions in this module.
Published: Feb 15, 2023
License: BSD-3-Clause
Opens a new window with license information.
Imports: 6
Opens a new window with list of imports.
Imported by: 0
Opens a new window with list of known importers.
README
README
¶
goos: linux
goarch: amd64
pkg: privatecore/firmware/analyzer/pkg/bruteforcer
BenchmarkBruteForce/noop/distance_1/dataSize_1-8 111994 1034 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/noop/distance_1/dataSize_2-8 90879 1277 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/noop/distance_1/dataSize_3-8 78481 1559 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/noop/distance_1/dataSize_4-8 71247 1691 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/noop/distance_1/dataSize_5-8 66680 1880 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/noop/distance_1/dataSize_6-8 60540 2244 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/noop/distance_1/dataSize_7-8 43143 3073 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/noop/distance_1/dataSize_8-8 39789 2960 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/noop/distance_2/dataSize_1-8 40298 3075 ns/op 368 B/op 24 allocs/op
BenchmarkBruteForce/noop/distance_2/dataSize_2-8 18277 7604 ns/op 368 B/op 24 allocs/op
BenchmarkBruteForce/noop/distance_2/dataSize_3-8 10000 12326 ns/op 368 B/op 24 allocs/op
BenchmarkBruteForce/noop/distance_2/dataSize_4-8 6253 18504 ns/op 368 B/op 24 allocs/op
BenchmarkBruteForce/noop/distance_2/dataSize_5-8 4112 28074 ns/op 384 B/op 24 allocs/op
BenchmarkBruteForce/noop/distance_2/dataSize_6-8 2814 37999 ns/op 384 B/op 24 allocs/op
BenchmarkBruteForce/noop/distance_2/dataSize_7-8 2494 48112 ns/op 384 B/op 24 allocs/op
BenchmarkBruteForce/noop/distance_2/dataSize_8-8 2058 62783 ns/op 384 B/op 24 allocs/op
BenchmarkBruteForce/noop/distance_3/dataSize_1-8 17174 6390 ns/op 720 B/op 41 allocs/op
BenchmarkBruteForce/noop/distance_3/dataSize_2-8 4104 30334 ns/op 720 B/op 41 allocs/op
BenchmarkBruteForce/noop/distance_3/dataSize_3-8 1576 87300 ns/op 720 B/op 41 allocs/op
BenchmarkBruteForce/noop/distance_3/dataSize_4-8 606 202431 ns/op 720 B/op 41 allocs/op
BenchmarkBruteForce/noop/distance_3/dataSize_5-8 322 343400 ns/op 736 B/op 41 allocs/op
BenchmarkBruteForce/noop/distance_3/dataSize_6-8 210 585882 ns/op 736 B/op 41 allocs/op
BenchmarkBruteForce/noop/distance_3/dataSize_7-8 234 589251 ns/op 810 B/op 43 allocs/op
BenchmarkBruteForce/noop/distance_3/dataSize_8-8 193 557486 ns/op 926 B/op 47 allocs/op
BenchmarkBruteForce/noop/distance_4/dataSize_1-8 9180 12062 ns/op 1183 B/op 62 allocs/op
BenchmarkBruteForce/noop/distance_4/dataSize_2-8 1088 107128 ns/op 1184 B/op 62 allocs/op
BenchmarkBruteForce/noop/distance_4/dataSize_3-8 237 492388 ns/op 1184 B/op 62 allocs/op
BenchmarkBruteForce/noop/distance_4/dataSize_4-8 157 744349 ns/op 1256 B/op 66 allocs/op
BenchmarkBruteForce/noop/distance_4/dataSize_5-8 79 1298786 ns/op 1860 B/op 76 allocs/op
BenchmarkBruteForce/noop/distance_4/dataSize_6-8 45 2578822 ns/op 1482 B/op 76 allocs/op
BenchmarkBruteForce/noop/distance_4/dataSize_7-8 32 4157079 ns/op 1524 B/op 78 allocs/op
BenchmarkBruteForce/noop/distance_4/dataSize_8-8 16 7103824 ns/op 1608 B/op 82 allocs/op
BenchmarkBruteForce/noop/distance_5/dataSize_1-8 5882 19378 ns/op 1552 B/op 79 allocs/op
BenchmarkBruteForce/noop/distance_5/dataSize_2-8 332 310768 ns/op 1776 B/op 87 allocs/op
BenchmarkBruteForce/noop/distance_5/dataSize_3-8 90 1189687 ns/op 1995 B/op 93 allocs/op
BenchmarkBruteForce/noop/distance_5/dataSize_4-8 51 3094867 ns/op 2210 B/op 105 allocs/op
BenchmarkBruteForce/noop/distance_5/dataSize_5-8 13 8687901 ns/op 2432 B/op 115 allocs/op
BenchmarkBruteForce/noop/distance_5/dataSize_6-8 5 21545071 ns/op 2467 B/op 115 allocs/op
BenchmarkBruteForce/noop/distance_5/dataSize_7-8 3 46809559 ns/op 2544 B/op 117 allocs/op
BenchmarkBruteForce/noop/distance_5/dataSize_8-8 2 115921358 ns/op 2592 B/op 121 allocs/op
BenchmarkBruteForce/noop/distance_6/dataSize_1-8 5816 22624 ns/op 1807 B/op 92 allocs/op
BenchmarkBruteForce/noop/distance_6/dataSize_2-8 158 704658 ns/op 2480 B/op 116 allocs/op
BenchmarkBruteForce/noop/distance_6/dataSize_3-8 39 2783654 ns/op 2994 B/op 136 allocs/op
BenchmarkBruteForce/noop/distance_6/dataSize_4-8 7 14666064 ns/op 3282 B/op 148 allocs/op
BenchmarkBruteForce/noop/distance_6/dataSize_5-8 2 55091357 ns/op 4336 B/op 160 allocs/op
BenchmarkBruteForce/noop/distance_6/dataSize_6-8 1 160281045 ns/op 4368 B/op 160 allocs/op
BenchmarkBruteForce/noop/distance_6/dataSize_7-8 1 401626326 ns/op 4128 B/op 162 allocs/op
BenchmarkBruteForce/noop/distance_6/dataSize_8-8 1 904420581 ns/op 3808 B/op 165 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_1/dataSize_1-8 32188 3923 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_1/dataSize_2-8 19854 5640 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_1/dataSize_3-8 16796 7739 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_1/dataSize_4-8 12583 9998 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_1/dataSize_5-8 10000 10798 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_1/dataSize_6-8 10018 12972 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_1/dataSize_7-8 7606 14019 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_1/dataSize_8-8 6602 15338 ns/op 160 B/op 11 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_2/dataSize_1-8 9416 12885 ns/op 368 B/op 24 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_2/dataSize_2-8 3691 33207 ns/op 368 B/op 24 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_2/dataSize_3-8 1880 68526 ns/op 368 B/op 24 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_2/dataSize_4-8 1135 115761 ns/op 368 B/op 24 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_2/dataSize_5-8 734 190271 ns/op 384 B/op 24 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_2/dataSize_6-8 508 238664 ns/op 384 B/op 24 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_2/dataSize_7-8 368 361552 ns/op 384 B/op 24 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_2/dataSize_8-8 316 413167 ns/op 384 B/op 24 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_3/dataSize_1-8 4441 26912 ns/op 720 B/op 41 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_3/dataSize_2-8 739 148580 ns/op 720 B/op 41 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_3/dataSize_3-8 241 523242 ns/op 720 B/op 41 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_3/dataSize_4-8 90 1206058 ns/op 720 B/op 41 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_3/dataSize_5-8 49 2096985 ns/op 736 B/op 41 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_3/dataSize_6-8 28 3707970 ns/op 736 B/op 41 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_3/dataSize_7-8 34 3323183 ns/op 776 B/op 43 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_3/dataSize_8-8 31 4505925 ns/op 856 B/op 47 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_4/dataSize_1-8 2502 45961 ns/op 1184 B/op 62 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_4/dataSize_2-8 214 541400 ns/op 1184 B/op 62 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_4/dataSize_3-8 45 2749192 ns/op 1184 B/op 62 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_4/dataSize_4-8 20 5497688 ns/op 1256 B/op 66 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_4/dataSize_5-8 16 8363935 ns/op 1465 B/op 76 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_4/dataSize_6-8 7 16828364 ns/op 1483 B/op 76 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_4/dataSize_7-8 4 28859744 ns/op 1528 B/op 78 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_4/dataSize_8-8 3 46719665 ns/op 1605 B/op 82 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_5/dataSize_1-8 1929 63682 ns/op 1552 B/op 79 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_5/dataSize_2-8 73 1588963 ns/op 1776 B/op 87 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_5/dataSize_3-8 16 7386752 ns/op 1931 B/op 93 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_5/dataSize_4-8 6 18911062 ns/op 2216 B/op 105 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_5/dataSize_5-8 2 52249364 ns/op 2504 B/op 115 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_5/dataSize_6-8 1 138952445 ns/op 2480 B/op 115 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_5/dataSize_7-8 1 281757950 ns/op 2608 B/op 118 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_5/dataSize_8-8 1 550915210 ns/op 2608 B/op 121 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_6/dataSize_1-8 1660 79541 ns/op 1808 B/op 92 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_6/dataSize_2-8 31 3773336 ns/op 2483 B/op 116 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_6/dataSize_3-8 8 15691267 ns/op 3000 B/op 136 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_6/dataSize_4-8 2 84575901 ns/op 3344 B/op 148 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_6/dataSize_5-8 1 328253033 ns/op 3632 B/op 159 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_6/dataSize_6-8 1 1024661015 ns/op 3600 B/op 158 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_6/dataSize_7-8 1 2463266087 ns/op 3648 B/op 160 allocs/op
BenchmarkBruteForce/sha1.Sum/distance_6/dataSize_8-8 1 6358236131 ns/op 3808 B/op 165 allocs/op
PASS
ok privatecore/firmware/analyzer/pkg/bruteforcer 26.227s
Expand ▾
Collapse ▴
Documentation
¶
ApplyBitFlipsBools changes bit combination located in combination UniqueUnorderedCombination
of a []bool.
ApplyBitFlipsBytes changes bit combination located in combination UniqueUnorderedCombination
of a []byte.
CheckFunc is the function used if the sought value is found. Return true
if data is the sought value, and return false if it is not.
InitFunc is the function executed for each goroutine before brute-forcing.
It returns a data, which will be passed as argument `ctx` to CheckFunc.
type Item interface {
any
}
type Slice[T Item ] interface {
~[]T
}
type UniqueUnorderedCombination []Value
UniqueUnorderedCombination is a combination of non-repeating
unordered Value-s. To avoid combination duplication it is enforced
that each next index should be greater than a previous one.
See also: https://en.wikipedia.org/wiki/File:Combinations_without_repetition;_5_choose_3.svg
func BruteForce[E Item , T Slice [E]](
initialData T,
itemSize uint64 ,
minDistance uint64 ,
maxDistance uint64 ,
initFunc InitFunc ,
checkFunc CheckFunc [E],
applyBitFlipsFunc ApplyBitFlipsFunc [E],
maxConcurrency uint ,
) (UniqueUnorderedCombination , error )
BruteForce brute forces a value until checkFunc will return true or
combinations will be out. It starts with value initialData and then
tries combination with the hamming distance (relatively to initialDate) not
greater than maxDistance.
On success it returns the combination of bits which combination are required
to be changed. To apply these changes use method ApplyBitFlips.
NewUniqueUnorderedCombination returns a UniqueUnorderedCombination with combination
pre-defined to [0, 1, 2, ...] -- the very first combination of unique
(non-repeating) combination.
AmountOfCombinations returns amount of possible combinations.
type UniqueUnorderedCombinationIterator struct {
}
UniqueUnorderedCombinationIterator is a wrapper around
UniqueUnorderedCombination which is able to set a next combination.
NewUniqueUnorderedCombinationIterator returns a new instance
of UniqueUnorderedCombinationIterator.
AmountOfCombinations returns amount of possible combinations.
Copy returns a deep copy of the iterator.
GetCombination is a safe getter of the current combination.
It performs a copy and therefore slow.
GetCombinationID returns current combination ID [0...amount_of_combinations)
GetCombinationUnsafe is an unsafe (but fast) getter of the current combination.
Next sets the combination to the next combination.
SetCombinationID sets combination ID.
The value should be within range [0...amount_of_combinations). Otherwise
may hang or panic.
Value is just an abstract index.
Source Files
¶
Click to show internal directories.
Click to hide internal directories.