├── GoCrackMaster.go ├── README.md └── go.mod /GoCrackMaster.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "bufio" 5 | "fmt" 6 | "os" 7 | "time" 8 | ) 9 | 10 | // Функція для обфускації символів 11 | func obfuscate(char byte) byte { 12 | return char ^ 0x5F 13 | } 14 | 15 | // Функція для деобфускації символів 16 | func deobfuscate(char byte) byte { 17 | return char ^ 0x5F 18 | } 19 | 20 | // Функція для отримання правильного пароля 21 | func getCorrectPassword() string { 22 | originalPassword := "SecurePass123" 23 | obfuscated := make([]byte, len(originalPassword)) 24 | for i, c := range originalPassword { 25 | obfuscated[i] = obfuscate(byte(c)) 26 | } 27 | return string(obfuscated) 28 | } 29 | 30 | // Функція для перевірки пароля 31 | func checkPassword(input string) bool { 32 | obfuscatedPassword := getCorrectPassword() 33 | deobfuscated := make([]byte, len(obfuscatedPassword)) 34 | for i := 0; i < len(obfuscatedPassword); i++ { 35 | deobfuscated[i] = deobfuscate(obfuscatedPassword[i]) 36 | } 37 | return input == string(deobfuscated) 38 | } 39 | 40 | func main() { 41 | fmt.Println("Вітаємо у GoCrackMaster!") 42 | fmt.Print("Будь ласка, введіть пароль активації: ") 43 | 44 | reader := bufio.NewReader(os.Stdin) 45 | userInput, err := reader.ReadString('\n') 46 | if err != nil { 47 | fmt.Println("Помилка читання вводу:", err) 48 | return 49 | } 50 | 51 | // Видалення символів нового рядка 52 | userInput = userInput[:len(userInput)-1] 53 | 54 | // Невелика затримка для ускладнення аналізу 55 | time.Sleep(500 * time.Millisecond) 56 | 57 | if checkPassword(userInput) { 58 | fmt.Println("Вітаємо! Ви розбили GoCrackMaster.") 59 | } else { 60 | fmt.Println("Пароль невірний. Спробуйте ще раз.") 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GoCrackMaster 2 | 3 | GoCrackMaster — це освітній CrackMe-проект на мові Go, призначений для розвитку навичок з реверс-інжинірингу та аналізу безпеки програмного забезпечення. Програма перевіряє введений користувачем пароль активації та надає зворотний зв'язок залежно від правильності введених даних. 4 | 5 | ## Огляд 6 | 7 | Цей проект створений для тих, хто бажає практикуватися у реверс-інжинірингу, аналізі коду та безпеці програмного забезпечення. GoCrackMaster використовує базові техніки обфускації, що ускладнюють аналіз коду та надають початкові виклики для новачків у сфері безпеки. 8 | 9 | ## Особливості 10 | 11 | - Простий інтерфейс командного рядка 12 | - Перевірка пароля активації з базовою обфускацією 13 | - Захист від простого аналізу коду 14 | - Детальна документація для початківців 15 | 16 | ## Встановлення 17 | 18 | ### Передумови 19 | 20 | - Go (версія 1.16 або вище) 21 | 22 | ### Кроки установки 23 | 24 | 1. **Клонувати репозиторій:** 25 | ```bash 26 | git clone https://github.com/yourusername/GoCrackMaster.git 27 | cd GoCrackMaster 28 | ``` 29 | 30 | 2. **Ініціалізувати модуль Go:** 31 | ```bash 32 | go mod init github.com/yourusername/GoCrackMaster 33 | ``` 34 | 35 | 3. **Встановити залежності:** 36 | ```bash 37 | go mod tidy 38 | ``` 39 | 40 | ## Використання 41 | 42 | Скомпілюйте програму за допомогою наступної команди: 43 | 44 | ```bash 45 | go build -o GoCrackMaster 46 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/yourusername/GoCrackMaster 2 | 3 | go 1.16 4 | --------------------------------------------------------------------------------