├── Makefile ├── Package.swift ├── README.md └── SwiftCrackMaster.swift /Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for SwiftCrackMaster 2 | 3 | all: build 4 | 5 | build: 6 | swift build -c release 7 | 8 | clean: 9 | swift package clean 10 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.3 2 | import PackageDescription 3 | 4 | let package = Package( 5 | name: "SwiftCrackMaster", 6 | targets: [ 7 | .target( 8 | name: "SwiftCrackMaster", 9 | dependencies: []), 10 | ] 11 | ) 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SwiftCrackMaster 2 | 3 | SwiftCrackMaster is an educational CrackMe project written in Swift, designed to enhance skills in reverse engineering, code analysis, and software security. The program verifies user-entered activation passwords using basic obfuscation techniques to complicate code analysis. 4 | 5 | ## Features 6 | 7 | - Simple command-line interface 8 | - Activation password verification with basic obfuscation 9 | - Protection against straightforward code analysis 10 | - Detailed documentation for beginners 11 | 12 | ## Installation 13 | 14 | ### Prerequisites 15 | 16 | - Swift (version 5.3 or higher) 17 | - macOS/Linux environment 18 | 19 | ### Steps 20 | 21 | 1. **Clone the repository:** 22 | ```bash 23 | git clone https://github.com/yourusername/SwiftCrackMaster.git 24 | cd SwiftCrackMaster 25 | ``` 26 | 27 | 2. **Build the program:** 28 | - Using Swift Package Manager: 29 | ```bash 30 | swift build -c release 31 | ``` 32 | - **Optional:** Using `Makefile`: 33 | ```bash 34 | make 35 | ``` 36 | 37 | ## Usage 38 | 39 | Run the program using the following command: 40 | 41 | ```bash 42 | ./.build/release/SwiftCrackMaster 43 | -------------------------------------------------------------------------------- /SwiftCrackMaster.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | // Function to obfuscate characters 4 | func obfuscate(_ c: Character) -> Character { 5 | return Character(UnicodeScalar(c.asciiValue! ^ 0x5A)!) 6 | } 7 | 8 | // Function to get the obfuscated correct password 9 | func getObfuscatedPassword() -> String { 10 | let password = "SecurePass123" 11 | return String(password.map { obfuscate($0) }) 12 | } 13 | 14 | // Function to check the password 15 | func checkPassword(input: String) -> Bool { 16 | let obfuscatedPassword = getObfuscatedPassword() 17 | let obfuscatedInput = String(input.map { obfuscate($0) }) 18 | return obfuscatedInput == obfuscatedPassword 19 | } 20 | 21 | print("Welcome to SwiftCrackMaster!") 22 | print("Please enter the activation password: ", terminator: "") 23 | 24 | if let input = readLine() { 25 | // Small delay to complicate analysis 26 | Thread.sleep(forTimeInterval: 0.5) 27 | 28 | if checkPassword(input: input) { 29 | print("Congratulations! You have cracked SwiftCrackMaster.") 30 | } else { 31 | print("Incorrect password. Please try again.") 32 | } 33 | } else { 34 | print("Error reading input.") 35 | } 36 | --------------------------------------------------------------------------------