├── Gemfile ├── README.md └── RubyCrackMaster.rb /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "rake", "~> 13.0" 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # RubyCrackMaster 2 | 3 | RubyCrackMaster is an educational CrackMe project written in Ruby, 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 | - Ruby (version 2.5 or higher) 17 | - Bundler (optional, if using `Gemfile`) 18 | 19 | ### Steps 20 | 21 | 1. **Clone the repository:** 22 | ```bash 23 | git clone https://github.com/yourusername/RubyCrackMaster.git 24 | cd RubyCrackMaster 25 | ``` 26 | 27 | 2. **Install dependencies (optional):** 28 | ```bash 29 | bundle install 30 | ``` 31 | 32 | ## Usage 33 | 34 | Run the program using the following command: 35 | 36 | ```bash 37 | ruby RubyCrackMaster.rb 38 | -------------------------------------------------------------------------------- /RubyCrackMaster.rb: -------------------------------------------------------------------------------- 1 | # RubyCrackMaster.rb 2 | 3 | # Function to obfuscate characters 4 | def obfuscate(char) 5 | (char.ord ^ 0x5A).chr 6 | end 7 | 8 | # Function to get the obfuscated correct password 9 | def get_obfuscated_password 10 | password = "SecurePass123" 11 | password.chars.map { |c| obfuscate(c) }.join 12 | end 13 | 14 | # Function to check the password 15 | def check_password(input) 16 | obfuscated_password = get_obfuscated_password 17 | obfuscated_input = input.chars.map { |c| obfuscate(c) }.join 18 | obfuscated_input == obfuscated_password 19 | end 20 | 21 | puts "Welcome to RubyCrackMaster!" 22 | print "Please enter the activation password: " 23 | input = gets.chomp 24 | 25 | # Small delay to complicate analysis 26 | sleep(0.5) 27 | 28 | if check_password(input) 29 | puts "Congratulations! You have cracked RubyCrackMaster." 30 | else 31 | puts "Incorrect password. Please try again." 32 | end 33 | --------------------------------------------------------------------------------