Пожалуйста, обратите внимание, что пользователь заблокирован
Генератор красивых адресов для сетей EVM (ETH)
Немного доработал и вынес из TRX генератора https://xss.pro/threads/103260
Добавлено:
1. Поиск по первым символам
Приватный ключ: 1f0a8f4ab07ac6399aedeefb620642a171b6891564447c21721fc8223958cdb4
Адрес: 0x00000973F9BE5AdD8Ff0DC30302866c3106A7F32
2. Поиск по последним символам
Приватный ключ: 5b91e18a8f80560cb49db902e43c241773ac7c5ccee994ea0cd9afff25752c42
Адрес: 0x0CA17A48363dB04630FA5906Fb12b01636300000
3. Поиск по первым и последним символам
Приватный ключ: be0f7aedf53efaf026db52d1c2bc7a7d399e0819e4d710bd0f85b77d04bcd2c3
Адрес: 0x0007A03b93DFCc91B60E6Fc25A5944745CA0bb00
4. Поиск по любой последовательности символов
Приватный ключ: 3774d6fdd13f7e363eeb644397c77c737e53d38be26e32efba4b03d01d740cce
Адрес: 0x887E65Ecf2648400000380116669Dda45cd52c6f
5. Поиск по рандомным, но последовательно повторяющимся символам
Приватный ключ: df5b9655f81afc172a02480e0e9e9b51f2a05cad740b6a15214449b1a7091b88
Адрес: 0x363953ba86694D6825BdBa07d9e58444444422d3
Немного доработал и вынес из TRX генератора https://xss.pro/threads/103260
Добавлено:
- Сохранение всех результатов в текстовые файлы в корне скрипта (каждый поиск дозаписывает результаты в файл)
- Опция поиска по рандомным, но последовательно повторяющимся символам
- Скорость сгенерированных и проверенных кошельков за минуту
1. Поиск по первым символам
Приватный ключ: 1f0a8f4ab07ac6399aedeefb620642a171b6891564447c21721fc8223958cdb4
Адрес: 0x00000973F9BE5AdD8Ff0DC30302866c3106A7F32
2. Поиск по последним символам
Приватный ключ: 5b91e18a8f80560cb49db902e43c241773ac7c5ccee994ea0cd9afff25752c42
Адрес: 0x0CA17A48363dB04630FA5906Fb12b01636300000
3. Поиск по первым и последним символам
Приватный ключ: be0f7aedf53efaf026db52d1c2bc7a7d399e0819e4d710bd0f85b77d04bcd2c3
Адрес: 0x0007A03b93DFCc91B60E6Fc25A5944745CA0bb00
4. Поиск по любой последовательности символов
Приватный ключ: 3774d6fdd13f7e363eeb644397c77c737e53d38be26e32efba4b03d01d740cce
Адрес: 0x887E65Ecf2648400000380116669Dda45cd52c6f
5. Поиск по рандомным, но последовательно повторяющимся символам
Приватный ключ: df5b9655f81afc172a02480e0e9e9b51f2a05cad740b6a15214449b1a7091b88
Адрес: 0x363953ba86694D6825BdBa07d9e58444444422d3
Код:
package main
import (
"crypto/sha256"
"encoding/hex"
"fmt"
"os"
"strings"
"time"
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/crypto"
)
type key struct {
privateKey string
addressHex string
attempts int
}
func main() {
var searchOption int
fmt.Println("")
fmt.Println("🦆 EVM Vanity Generator:")
fmt.Println("1. Поиск по первым символам")
fmt.Println("2. Поиск по последним символам")
fmt.Println("3. Поиск по первым и последним символам")
fmt.Println("4. Поиск по любой последовательности символов")
fmt.Println("5. Поиск по рандомным, но последовательно повторяющимся символам")
fmt.Print("⚡️Выберите опцию: ")
fmt.Scan(&searchOption)
var pattern string
switch searchOption {
case 1:
fmt.Print("Введите первые символы адреса (адреса начинаются с 0x): ")
fmt.Scan(&pattern)
case 2:
fmt.Print("Введите последние символы адреса: ")
fmt.Scan(&pattern)
case 3:
var firstCharacters, lastCharacters string
fmt.Print("Введите первые символы адреса (адреса начинаются с 0x): ")
fmt.Scan(&firstCharacters)
fmt.Print("Введите последние символы адреса: ")
fmt.Scan(&lastCharacters)
pattern = firstCharacters + "*" + lastCharacters
case 4:
fmt.Print("Введите любые символы: ")
fmt.Scan(&pattern)
case 5:
var numRepeatedChars int
fmt.Print("Введите минимальное количество повторений символа: ")
fmt.Scan(&numRepeatedChars)
pattern = strings.Repeat(".", numRepeatedChars)
default:
fmt.Println("Неверная опция")
return
}
filename := fmt.Sprintf("%d.txt", searchOption)
file, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
fmt.Println("Ошибка при открытии файла:", err)
return
}
defer file.Close()
addressChannel := make(chan *key)
attemptsChannel := make(chan int, 100)
go func() {
ticker := time.NewTicker(1 * time.Minute)
var attempts int
for {
select {
case <-ticker.C:
fmt.Printf("🚀 Сгенерировано кошельков за последнюю минуту: %d\n", attempts)
attempts = 0
case <-attemptsChannel:
attempts++
}
}
}()
for i := 0; i < 255; i++ {
go func() {
attempts := 1
for {
k, err := generateKey(attempts)
if err != nil {
fmt.Println(err)
return
}
if matchesPattern(k.addressHex, searchOption, pattern) {
addressChannel <- k
attemptsChannel <- 1
return
}
attemptsChannel <- 1
attempts++
}
}()
}
for i := 0; i < 255; i++ {
k := <-addressChannel
result := fmt.Sprintf("Приватный ключ: %s, Адрес: %s\n", k.privateKey, k.addressHex)
fmt.Print(result)
if _, err := file.WriteString(result); err != nil {
fmt.Println("Ошибка при записи в файл:", err)
return
}
}
}
func generateKey(attempts int) (*key, error) {
privateKey, err := crypto.GenerateKey()
if err != nil {
return nil, fmt.Errorf("failed to generate key: %w", err)
}
privateKeyBytes := crypto.FromECDSA(privateKey)
addressHex := crypto.PubkeyToAddress(privateKey.PublicKey).Hex()
addb, _ := hex.DecodeString(addressHex)
hash1 := s256(s256(addb))
secret := hash1[:4]
addb = append(addb, secret...)
return &key{
privateKey: hexutil.Encode(privateKeyBytes)[2:],
addressHex: addressHex,
attempts: attempts,
}, nil
}
func matchesPattern(address string, searchOption int, pattern string) bool {
switch searchOption {
case 1:
return strings.HasPrefix(address, pattern)
case 2:
return strings.HasSuffix(address, pattern)
case 3:
parts := strings.Split(pattern, "*")
return strings.HasPrefix(address, parts[0]) && strings.HasSuffix(address, parts[1])
case 4:
return strings.Contains(address, pattern)
case 5:
return hasRepeatedCharacters(address, len(pattern))
default:
return false
}
}
func hasRepeatedCharacters(address string, numRepeatedChars int) bool {
for i := 0; i < len(address)-numRepeatedChars+1; i++ {
repeated := true
for j := i; j < i+numRepeatedChars-1; j++ {
if address[j] != address[j+1] {
repeated = false
break
}
}
if repeated {
return true
}
}
return false
}
func s256(s []byte) []byte {
h := sha256.New()
h.Write(s)
return h.Sum(nil)
}
Вложения
Последнее редактирование: