All Projects → zntrio → typogenerator

zntrio / typogenerator

Licence: Apache-2.0 license
Golang string typosquatting generator

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to typogenerator

Go Mygen
Quickly generate CURD and documentation for operating MYSQL.etc
Stars: ✭ 94 (+40.3%)
Mutual labels:  golang-tools
Dupl
a tool for code clone detection
Stars: ✭ 228 (+240.3%)
Mutual labels:  golang-tools
combi
Pythonic package for combinatorics
Stars: ✭ 51 (-23.88%)
Mutual labels:  permutation
Scopelint
scopelint checks for unpinned variables in go programs
Stars: ✭ 110 (+64.18%)
Mutual labels:  golang-tools
Tinderonline
Find out which of your friends are online on Tinder
Stars: ✭ 155 (+131.34%)
Mutual labels:  golang-tools
lattice-symmetries
A package to simplify working with symmetry-adapted quantum many-body bases. Provides a good foundation for writing custom exact diagonalization and variational Monte Carlo software
Stars: ✭ 17 (-74.63%)
Mutual labels:  permutation
Marlow
golang generator for type-safe sql api constructs
Stars: ✭ 83 (+23.88%)
Mutual labels:  golang-tools
gogh
GO GitHub project manager
Stars: ✭ 29 (-56.72%)
Mutual labels:  golang-tools
Fpgo
Monad, Functional Programming features for Golang
Stars: ✭ 165 (+146.27%)
Mutual labels:  golang-tools
RcppAlgos
Tool for Solving Problems in Combinatorics and Computational Mathematics
Stars: ✭ 31 (-53.73%)
Mutual labels:  permutation
Gocmt
Add missing comment on exported function, method, type, constant, variable in go file
Stars: ✭ 111 (+65.67%)
Mutual labels:  golang-tools
Gomod
Go modules analysis tool
Stars: ✭ 139 (+107.46%)
Mutual labels:  golang-tools
combinatoricslib
Combinatorial Objects Generators for Java 7+.
Stars: ✭ 83 (+23.88%)
Mutual labels:  permutation
Vermin
The smart virtual machines manager. A modern CLI for Vagrant Boxes.
Stars: ✭ 110 (+64.18%)
Mutual labels:  golang-tools
Filterlist-for-AdGuard-or-PiHole
A very aggressive filter-list that consolidates over 370 lists for use in AdGuard Home, Pi-Hole or similar.
Stars: ✭ 349 (+420.9%)
Mutual labels:  typosquatting
Goreuse
Generic Code for Go
Stars: ✭ 93 (+38.81%)
Mutual labels:  golang-tools
Sonar Golang
Sonarqube plugin for the golang language.
Stars: ✭ 229 (+241.79%)
Mutual labels:  golang-tools
streamplify
Java 8 combinatorics-related streams and other utilities
Stars: ✭ 40 (-40.3%)
Mutual labels:  permutation
simpira384
An AES-based 384 bit permutation.
Stars: ✭ 18 (-73.13%)
Mutual labels:  permutation
resamplr
R package cross-validation, bootstrap, permutation, and rolling window resampling techniques for the tidyverse.
Stars: ✭ 35 (-47.76%)
Mutual labels:  permutation

Typogenerator: a typosquatting generator in Golang

A Golang typosquat generator utilizing various strategies to generate potential variants of a string. Some strategies are similar to those utilized by dnstwist. This library is not intended to be a complete port of dnstwist and may include additional strategies.

Usage

See files under cmd/ for example usage.

Fuzz

all := []strategy.Strategy{
	strategy.Omission,
	strategy.Repetition,
}

results, err := typogenerator.Fuzz("zenithar", all...)
if err != nil {
	fmt.Println(err)
}

for _, r := range results {
	for _, p := range r.Permutations {
		fmt.Println(p)
	}
}

// enithar
// znithar
// zeithar
// zenthar
// ...

FuzzDomain

all := []strategy.Strategy{
	strategy.Omission,
	strategy.Repetition,
}

results, err := typogenerator.FuzzDomain("example.com", all...)
if err != nil {
	fmt.Println(err)
}

for _, r := range results {
	for _, p := range r.Permutations {
		fmt.Println(p)
	}
}

// xample.com
// eample.com
// exmple.com
// exaple.com
// ...

Fuzzing Algorithms (strategies)

  1. Addition - Addition of a single character to the end of a string
  2. BitSquatting - Generates a string with one bit difference from the input
  3. DoubleHit - Addition of a single character that is adjacent to each character (double hitting of a key)
  4. Homoglyph - Substituiton of a single character with another that looks similar
  5. Hyphenation - Addition of a hypen - between the first and last character in a string
  6. Omission - Removal of a single character in a string
  7. Prefix - Addition of predefined prefixes to the start of a string
  8. Repetition - Repetition of characters in a string (pressing a key twice)
  9. Replace - Replacement of a single character that is adjacent to each character (pressing wrong key)
  10. Similar - Replacement of a single character that looks the same. This is a subset of Homoglyph but is language specific.
  11. SubDomain - Addition of a period . between the first and last character in a string
  12. Transposition - Swapping of adjacent characters in a string
  13. VowelSwap - Swapping of vowels in string with all other vowels
  14. TLDReplace - Replaces the TLD with a list of commonly used TLDs. Only works with FuzzDomain.
  15. TLDRepeat - Repeats the TLD after the domain name. Only works with FuzzDomain.

Languages

The following strategies are language dependent:

  1. DoubleHit
  2. Replace
  3. Similar

Supported languages include:

  1. English
  2. French
  3. German
  4. Spanish
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].